(目录)
import cv2 import numpy as np from matplotlib import pyplot as plt
读取图像
image = cv2.imread('image.jpg')
灰度化处理
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
使用Canny边缘检测算法
edges = cv2.Canny(gray, 50, 150)
显示结果
plt.subplot(121), plt.imshow(gray, cmap='gray') plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(edges, cmap='gray') plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()
保存结果
cv2.imwrite('edge.jpg', edges)
在这个代码示例中,我们首先读取了一张图像(请将'image.jpg'替换为你自己的图像路径)并将其转换为灰度图像。然后,我们使用Canny边缘检测算法来检测图像中的边缘。
Canny边缘检测算法是一种经典的边缘检测算法,它的主要思想是首先对图像进行高斯模糊,然后计算图像中的梯度,最后通过非最大抑制和双阈值处理来检测边缘。
在代码的下一部分,我们使用matplotlib库来显示原始图像和边缘图像。我们使用subplot函数创建一个子图来显示原始图像和边缘图像,并使用imshow函数显示图像。然后,我们使用title函数设置子图的标题,xticks和yticks函数来隐藏坐标轴。最后,我们使用show函数显示所有的子图。
最后,我们使用imwrite函数保存边缘图像为'edge.jpg'(请将'edge.jpg'替换为你自己的输出路径)。
得到图像的边缘轮廓,同时也可以保存边缘图像到本地。