📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
直方图均衡化的作用
📢1、使物体和背景区分不明显的图像,对比度加强;而如果图像本身对比度很强,那么该方法没有明显作用。
📢2、直方图均衡化是一种图像处理的技术,用于增强图像的对比度。它通过重新分配图像的像素值来扩展亮度范围,从而使图像的亮度分布更均匀。
直方图均衡化具体步骤
步骤1. 确定图像的灰度直方图:将图像转换为灰度图像,并计算每个灰度级别的像素数。
步骤2. 计算累积分布函数(CDF):对灰度直方图进行归一化处理,得到像素值的累积概率分布。
步骤3. 计算映射函数:根据CDF值,计算每个灰度级别对应的新像素值。
步骤4. 重新映射像素值:根据映射函数,将原始图像的每个像素值替换为对应的新像素值。
这样做的结果是使图像的像素值分布更加均匀,增强了图像的对比度。直方图均衡化常用于图像增强和前景提取等应用中。
详细内容参考:【opencv学习笔记】024之直方图均衡化
代码演示
#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat img, src,img_gray;
src = imread("D:/images/lena.png");
if (!src.data)
{
cout << "ERROR : could not load image.";
return -1;
}
imshow("原图", src);
cvtColor(src, img_gray, COLOR_BGR2GRAY);
imshow("灰度化", img_gray);
//直方图均衡化
equalizeHist(img_gray, img);
imshow("直方图均衡化", img);
waitKey(0);
return 0;
}
效果展示
对人脸和细胞的直方图均衡化的效果如下: