大型旅游网站源码 织梦 2016,汇中建设 官方网站,ui设计流程,电商网站销售数据分析直方图正则化#xff08;Histogram Normalization#xff09;是一种图像增强技术#xff0c;目的是改变图像的直方图以改善图像的质量。具体来说#xff0c;它通过将图像的直方图调整为指定的形状#xff0c;以增强图像的对比度和亮度。
直方图正则化的基本步骤如下…直方图正则化Histogram Normalization是一种图像增强技术目的是改变图像的直方图以改善图像的质量。具体来说它通过将图像的直方图调整为指定的形状以增强图像的对比度和亮度。
直方图正则化的基本步骤如下
计算输入图像的直方图和累积分布函数CDF。 计算正则化的直方图使其具有相同的CDF。 使用正则化的直方图来映射输入图像的像素值。 下面是一个使用Python和OpenCV库实现直方图正则化的示例代码
import cv2
import numpy as np
import matplotlib.pyplot as plt# 加载图像
image cv2.imread(11111.jpg, cv2.IMREAD_GRAYSCALE)# 计算输入图像的直方图和累积分布函数CDF
hist, bins np.histogram(image.flatten(), 256, [0, 256])
cdf hist.cumsum()
cdf_normalized cdf * hist.max() / cdf.max()# 计算正则化的直方图
cdf_m np.ma.masked_equal(cdf, 0)
cdf_m (cdf_m - cdf_m.min()) * 255 / (cdf_m.max() - cdf_m.min())
cdf_final (cdf_m - cdf_m.min()) * hist.max() / (cdf_m.max() - cdf_m.min())# 使用正则化的直方图来映射输入图像的像素值
image_normalized np.interp(image.flatten(), bins[:-1], cdf_final)
image_normalized image_normalized.reshape(image.shape)# 显示原始图像、正则化后的图像和直方图
plt.subplot(2, 2, 1)
plt.imshow(image, cmapgray)
plt.title(Original Image)
plt.xticks([]), plt.yticks([])plt.subplot(2, 2, 2)
plt.hist(image.flatten(), 256, [0, 256])
plt.title(Original Histogram)
plt.xlabel(Pixel Value)
plt.ylabel(Frequency)plt.subplot(2, 2, 3)
plt.imshow(image_normalized, cmapgray)
plt.title(Normalized Image)
plt.xticks([]), plt.yticks([])plt.subplot(2, 2, 4)
plt.hist(image_normalized.flatten(), 256, [0, 256])
plt.title(Normalized Histogram)
plt.xlabel(Pixel Value)
plt.ylabel(Frequency)#plt.show()
plt.savefig(11111gray.jpg)这段代码首先加载一张灰度图像并计算其直方图和CDF。然后它计算正则化的直方图并使用该直方图来映射输入图像的像素值。最后它显示原始图像、正则化后的图像和两个直方图。 效果图如下所示