一、一般使用Python中的cv2库。
读取图像:img=cv2.imread('name') #彩色 img=cv2.imread('name',cv2.IMREAD_GRAYSCALE) #黑白图像
图像保存:cv2.imwrite('mycat.jpg',img)
视屏:读取视屏:①cv2.VideoCapture{'name.mp4'}可以捕获摄像头,用数字来控制不同设备,例如:0,1 ②如果是视频文件,直接指定路径即可。
cv2库中三种通道为BGR,排序分别为0,1,2,当只保留R通道时,代码如下:
img=cv2.imread('cat.jpg ') cur_img=img.copy() #只保留R cur_img[:,:,0]=0 cur_img[:,:,1]=0 cv2.imshow('R',cur_img) cv2.waitKey(0) cv2.destroyAllWindows()
二、边界填充
边界填充有几种方式,但是效果的是一样的,只是边缘复制的不一样。具体见下图代码
三、数值计算
当把图片加上数值时,就是图片的每个像素点都加上这个数。
四、图像处理
4。1、图像阈值
4.2、图像平滑
1)均值滤波
要构造一个卷积和的矩阵,大小可以为33,5*5…等等。矩阵为 全一矩阵。然后跟图像进行卷积求和。如下程序:
#均值滤波 blur=cv2.blur(img,(3,3)) cv2.imshow('blur',blur) cv2.waitKey(0) cv2.destroyAllWindows()
2)方框滤波
#方框滤波,基本和均值滤波一样 box=cv2.boxFilter(img,-1,(3,3),normalize=True) cv2.imshow('box',box) cv2.waitKey(0) cv2.destroyAllWindows()
3)高斯滤波
相当于更重视中间的数值
aussian=cv2.GaussianBlur(img,(5,5),1)
4)中值滤波
median=cv2.medianBlur(img,5)
四、图像形态学操作
1)腐蚀操作
一般图片是二值化数据,即只有黑白两种颜色。
kernel=np.ones((3,3),np.uint8) erosion=cv2.erode(img,kernel,iterations=1)
kernel为腐蚀所需要的矩阵。
2)膨胀操作
跟腐蚀操作互为相反
3)开运算与并运算
开运算:先腐蚀,再膨胀
并运算:先膨胀后腐蚀
4)梯度运算
梯度=膨胀-腐蚀
morphologyEx表示为形态学。
5)礼帽与黑帽
礼帽=原始输入-开运算结果
黑帽=闭运算-原始输入口