直方图均衡化
直方图均衡化是一种常用的图像处理技术,用于改善图像的对比度,特别是在图像的细节被埋没在暗部或亮部区域时。通过重新分配图像的像素强度值,使得图像的整体对比度增强,从而让更多的细节变得可见。
import cv2
import numpy as np
import matplotlib.pyplot as plt
gray_image = cv2.imread('images/img_test.jpg', cv2.IMREAD_GRAYSCALE)
# 应用直方图均衡化
equalized_image = cv2.equalizeHist(gray_image)
# 显示原始图像和均衡化后的图像
cv2.imshow('Original Image', gray_image)
cv2.imshow('Equalized Image', equalized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
局部直方图均衡化,是一种用于增强图像对比度的技术,特别适用于光照不均或者局部对比度较低的图像。全局直方图均衡化考虑整个图像的亮度分布,而局部直方图均衡化则针对图像的每个小区域独立进行直方图均衡化,这样可以更好地提升局部细节的可见性。
import cv2
import numpy as np
image = cv2.imread('images/img_test.jpg', cv2.IMREAD_GRAYSCALE)
# 创建一个 CLAHE 对象
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
# 应用 CLAHE 到图像上
enhanced_image = clahe.apply(image)
# 显示原始图像和增强后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Enhanced Image', enhanced_image)
cv2.waitKey(0)
cv2.destroyAllWindows()