采用Python语言编写一个程序,对采集后的彩色图像进行Sobel、Laplacian和Canny算子的边缘检测
时间: 2024-03-30 09:40:41 浏览: 76
根据输入的参数不同,选用不同的算子对输入的图像进行边缘检测,包括sobel,log,canny等5哥算子-.zip
好的,以下是一个简单的Python程序,使用OpenCV库实现Sobel、Laplacian和Canny算子的边缘检测:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Sobel算子边缘检测
sobel_x = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)
sobel_y = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=3)
sobel = cv2.addWeighted(sobel_x, 0.5, sobel_y, 0.5, 0)
# Laplacian算子边缘检测
laplacian = cv2.Laplacian(gray, cv2.CV_64F)
# Canny算子边缘检测
canny = cv2.Canny(gray, 100, 200)
# 显示边缘检测结果
cv2.imshow('Original Image', img)
cv2.imshow('Sobel Edges', sobel)
cv2.imshow('Laplacian Edges', laplacian)
cv2.imshow('Canny Edges', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.Sobel()`函数用于计算Sobel算子,`cv2.Laplacian()`函数用于计算Laplacian算子,`cv2.Canny()`函数用于计算Canny算子。最后使用`cv2.imshow()`函数将结果显示出来。
阅读全文