opencv 图像基本操作 获取图像大小、ROI操作、通道分割与合并等
opencv中的图像基本操作方法
访问和修改图像某像素点的值
函数
a=img[y,x] #获取像素点的值
img[y,x]=b #修改像素点的值
实例
import cv2 as cv
import numpy as np
img = cv.imread('baby.png')
px = img[50,100]
print(px) # output:[76,94,94]
# 只获取图像蓝色通道的值
img[50,100] = [0,0,255]
print(px) # output:[0,0,255]
获取图像属性
获取图像形状
height, width, channels = img.shape
获取图像的数据类型
img.dtype #图像数据类型一般为uint8
获取图像总像素数
img.size # height x width x channels
ROI(Region of Interest)
讲解ROI
ROI即感兴趣区域。它是用来干什么的呢?举个例子,我们想检测人眼,这里有一张人的全身照。因为人的眼睛一定在人脸上,我们可以将ROI调整为人脸区域。这样,在进行检测时,检测的范围大大缩小,可以有效地提高程序的运行效率。
ROI实现
face = img[100:200,115:188]
通道分割与合并
彩色图的BGR三个通道是可以分开单独访问的,也可以将三个单独的通道合并成一幅图像。分别使用 cv.split() 和 cv.merge()
b,g,r = cv.split(img)
img = cv.merge((b,g,r))
split() 函数比较耗时,我们可以使用索引来完成快速分割
b = img[ :, :, 0] #获取图像蓝色通道