直方图匹配python代码
时间: 2023-10-12 22:21:56 浏览: 116
以下是一个简单的直方图匹配的 Python 代码实现:
1. 导入必要的库:
```
import numpy as np
import cv2
```
2. 读取原始图像并计算其直方图:
```
img = cv2.imread('original_image.jpg', 0)
hist, bins = np.histogram(img.ravel(), 256, [0,256])
```
3. 读取目标图像并计算其直方图:
```
target = cv2.imread('target_image.jpg', 0)
hist_target, bins_target = np.histogram(target.ravel(), 256, [0,256])
```
4. 计算原始图像和目标图像的累积分布函数:
```
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
cdf_target = hist_target.cumsum()
cdf_target_normalized = cdf_target * hist_target.max() / cdf_target.max()
```
5. 创建一个 Look Up Table (LUT):
```
lut = np.interp(cdf_normalized, cdf_target_normalized, range(256))
```
6. 对原始图像应用 LUT:
```
img_matched = cv2.LUT(img, lut)
```
7. 显示匹配后的图像:
```
cv2.imshow('Matched Image', img_matched)
cv2.waitKey(0)
```
上述代码仅为简单示例,实际使用时还需要进行参数调整,以达到最佳的匹配效果。
阅读全文