编写程序:使用线性函数对“lena_gray.tif”图片进行点运算灰度压缩并显示,然后对处理后的图像进行直方图均衡化并进行显示。
时间: 2024-05-10 21:13:57 浏览: 58
图像灰度线性变换及直方图均衡化源代码
以下是基于Python的代码实现:
```python
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread('lena_gray.tif', 0)
# 线性函数灰度压缩
a = 2.0
b = -50.0
img_compress = np.clip(a * img + b, 0, 255).astype(np.uint8)
# 直方图均衡化
img_equalized = cv2.equalizeHist(img_compress)
# 显示处理后的图像
cv2.imshow('Compressed Image', img_compress)
cv2.imshow('Equalized Image', img_equalized)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
代码解释:
1. `cv2.imread('lena_gray.tif', 0)` 读取原始灰度图像。
2. `a` 和 `b` 是压缩函数中的参数,可以根据需要进行调整。
3. `np.clip(a * img + b, 0, 255)` 对灰度值进行线性变换,并将结果限制在 0-255 范围内。
4. `cv2.equalizeHist(img_compress)` 对灰度值进行直方图均衡化。
5. `cv2.imshow()` 显示处理后的图像。
6. `cv2.waitKey(0)` 等待按下任意键。
7. `cv2.destroyAllWindows()` 关闭所有的窗口。
阅读全文