Python+OpenCV实现图像基本操作的示例详解
本篇文章将介绍如何使用Python和OpenCV库进行图像基本操作,内容包括图像的读取和显示、裁剪和拼接、灰度化和二值化、图像的旋转和翻转等。
图像的读取和显示
下面是读取并显示一幅图像的代码示例:
import cv2
# 图像读取
img = cv2.imread('image.jpg')
# 图像显示
cv2.imshow('image', img)
cv2.waitKey(0)
该代码首先使用cv2.imread()
函数对一幅图像进行读取,读取的图像文件名为'image.jpg',读取出来的结果保存在变量img
中。然后使用cv2.imshow()
函数将图像显示出来,第一个参数为窗口的名称,第二个参数为要显示的图像。
需要注意的是,这样的显示窗口有时可能会一闪而过,如果要保持窗口不会自动消失,则需要在最后使用cv2.waitKey(0)
函数,该函数会等待用户按下任意键后才会关闭窗口。
图像的裁剪和拼接
下面是对一幅图像进行裁剪和拼接的示例:
import cv2
# 图像读取
img = cv2.imread('image.jpg')
# 图像裁剪
roi = img[50:150, 100:200]
# 图像拼接
img[:, 0:100] = roi
# 图像显示
cv2.imshow('image', img)
cv2.waitKey(0)
该代码首先使用cv2.imread()
函数读取一个图像,并将其保存在变量img
中。然后对该图像进行裁剪,得到变量roi
,该变量保存的是图片中的一个区域。接下来,将裁剪出来的区域拼接回原始图像的左侧,得到一个新的图像。最后使用cv2.imshow()
函数将该图像显示出来。
灰度化和二值化
下面是将一幅彩色图像转换为灰度图像,并进行二值化的示例:
import cv2
# 图像读取
img = cv2.imread('image.jpg')
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 图像显示
cv2.imshow('image', binary)
cv2.waitKey(0)
该代码首先使用cv2.cvtColor()
函数将一幅彩色图像转换成灰度图像,得到变量gray
。然后使用cv2.threshold()
函数对灰度图像进行二值化操作,将灰度值大于127的像素设置为255,小于等于127的像素设置为0,得到变量binary
。最后使用cv2.imshow()
函数将二值化后的图像显示出来。
图像的旋转和翻转
下面是对一幅图像进行90度顺时针旋转和水平翻转的示例:
import cv2
# 图像读取
img = cv2.imread('image.jpg')
# 旋转
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 90, 1)
rot = cv2.warpAffine(img, M, (cols, rows))
# 翻转
flip = cv2.flip(img, 1)
# 图像显示
cv2.imshow('image', flip)
cv2.waitKey(0)
该代码首先使用cv2.getRotationMatrix2D()
函数得到一幅图像的90度顺时针旋转矩阵M
,然后使用cv2.warpAffine()
函数对图像进行旋转,得到变量rot
。接下来使用cv2.flip()
函数对图像进行水平翻转,得到变量flip
。最后使用cv2.imshow()
函数将翻转后的图像显示出来。
以上便是Python+OpenCV实现图像基本操作的示例详解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+OpenCV实现图像基本操作的示例详解 - Python技术站