官方网站手机 优帮云,石家庄信息网官方网站,给上市公司做网站有什么用,网站seo查询工具直方图统计增强方法的原理#xff1a; 直方图统计增强是一种基于像素值分布的图像增强技术#xff0c;通过调整像素值的分布来增强图像的对比度和细节。其原理是根据图像的直方图信息#xff0c;将原始像素值映射到一个新的像素值域#xff0c;从而改变图像的亮度和对比…直方图统计增强方法的原理 直方图统计增强是一种基于像素值分布的图像增强技术通过调整像素值的分布来增强图像的对比度和细节。其原理是根据图像的直方图信息将原始像素值映射到一个新的像素值域从而改变图像的亮度和对比度。 直方图统计增强方法的意义 这种方法的目的是改善图像的视觉效果使得图像中的细节更加清晰可见从而提高图像在视觉上的识别和分析能力。通过将图像的像素值重新分布使得图像的动态范围更好地覆盖了整个像素值域凸显了图像中的细节增强了图像的信息内容。 适用场景 直方图统计增强方法在以下场景中特别适用
低对比度图像 当图像的亮度范围分布不均匀即图像的对比度较低时直方图统计增强可以使得图像的像素值分布更加均匀增强图像的对比度。局部对比度调整 有时候图像的一部分区域可能亮度较低另一部分区域亮度较高。直方图统计增强可以通过针对不同区域使用不同的增强参数实现局部对比度的调整。图像细节增强 当图像中的细节由于亮度过低或过高而不易分辨时直方图统计增强可以突出这些细节使得它们更加清晰可见。
公式 直方图统计增强的基本公式如下 给定一个原始图像 I ( x , y ) I(x, y) I(x,y)其像素值为 i i i进行直方图统计增强后的图像为 I enhanced ( x , y ) I_{\text{enhanced}}(x, y) Ienhanced(x,y)其像素值为 i ′ i i′。增强函数可以表示为 i ′ T ( i ) round ( c ⋅ i ) i T(i) \text{round}(c \cdot i) i′T(i)round(c⋅i) 其中 c c c是增强常数可以通过调整来控制增强的强度。一般情况下 c 1 c 1 c1 用于增强亮度 c 1 c 1 c1用于降低亮度。函数 ( \text{round} ) 将结果四舍五入到最接近的整数确保结果在合法的像素值范围内。 另外为了避免像素值越界通常还会使用截断操作将增强后的像素值 ( i’ ) 限制在图像像素值域的合法范围内通常是 [0, 255] i ′ { 0 if c ⋅ i 0 255 if c ⋅ i 255 round ( c ⋅ i ) otherwise i \begin{cases} 0 \text{if } c \cdot i 0 \\ 255 \text{if } c \cdot i 255 \\ \text{round}(c \cdot i) \text{otherwise} \end{cases} i′⎩ ⎨ ⎧0255round(c⋅i)if c⋅i0if c⋅i255otherwise 这样直方图统计增强就可以通过调整增强常数 c c c 来改变图像的亮度和对比度从而实现图像的增强代码如下所示
import cv2
import matplotlib.pyplot as plt
import numpy as npdef enhanceHistStat(image, const):enhanced_image np.clip(image * const, 0, 255).astype(np.uint8)return enhanced_imagedef enhance_Histstat(image):# 读取图像image cv2.imread(image, flags0)if image is None:print(Unable to load input_image!)returnelse:# 计算比例因子maxImg image.max()maxROI image[12:120, 12:120].max()const maxImg / maxROI# 调用增强函数image_HSE enhanceHistStat(image, const)image_Equcv2.equalizeHist(image)plt.figure(figsize(10,6))plt.subplot(131),plt.title(Original image),plt.axis(off)plt.imshow(image,cmapgray,vmin0,vmax255)plt.subplot(132),plt.title(Global equalize histogram),plt.axis(off)plt.imshow(image_Equ,cmapgray,vmin0,vmax255)plt.subplot(133),plt.title(Histogram statistic enhance),plt.axis(off)plt.imshow(image_HSE,cmapgray,vmin0,vmax255)plt.show()imgfile1./Images/cat.jpg
enhance_Histstat(imgfile1)