使用的模块:
为此,我们将使用opencv-python模块,该模块为我们提供了处理图像的各种功能。
下载opencv-pythonGeneral 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 函数:这是边缘检测功能最强大且最准确的功能。
让我们看一下代码:
1)使用Sobel函数# 导入模块
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,,,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()
输出:
2)Laplacian函数# 导入模块
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()
输出:
3)使用Canny函数# 导入模块
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()
输出: