时间:2022-06-01 11:24:43 | 栏目:Python代码 | 点击:次
右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2
导入cv2库。
cv2.COLOR_BGR2GRAY
就是由BGR变为GRAY,我们日常生活中都是RGB三通道顺序,而在OpenCV中是BGR顺序。img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow("Gray Image",imgGray) cv2.waitKey(0)
我们来看下效果:
img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) imgBlur=cv2.GaussianBlur(imgGray,(7,7),0) cv2.imshow("Gray Image",imgGray) cv2.imshow("Blur Image",imgBlur) cv2.waitKey(0)
我们来看下效果,左为原图,右是高斯模糊:
边缘检测Canny()方法中第一个参数是图像,第二个参数是阈值1,第三个参数是阈值2,用来显示灰度值在此范围内的边缘线。
img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) imgBlur=cv2.GaussianBlur(imgGray,(7,7),0) imgCanny=cv2.Canny(img,150,200) cv2.imshow("Gray Image",imgGray) cv2.imshow("Blur Image",imgBlur) cv2.imshow("Canny Image",imgCanny) cv2.waitKey(0)
我们运行看下效果:
膨胀运算中,会用到numpy库,我们先导入一下:import numpy as np
定义一下大小为5x5的卷积核:kernel=np.ones((5,5),np.uint8),数值类型是无符号整型
kernel=np.ones((5,5),np.uint8) img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) imgBlur=cv2.GaussianBlur(imgGray,(7,7),0) imgCanny=cv2.Canny(img,150,200) imgDialation=cv2.dilate(imgCanny,kernel,iterations=1) cv2.imshow("Gray Image",imgGray) cv2.imshow("Blur Image",imgBlur) cv2.imshow("Canny Image",imgCanny) cv2.imshow("Dialation Image",imgDialation) cv2.waitKey(0)
我们看下效果,膨胀使得边缘线变得更厚,全部连接到一块。
我们对刚刚膨胀的图像进行腐蚀运算,就可以得到闭合的边缘图像。
kernel=np.ones((5,5),np.uint8) img=cv2.imread("Resources/lena.png") imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) imgBlur=cv2.GaussianBlur(imgGray,(7,7),0) imgCanny=cv2.Canny(img,150,200) imgDialation=cv2.dilate(imgCanny,kernel,iterations=1) cv2.imshow("Gray Image",imgGray) cv2.imshow("Blur Image",imgBlur) cv2.imshow("Canny Image",imgCanny) cv2.imshow("Dialation Image",imgDialation) cv2.waitKey(0)
从左到右依次为膨胀图像、腐蚀图像、边缘检测图像
OK,本节内容也是非常简单的,主要是让大家熟悉下OpenCV最基础的应用。眼过千遍不如手过一遍,快去动手敲一遍吧~?