python+opencv 获取图像属性,获取图像感兴趣区域ROI

1.获取图像属性

1.1获取图像形状

img.shape:灰度图像返回高、宽两个参数,彩色图像返回高、宽、通道数三个参数

读取彩色图片:

# -*- coding:utf-8 -*-
import cv2

#读取彩色图片
img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg')
#获取图像形状
print(img.shape)

结果:

(493, 876, 3)

读取灰度图像的形状:

# -*- coding:utf-8 -*-
import cv2

#读取图片
img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg',cv2.IMREAD_GRAYSCALE)
#获取图像形状
print(img.shape)

结果

(493, 876)

1.2图像类型

img.dtype:一般是unit8

# -*- coding:utf-8 -*-
import cv2

#读取图片
img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg')
#获取图像类型
print(img.dtype)
uint8

1.3获得图像像素个数

img.size

# -*- coding:utf-8 -*-
import cv2

#读取图片
img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg')
#获取图像像素个数
print(img.size)
1295604

2.获得ROI图像

ROI:region of interest ,表示感兴趣的区域,可以使用自定义的区域(如圆形,矩形,椭圆形,多边形)勾勒出感兴趣的区域,在人脸识别和图像分割领域用的比较多。

这里使用简单粗暴的矩形来获得ROI图像

# -*- coding:utf-8 -*-
import cv2

#读取图片:注意imread读的图是BGR格式的
img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\101.jpeg')
#显示原图
cv2.imshow("img",img)
# #显示ROI区域:这个区域是在原图中截取的
ROI=img[200:600,200:600]
cv2.imshow("ROI",ROI)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

原图:

感兴趣的地方ROI

 

 有固定的需要还可以先使用img.shape查看原图的大小,再获取ROI区域。

猜你喜欢

转载自blog.csdn.net/qq_44728587/article/details/124296837