OpenCV for Python 学习笔记(一)

1.图像分类

rgb图像、灰度图像、二值图像

2.修改像素颜色

可以对多个像素处理

image[100:150,100:150] = [255,255,255]  (这是一个彩色图像)

3.使用numpy包访问像素

创建图像: np.ones((101,101,3))

获得像素:image.item(x,y,color)  (相对于彩色图片)

修改像素:image.itemset((x,y,color),255)  

4.获取图像属性

image.shape()   灰度图像得到高宽,彩色图像还得到通道数

image.size()    灰度图像得到行列积,彩色图像得到行列通道数积

image.dtype()   获得图像数据类型

5.图像ROI


6.通道的拆分与合并

b,g,r = cv2.split(img)

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

7.图像加法运算

numpy加法:取模加法:像素值和小于等于255,取原值,大于255则结果对255取模

调用方法:直接用加号

opencv加法:饱和运算:像素值和小于等于255,则取原值,大于255,取255

调用方法:cv2.add(img1,img2)

8.图像融合

结果图像=图像1*系数1+图像2*系数2+亮度调节度

函数:addWeighted(图1,系数1,图2,系数2,亮度) 

9.类型转换

cvtColor(图像,转换形式)

10.图像缩放

cv2.resize(图像,(行,列))   按照像素缩放

cv2.resize(图像,NONE,fx=0.5,fy=0.5)   按照比例缩放

11.图像翻转

cv2.flip(src,flipCode)

flipCode = 0实现上下翻转 ;=1左右翻转 ;=负数上下左右翻转

12.阈值分割

阈值分割:

二进制阈值化:将大于阈值处理为最大值,否则处理为最小值

反二进制阈值化:将大于阈值处理为最小值

截断阈值化:将大于阈值的值处理为阈值,否则不变(相当于把图片中比较亮的部分处理为阈值)

反阈值化为0:将大于阈值的值处理为0,否则不变

阈值化为0:将小于阈值的值处理为0.大于等于阈值的值则不变

threshold函数进行阈值分割:

retval,dst =  cv2.threshold(src,thresh,maxval,type)

retval:阈值   dst:处理结果   src:源图片  thresh:阈值   maxval:最大值  type:种类

13.图像平滑处理

均值滤波:

1.定义

均值滤波解析

2.函数调用:cv2.blur(图像,(5,5))   (第二个参数代表周围的像素的选区范围)

方框滤波:

1.定义及函数调用:


高斯滤波:

1.定义:


2.函数调用:

dst = cv2.GaussianBlur(src,ksize,sigmaX)

中值滤波:

1.定义:

2.函数调用:

dst = cv2.medianBlur(src,ksize)   ksize必须是比1大的奇数,代表n*n的矩阵

你可能感兴趣的:(OpenCV for Python 学习笔记(一))