import cv2
# 加载图像
image = cv2.imread('4.png')
# 使用 Canny 边缘检测算法提取边缘特征
edges = cv2.Canny(image, 100, 200)
# 显示边缘特征
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码解析:
- 导入 OpenCV 库:
import cv2
- 加载图像:
image = cv2.imread('4.png')
这行代码使用 cv2.imread()
函数加载名为 "4.png" 的图像文件。
- 使用 Canny 边缘检测算法:
edges = cv2.Canny(image, 100, 200)
cv2.Canny()
函数是 OpenCV 中常用的边缘检测算法。它接受两个参数:
image
: 要进行边缘检测的图像。threshold1
: 低阈值。threshold2
: 高阈值。
Canny 算法使用这两个阈值来过滤边缘特征。低于低阈值的边缘特征会被忽略,高于高阈值的边缘特征会被保留。介于两个阈值之间的边缘特征则根据其连接情况来判断是否保留。
- 显示边缘特征:
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow()
函数用于显示图像。第一个参数是窗口的名称,第二个参数是图像数据。cv2.waitKey(0)
函数用于等待用户按下任何键。cv2.destroyAllWindows()
函数用于关闭所有窗口。
代码运行结果:
运行这段代码后,会弹出一个窗口,显示 "4.png" 图像的边缘特征。
一些建议:
- 你可以调整
threshold1
和threshold2
的值来控制边缘检测的敏感度。 - 如果图像中存在噪声,可以使用
cv2.GaussianBlur()
函数对图像进行模糊处理,以减少噪声的影响。 - 你可以使用
cv2.findContours()
函数来查找图像中的轮廓,并使用cv2.drawContours()
函数在图像上绘制轮廓。