Python+OpenCV学习笔记1(读入图像,像素,通道)

最近在学习用Python做图像处理,用到开源OpenCV库

然后在学院里面找视频看,这里做一下笔记,以便以后查阅

CSDN视频课程链接:https://edu.csdn.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)

Python+OpenCV学习笔记1(读入图像,像素,通道)_第1张图片

合并通道

m=cv2.merge([b,g,r])

把b,g,r三个通道合并成一个图片m

Python+OpenCV学习笔记1(读入图像,像素,通道)_第2张图片

注意合并通道顺序有区别:

Python+OpenCV学习笔记1(读入图像,像素,通道)_第3张图片

你可能感兴趣的:(Python)