图像增强:自适应直方图均衡化(AHE)

文章目录

  • 算法简介
  • 代码实现
  • 效果展示
    • 处理前
    • 处理后

算法简介

自适应直方图均衡化(AHE)用来提升图像的对比度的一种计算机图像处理技术。和普通的直方图均衡算法不同,AHE算法通过计算图像的局部直方图,然后重新分布亮度来改变图像对比度。因此即使在比大多数图像更暗或更亮的区域,也可以增强局部细节

代码实现

# 自适应直方图均衡化(AHE)
from skimage import exposure
file_to_open = '/content/Rust_032.jpg'
img2 = io.imread(file_to_open)
plt.figure()
plt.imshow(img2)
plt.show()

img = exposure.equalize_adapthist(img2)
im = Image.fromarray(np.uint8(img * 255))
im.save('/content/02.jpg')
plt.figure()
plt.imshow(img)
plt.show()
import cv2
import matplotlib.pyplot as plt
from google.colab.patches import cv2_imshow
import numpy as np
#用直方图分别统计图像各个像素三个颜色通道数值数量的分布
img = cv2.imread('/content/Rust_032.jpg')
cv2_imshow(img)
color = ('blue','green','red')
#enumerate函数第一个返回索引index,第二个返回元素element
for i,color in enumerate(color):
    #参数说明:
    #一、images(输入图像)参数必须用方括号括起来。
    #二、计算直方图的通道。
    #三、Mask(掩膜),一般用None,表示处理整幅图像。
    #四、histSize,表示这个直方图分成多少份(即多少个直方柱)。
    #五、range,直方图中各个像素的值,[0.0, 256.0]表示直方图能表示像素值从0.0到256的像素。
    hist = cv2.calcHist([img],[i],None,[256],[0,256])
    plt.plot(hist,color = color)
    plt.xlim([0,256])
plt.show()
cv2.waitKey()

效果展示

处理前

图像增强:自适应直方图均衡化(AHE)_第1张图片

处理后

图像增强:自适应直方图均衡化(AHE)_第2张图片

你可能感兴趣的:(特征工程,python,opencv,计算机视觉)