OpenCV图像处理基础
一、感兴趣区域
在图像处理过程中,我们可能对图像的某一特定区域特别感兴趣,该区域就被称为感兴趣区域(Region 偶发Interest,ROI),设定感兴趣区域后,就可以对该区域进行整体操作。
如图所示,假设当前图像名称为img,图中的数字分别表示行号和列号,则蓝色区域就是感兴趣区域,表示为img[200:400, 200:600]。
二、通道操作
1. 通道拆分
对于RGB图像,可以分别拆分出该图像的R通道,G通道,B通道。在OpenCV中,既可以索引的方式拆分通道,也可以通过函数的方式拆分通道。
1.1 通过索引拆分
通过索引的方式,可以直接将各个通道从图像内提取出来,例如,对于OpenCV内的BGR图像Lena,可以通过如下语句分别提取B通道,G通道,R通道。
# B通道
b = lena[:,:,0]
# G通道
g = lena[:,:,1]
# R通道
r = lena[:,:,2]
注意:
使用 scipy.misc.imread 读取的图片数据是 RGB 格式;
使用 PIL.Image.open 读取的图片数据是RGB格式;
使用 cv2.imread 读取的图片数据是 BGR 格式;
由于博主所使用的是cv2,所以是BGR格式。
具体实现
# 导入库
import cv2
# 读取图片
cv2.imread("./pictures/lena.jfif",-1)
# -1 表示保持原格式不变
# 0 表示将图像调整为单通道的灰度图像
# 1 表示将图像调整为3通道的RGB图像,该值是默认值
得到如下的array对象:
array([[[130, 132, 227],
[130, 132, 227],
[128, 132, 227],
...,
[113, 148, 234],
[ 90, 132, 215],
[ 64, 108, 191]],