【数字图像处理】直方图均衡
来源:互联网 发布:数据库备注字段 编辑:程序博客网 时间:2024/05/08 18:33
//直方图均衡Mat HistogramEquilibrium(Mat src){int num = 1;//首先创建一个存储像素灰度值以及灰度值出现次数的键值对map<int,int> pixelStatistic;//遍历图像像素,统计各灰度值出现次数for(int r = 0;r < src.rows;r++){uchar* srcRowData = src.ptr<uchar>(r);for(int c = 0;c < src.cols;c++){map<int,int>::iterator it = pixelStatistic.find(srcRowData[c]); if(it != pixelStatistic.end()){it->second++;}else{pixelStatistic.insert(pair<int, int>(srcRowData[c], num));}}}//创建灰度值及其出现概率的键值对map<int, double> probability;int sum = 0;//计算各灰度值在直方图均衡过程中的映射关系(等于从0灰度值开始,各灰度值的概率向下求和)for(int i = 0;i <= 255;i++){map<int, int>::iterator it = pixelStatistic.find(i);sum += it->second;probability.insert(pair<int, double>(i, sum * 1.0 / (src.rows * src.cols)));}Mat dst;dst.create(src.size(), src.type());//将各灰度值映射到相应的灰度级中,得到均衡后的灰度值for(int r = 0;r < src.rows;r++){uchar* srcRowData = src.ptr<uchar>(r);uchar* dstRowData = dst.ptr<uchar>(r);for(int c = 0;c < src.cols;c++){map<int, double>::iterator it = probability.find(srcRowData[c]);dstRowData[c] = (uchar)(it->second * 255);}}return dst;}
阅读全文
1 0
- 【数字图像处理】直方图均衡
- 数字图像处理--直方图均衡化
- 数字图像处理-----直方图均衡化
- 数字图像处理:1.直方图均衡化
- 数字图像处理之直方图均衡化
- python数字图像处理:直方图与均衡化
- 【数字图像处理】[2]--直方图均衡化
- 数字图像处理之直方图均衡化(Octave)
- 数字图像处理之--灰度直方图均衡化
- 【学习笔记】【数字图像处理】直方图均衡化
- 【数字图像处理】图像可视化对数增强 直方图及其均衡化
- 【数字图像处理】直方图均衡化详解及编程实现
- OpenCV数字图像处理四:直方图均衡化 数组示例
- Win8Metro(C#)数字图像处理--2.30直方图均衡化
- 【数字图像处理之二】图像直方图均衡化
- python数字图像处理(9):直方图与均衡化
- python数字图像处理(9):直方图与均衡化
- 数字图像处理之灰度图的直方图均衡化
- 脱离文档流分析
- 比特币水涨船高,黑客盯死数字货币
- The Knuth-Morris-Pratt Algorithm in my own words
- hadoop的NAMENODE的管理机制,工作机制和DATANODE的工作原理
- 弱监督语义分割--Object Region Mining with Adversarial Erasing
- 【数字图像处理】直方图均衡
- 一段代码的测试过程记录
- Android如何判断若干个小矩形可不可以被放到一个大矩形中
- 线程池
- 9月8日国盟CISSP每日一题
- Java并发编程:(5)线程池源码解析
- oracle安装过程中先决条件检查失败的解决办法
- Android 偷懒那些事
- WPF学习笔记——ListBox用ItemsSource绑定数据源