本篇文章主要讲解Python调用OpenCV获取图像属性,截取感兴趣ROI区域,处理图像通道。
一.获取图像属性
1.形状-shape
通过shape关键字获取图像的形状,返回包含行数、列数、通道数的元祖。其中灰度图像返回行数和列数,彩色图像返回行数、列数和通道数。如下图所示:
# -*- coding:utf-8 -*- import cv2 import numpy #读取图片 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) #获取图像形状 print(img.shape) #显示图像 cv2.imshow("Demo", img) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
输出结果如下图所示:(445L, 670L, 3L),该图共445行、670列像素,3个通道。
2.像素数目-size
通过size关键字获取图像的像素数目,其中灰度图像返回行数 * 列数,彩色图像返回行数 * 列数 * 通道数。代码如下:
# -*- coding:utf-8 -*- import cv2 import numpy #读取图片 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) #获取图像形状 print(img.shape) #获取像素数目 print(img.size)
输出结果:
(445L, 670L, 3L)
894450
3.图像类型-dtype
通过dtype关键字获取图像的数据类型,通常返回uint8。代码如下:
# -*- coding:utf-8 -*- import cv2 import numpy #读取图片 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) #