图像的基础操作
- 查看图片常见属性
- 获取像素值并修改
- 获取图像的属性(信息)
- 图像的ROI()
- 图像通道的拆分及合并
本节中的几乎所有操作都主要与Numpy相关,而不是与OpenCV相关。要使用OpenCV编写更好的 优化代码,需要Numpy的丰富知识。
1.1 常见的图片属性
图像在OpenCV-Python是以numpy数组形式表示的,图像的属性比如行列数、通道数、数据类型、size等相关属性都可以通过numpy属性获取。
- 图像的形状可通过img.shape 访问。它返回行,列和通道数的元组(如果图像是彩色的):
- img.size 可以返回图像的像素数目
1.2 获取并修改像素值
你可以通过行和列坐标来访问像素值。对于 BGR 图像,它返回一个由蓝色、绿色和红色值组成的 数组。 对于灰度图像,只返回相应的灰度。
1.3 图像感兴趣区域ROI
有时候,你不得不处理一些特定区域的图像。对于图像中的眼睛检测,首先对整个图像进行人脸检测。在获取人脸图像时,我们只选择人脸区域,搜索其中的 眼睛,而不是搜索整个图像。
它提高了准确性(因为眼睛总是在面部上:D )和性能(因为我们搜索的区域很小)。 有时你需要对一幅图像的特定区域进行操作,使用Numpy索引再次获得ROI。
ball=img[280:340,330:390]
# cv2.imshow('cut image',ball)
# k = cv2 .waitKey(0)
# cv2.destroyAllWindows()
Image.fromarray(ball)
现在我们选择球的部分并把他拷贝到图像的其他区域。