使用的模块:
为此,我们将使用opencv-python模块,该模块为我们提供了处理图像的各种功能。
下载opencv-python
General Way: pip install opencv-python Pycharm Users: Go to the project Interpreter and install this module from there.
opencv-python模块:
opencv-python是一个python库,它将解决计算机视觉问题并为我们提供编辑图像的各种功能。
注意:仅在灰度图像中可以进行边缘检测。
我们将在此脚本中做什么?
为了检测图像的边缘,我们将使用opencv-python的各种功能并提供阈值。
在本文中,我们将借助各种功能来检测图像的边缘,并且当我们下降时边缘的精度会提高,
Sobel 函数:此函数将创建水平和垂直边缘,然后,我们将使用按位或运算符将它们组合
Laplacian 函数:此函数是最简单的函数,只需要将灰度变量放入其中,就可以得到边缘检测到的图像。
Canny 函数:这是边缘检测功能最强大且最准确的功能。
让我们看一下代码:
# 导入模块 import cv2 # 读取图像并将数据存储在变量中 image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg") # 使它成为灰度 Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) # 在sobel的帮助下实现 # 使sobel_horizontal # 对于水平x轴= 1和yaxis = 0 # 对于垂直x轴= 0和y轴= 1 Horizontal=cv2.Sobel(Gray,0,1,0,cv2.CV_64F) # 门槛就像 # (variable,0,<x axis>,<y axis>,cv2.CV_64F) Vertical=cv2.Sobel(Gray,0,0,1,cv2.CV_64F) # 做按位运算 Bitwise_Or=cv2.bitwise_or(Horizontal,Vertical)# 显示边缘图像 cv2.imshow("Sobel Image",Bitwise_Or) cv2.imshow("Original Image",Gray) cv2.waitKey(0)cv2.destroyAllWindows()
输出:
# 导入模块 import cv2 # 读取图像并将数据存储在变量中 image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg") # 使它成为灰度 Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) # 使拉普拉斯函数 Lappy=cv2.Laplacian(Gray,cv2.CV_64F) cv2.imshow("Laplacian",Lappy) cv2.imshow("Original",Gray) cv2.waitKey(0)cv2.destroyAllWindows()
输出:
# 导入模块 import cv2 # 读取图像并将数据存储在变量中 image=cv2.imread("/home/abhinav/PycharmProjects/untitled1/b.jpg") # 使它成为灰度 Gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) # 使功能正常 canny=cv2.Canny(Gray,40,140) # 阈值在bw 0和255之间变化 cv2.imshow("Canny",canny) cv2.imshow("Original",Gray) cv2.waitKey(0)cv2.destroyAllWindows()
输出: