【无标题】

  直方图均衡化是一种常用的图像增强技术,旨在通过调整图像的像素值分布,提升图像的对比度和视觉质量。其原理是通过对图像的像素值进行变换,使得图像的直方图均匀分布,从而增强图像中的细节和特征。
  直方图均衡化的核心思想是将原始图像的像素值映射到新的像素值,以使得新的像素值分布更加均匀。这可以通过累积分布函数(CDF)来实现。具体步骤如下:
  1. 计算原始图像的像素值直方图(Histogram)。
  2. 计算像素值的累积分布函数(CDF)。
  3. 根据CDF对原始图像中的每个像素值进行映射,得到均衡化后的像素值。
  直方图均衡化的意义在于增强图像的对比度,使得图像中的细节更加清晰可见。这在图像处理、计算机视觉和图像分析等领域中具有广泛的应用,例如目标检测、图像增强、图像匹配等。
  以下是推导公式和Python代码,用于展示直方图均衡化的原理和应用:
  原始图像的累积分布函数(CDF):
C D F ( x ) = ∑ i = 0 x P ( i ) CDF(x) = \sum_{i=0}^{x} P(i) CDF(x)=i=0xP(i)
  其中, P ( i ) P(i) P(i)是像素值 i i i在图像中出现的概率。
  均衡化后的像素值映射:
T ( x ) = C D F ( x ) − C D F min ( M × N ) − 1 × ( L − 1 ) T(x) = \frac{{CDF(x) - CDF_{\text{min}}}}{{(M \times N) - 1}} \times (L - 1) T(x)=(M×N)1CDF(x)CDFmin×(L1)
  其中, M M M N N N是图像的高度和宽度, L L L是像素值的范围。
  Python代码示例:

import cv2
import matplotlib.pyplot as plt
import numpy as np

def histogram_equalization(image):
    image=cv2.imread(image,flags=0)
    if image is None:
        print('Unabele to load image!')
    else:
        #均衡化
        equalized_image=cv2.equalizeHist(image)

        #计算原始图像灰度直方图
        hist_image=cv2.calcHist([image],[0],None,[256],[0,256])
        #计算均衡化后图像灰度直方图
        hist_equalized_image=cv2.calcHist([equalized_image],[0],None,[256],[0,256])

        plt.figure(figsize=(9,9))

        plt.subplot(221),plt.title("Original image"),plt.imshow(image,cmap='gray',vmin=0,vmax=255)
        plt.subplot(222), plt.title("equalized image"), plt.imshow(equalized_image, cmap='gray', vmin=0, vmax=255)

        #显示直方图
        plt.subplot(223),plt.bar(np.arange(256), hist_image[:,0], color='black', width=1)
        plt.xlabel('Pixel Value'),plt.ylabel('Frequency'),plt.xlim([0,255]),plt.title('Hist_Image')
        plt.subplot(224),plt.bar(np.arange(256), hist_equalized_image[:,0], color='black', width=1)
        plt.xlabel('Pixel Value'),plt.ylabel('Frequency'),plt.xlim([0,255]),plt.title('Hist_Equalized_Image')

        plt.show()

img_path="./Images/cat.jpg"
histogram_equalization(img_path)

  这段Python代码演示了如何使用直方图均衡化对灰度图像进行增强。通过对比原始图像和均衡化后的图像,你可以观察到对比度的增加和细节的显著改善。

你可能感兴趣的:(opencv_python,计算机视觉,人工智能,opencv,python)