用python对名称为horse.jpg的灰度图像进行图像增强,程序包括图像读取,结果展示,结果存储,图像增强包括直方图均衡、平滑、锐化、边缘检测等,需要有合理的注释、变量命名、工作空间命名
时间: 2024-04-01 18:37:05 浏览: 66
好的,以下是用Python对名称为horse.jpg的灰度图像进行图像增强的程序,包含图像读取、结果展示、结果存储,以及直方图均衡、平滑、锐化和边缘检测等图像增强处理。
```python
import cv2
import numpy as np
# 定义图像文件路径
img_path = "horse.jpg"
# 读取图像并转换为灰度图像
img = cv2.imread(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 直方图均衡化
equ = cv2.equalizeHist(gray)
# 平滑处理
blur = cv2.GaussianBlur(equ, (3, 3), 0)
# 锐化处理
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharp = cv2.filter2D(blur, -1, kernel)
# 边缘检测
canny = cv2.Canny(sharp, 100, 200)
# 展示处理结果
cv2.imshow("Original", gray)
cv2.imshow("Histogram Equalization", equ)
cv2.imshow("Smoothing", blur)
cv2.imshow("Sharpening", sharp)
cv2.imshow("Edge Detection", canny)
# 存储处理结果
cv2.imwrite("horse_enhanced.jpg", canny)
# 等待键盘输入并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注释:
- `cv2`: OpenCV库,用于图像处理和计算机视觉
- `numpy`: NumPy库,用于处理多维数组和矩阵运算
- `img_path`: 定义图像文件路径
- `cv2.imread()`: 读取图像
- `cv2.cvtColor()`: 转换图像颜色空间
- `cv2.equalizeHist()`: 直方图均衡化
- `cv2.GaussianBlur()`: 高斯模糊平滑处理
- `np.array()`: 定义卷积核
- `cv2.filter2D()`: 卷积运算
- `cv2.Canny()`: 边缘检测
- `cv2.imshow()`: 显示图像
- `cv2.imwrite()`: 存储图像
- `cv2.waitKey()`: 等待键盘输入
- `cv2.destroyAllWindows()`: 销毁所有窗口
变量命名:
- `img_path`: 图像文件路径
- `img`: 原始图像
- `gray`: 灰度图像
- `equ`: 直方图均衡化结果
- `blur`: 平滑处理结果
- `kernel`: 卷积核
- `sharp`: 锐化处理结果
- `canny`: 边缘检测结果
工作空间命名:
- `img_enhancement.py`: 图像增强程序文件名
- `horse.jpg`: 测试图像文件名
- `horse_enhanced.jpg`: 处理结果图像文件名
阅读全文