OpenCV(cv2)可用于从图像中提取数据并对其进行操作。 我们在下面演示一些示例:
图像属性
我们可以使用以下代码提取宽度,高度和颜色深度:
import cv2import numpy as np# read image into matrix.m = cv2.imread("python.png")# get image properties.h,w,bpp = np.shape(m)# print image properties.print "width: " + str(w)print "height: " + str(h)print "bpp: " + str(bpp)
访问像素数据
我们可以直接使用矩阵访问图像的像素数据,例如:
import cv2import numpy as np# read image into matrix.m = cv2.imread("python.png")# get image properties.h,w,bpp = np.shape(m)# print pixel valuey = 1x = 1print m[y][x]
要遍历图像中的所有像素,可以使用:
import cv2import numpy as np# read image into matrix.m = cv2.imread("python.png")# get image properties.h,w,bpp = np.shape(m)# iterate over the entire image.for py in range(0,h):for px in range(0,w):print m[py][px]
图像处理
您可以直接修改像素和像素通道(r, g, b)。 在下面的示例中,我们删除了一个颜色通道:
import cv2import numpy as np# read image into matrix.m = cv2.imread("python.png")# get image properties.h,w,bpp = np.shape(m)# iterate over the entire image.for py in range(0,h):for px in range(0,w):m[py][px][0] = 0# display imagecv2.imshow('matrix', m)cv2.waitKey(0)
要更改整个图像,您必须更改所有通道:m[py][px][0],m[py][px][1],m[py][px][2]。
保存图像
您可以使用以下方法将修改后的图像保存到磁盘:
cv2.imwrite('filename.png',m)
