机器学习进阶-直方图与傅里叶变化-直方图均衡化 1.cv2.equalizeHist(进行直方图均衡化) 2. cv2.createCLAHA(用于生成自适应均衡化图像)


1. cv2.equalizeHist(img)  # 表示进行直方图均衡化

参数说明:img表示输入的图片

2.cv2.createCLAHA(clipLimit=8.0, titleGridSize=(8, 8))  用于生成自适应均衡化图像

参数说明:clipLimit颜色对比度的阈值, titleGridSize进行像素均衡化的网格大小,即在多少网格下进行直方图的均衡化操作

直方图均衡化:一般可以用来提升图片的亮度, 在上面一节中,我们可以看出在150-200之间所占的频数特别的大,频数均衡化指的是让频数的分布看起来更加均匀一些

主要实现的手段

上图中的左边的图是原始数据, 右边的图是进行函数映射后的灰度值

首先对各个灰度值做频数统计,计算其概率,根据像素的灰度值计算出累积概率,最后将累积概率 * (255-0) 做为函数映射后的灰度值,

这样做的目的,可以使得灰度值之间的间隔更小,即一些频数较大的灰度值补充给了频数较小的灰度值,从而实现了灰度值的均衡化

代码:

第一步:读入图片

第二步:使用cv2.equalizeHist(img)均衡化像素

第三步:使用plt.hist 画出均衡化的直方图

第四步:使用plt.imshow 画出均衡化后的图像

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


# 第一步:读入图片
img = cv2.imread('cat.jpg', 0)

# 第二步: 使用cv2.equalizeHist实现像素点的均衡化
ret = cv2.equalizeHist(img)

# 第三步:使用plt.hist绘制像素直方图
plt.subplot(121)
plt.hist(img.ravel(), 256)
plt.subplot(122)
plt.hist(ret.ravel(), 256)
plt.show()

# 第四步:使用cv2.imshow()绘值均衡化的图像
cv2.imshow('ret', np.hstack((img, ret)))
cv2.waitKey(0)

 

这种全局的均衡化也会存在一些问题,由于整体亮度的提升,也会使得局部图像的细节变得模糊,因为我们需要进行分块的局部均衡化操作

代码:

第一步:使用cv2.createCLAHE(clipLimit=2.0, titleGridSize=(8, 8)) 实例化均衡直方图函数
第二步:使用.apply进行均衡化操作

第三步:进行画图操作

# 使用自适应直方图均衡化
# 第一步:实例化自适应直方图均衡化函数
clahe = cv2.createCLAHE(clipLimit=2.0,
                        tileGridSize=(8, 8))

# 第二步:进行自适应直方图均衡化
clahe = clahe.apply(img)

# 第三步:进行图像的展示
cv2.imshow('imgs', np.hstack((img, ret, clahe)))
cv2.waitKey(0)
cv2.destroyAllWindows()

可以看出自适应均衡化没有使得人物脸部的细节消失

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 python库skimage 图像直方图均衡化、自适应均衡化、对比度拉伸实现 自适应直方图均衡化 AHE 机器学习进阶-目标跟踪-KCF目标跟踪方法 1.cv2.multiTracker_create(构造选框集合) 2. cv2.TrackerKCF_create(获得KCF追踪器) 3. cv2.resize(变化图像大小) 4.cv2.selectROI(在图像上框出选框) 图像增强 | CLAHE 限制对比度自适应直方图均衡化 【图像增强】CLAHE 限制对比度自适应直方图均衡化 机器学习进阶-背景建模-(帧差法与混合高斯模型) 1.cv2.VideoCapture(进行视频读取) 2.cv2.getStructureElement(构造形态学的卷积) 3.cv2.createBackgroundSubtractorMOG2(构造高斯混合模型) 4.cv2.morpholyEx(对图像进行形态学的变化) 机器学习进阶-目标追踪-SSD多进程执行 1.cv2.dnn.readnetFromCaffe(用于读取已经训练好的caffe模型) 2.delib.correlation_tracker(生成追踪器) 5.cv2.writer(将图片写入视频中) 6.cv2.dnn.blobFromImage(图片归一化) 10.multiprocessing.process(生成进程) 机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作) 机器学习进阶-图像特征sift-SIFT特征点 1.cv2.xfeatures2d.SIFT_create(实例化sift) 2. sift.detect(找出关键点) 3.cv2.drawKeypoints(画出关键点) 4.sift.compute(根据关键点计算sift向量) 机器学习进阶-图像形态学变化-礼帽与黑帽 1.cv2.TOPHAT(礼帽-原始图片-开运算后图片) 2.cv2.BLACKHAT(黑帽 闭运算-原始图片)
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM