Python+OpenCV学习笔记1(读入图像,像素,通道)
最近在学习用Python做图像处理,用到开源OpenCV库
然后在学院里面找视频看,这里做一下笔记,以便以后查阅
****视频课程链接:https://edu.****.net/course/play/10552
读取图像:cv2.imread(文件名[,显示控制参数])
显示控制参数:
1.cv.IMREAD_UNCHANGED
2.cv.IMREAD_GRAYSCALE
3.cv.IMREAD_COLOR
显示图像:cv.imshow(窗口名,图像名)
cv.waitKey([,delay])
delay>0 等待delay毫秒
delay<0 等待键盘单击
delay=0 无限等待
保存图像:cv2.imwrite(文件地址,文件名)
像素处理:
读取像素:
返回值=图像(位置参数,[,通道])
位置参数:行,列
灰度图像:p=img[100,100]
BGR图像:
通道0:蓝
通道1:绿
通道2:红
修改像素:
img[100,100]=[255,255,255]
img[100,100,0]=255
使用numpy进行像素处理
读取像素:
返回值 = img.item(位置信息[,通道])
灰度图像:
P=img.item(100,100)
BGR图像:
P=img.item(100,100,0)
修改像素:
img.itemset(位置信息,新像素值)
灰度图像:
img.itemset((100,100),255)
BGR图像:
img.itemset((100,100,0),255)
获取图像属性
形状
shape可以获取图像的形状,返回包含行数、列数、通道数的元组
灰度:返回行数、列数
彩色:返回行数、列数、通道数
img.shape
像素数目
size可以获取图像的像素数目
灰度:返回行数*列数
彩色:返回行数*列数*通道数
img.size
图像类型
dtype返回的是图像的数据类型
img.dtype.
图像RoI(感兴趣区域)
face=img[200:400,200:400]
把图像的200行到400行,200列到400列复制到face
img[0:100,0:100]=face
把face复制到图像的0行到100行,0列到100列
通道的拆分和合并
拆分通道
方法一:
b=img[ : , : , 0] 把通道0拆分出来(无空格)
g=img[ : , : , 1] 把通道1拆分出来(无空格)
r=img[ : , : , 2] 把通道2拆分出来(无空格)
方法二:
b,g,r=cv2.split(图像名)
b,g,r=cv2.split(img)
合并通道
m=cv2.merge([b,g,r])
把b,g,r三个通道合并成一个图片m
注意合并通道顺序有区别: