编写对图像进行边缘增强的程序
时间: 2024-06-10 14:05:12 浏览: 140
用于图像边缘检测的程序
5星 · 资源好评率100%
好的,针对您的问题,我可以为您提供以下的 Python 代码实现边缘增强:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread("image.jpg")
# 将图像灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对灰度图像应用 Sobel 算子进行边缘检测
sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)
sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=3)
# 计算 Sobel 算子的绝对值
abs_sobelx = cv2.convertScaleAbs(sobelx)
abs_sobely = cv2.convertScaleAbs(sobely)
# 合并梯度图像,这里简单采用两张梯度图像的加权和
grad = cv2.addWeighted(abs_sobelx, 0.5, abs_sobely, 0.5, 0)
# 显示结果
cv2.imshow("Edge Enhance Image", grad)
cv2.waitKey(0)
# 保存结果
cv2.imwrite("edge_enhanced.jpg", grad)
```
上述代码主要采用了 Sobel 算子对灰度图像进行边缘检测,并将计算得到的两张梯度图像进行加权和,得到最终的边缘增强图像。代码中的 `image.jpg` 表示待处理的图像路径,而 `edge_enhanced.jpg` 表示处理完的图像保存路径。您可以根据实际需求进行修改和调试。
阅读全文