对比度增强直方图均衡化直方图规定化代码实现
时间: 2023-10-17 19:10:15 浏览: 91
直方图均衡化和规定化 matlab代码
3星 · 编辑精心推荐
对比度增强和直方图均衡化是两种不同的图像处理技术,它们的代码实现也有所不同。直方图规定化是一种基于已有的直方图进行调整的技术,可以用于将一张图像的灰度分布调整成另一张图像的灰度分布。
以下是对比度增强和直方图均衡化的代码实现:
对比度增强:
```python
import cv2
# 读取图像
img = cv2.imread("image.jpg")
# 对比度增强
alpha = 2.0 # 对比度增强系数
beta = 0 # 亮度增强系数
img_enhanced = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
# 显示图像
cv2.imshow("Original Image", img)
cv2.imshow("Enhanced Image", img_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
直方图均衡化:
```python
import cv2
# 读取图像
img = cv2.imread("image.jpg", 0)
# 直方图均衡化
img_enhanced = cv2.equalizeHist(img)
# 显示图像
cv2.imshow("Original Image", img)
cv2.imshow("Enhanced Image", img_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
直方图规定化:
```python
import cv2
# 读取原始图像和目标图像
img_src = cv2.imread("src_image.jpg", 0)
img_dst = cv2.imread("dst_image.jpg", 0)
# 计算原始图像的直方图
hist_src = cv2.calcHist([img_src], [0], None, [256], [0, 256])
# 对目标图像进行直方图均衡化
img_dst_enhanced = cv2.equalizeHist(img_dst)
# 计算目标图像的直方图
hist_dst = cv2.calcHist([img_dst], [0], None, [256], [0, 256])
# 进行直方图规定化
lut = cv2.LUT(img_dst_enhanced, hist_src / hist_dst)
img_enhanced = cv2.convertScaleAbs(lut)
# 显示图像
cv2.imshow("Source Image", img_src)
cv2.imshow("Target Image", img_dst)
cv2.imshow("Enhanced Image", img_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文