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] #获取图像蓝色通道

原文地址:https://www.cnblogs.com/wojianxin/p/12588190.html