图像处理(三):直方图均衡化
来源:互联网 发布:变音软件 编辑:程序博客网 时间:2024/04/20 08:33
直方图均衡化处理:通过重新均匀地分布各灰度值来增强图像对比度;
具体实现方法如下:
1、统计直方图数组,用Utable来记录Utable[i];
2、i从1开始,令Cumu[i] = Cumu[i-1] +Utable[i];
3、计算概率Pro[i]
4、计算直方图均衡化后的数值
具体代码如下:
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){// 统计像素亮度的数目int Utable_b[256] = { 0 };int Utable_g[256] = { 0 };int Utable_r[256] = { 0 };// 计算累计数目int Cumu_b[256] = { 0 };int Cumu_g[256] = { 0 };int Cumu_r[256] = { 0 };// 计算频率float Pro_b[256] = { 0 };float Pro_g[256] = { 0 };float Pro_r[256] = { 0 };Mat src = imread("1.png");int i, j;//Mat gray;//cvtColor(src, gray, CV_BGR2GRAY);for (i = 0; i < src.rows; i++)for (j = 0; j < src.cols; j++){Utable_b[src.at<Vec3b>(i, j)[0]]++;Utable_g[src.at<Vec3b>(i, j)[1]]++;Utable_r[src.at<Vec3b>(i, j)[2]]++;}// 计算累计个数float Sum_b = 0, Sum_g = 0, Sum_r = 0;for (i = 0; i < 256; i++){Sum_b += Utable_b[i];Cumu_b[i] = Sum_b;Sum_g += Utable_g[i];Cumu_g[i] = Sum_g;Sum_r += Utable_r[i];Cumu_r[i] = Sum_r;}// 计算各个的概率for (i = 0; i < 256; i++){Pro_b[i] = Cumu_b[i] / Sum_b;Pro_g[i] = Cumu_g[i] / Sum_g;Pro_r[i] = Cumu_r[i] / Sum_r;}Mat HistEqu = Mat::zeros(src.rows, src.cols, CV_8UC3);// 直方图均衡化for (i = 0; i < src.rows; i++)for (j = 0; j < src.cols; j++){HistEqu.at<Vec3b>(i, j)[0] = cvRound(Pro_b[src.at<Vec3b>(i, j)[0]] * 255);HistEqu.at<Vec3b>(i, j)[1] = cvRound(Pro_g[src.at<Vec3b>(i, j)[1]] * 255);HistEqu.at<Vec3b>(i, j)[2] = cvRound(Pro_r[src.at<Vec3b>(i, j)[2]] * 255);}imshow("src", src);imshow("Hist", HistEqu);waitKey();return 0;}效果付下:
参考博客如下:
https://www.cnblogs.com/tianyalu/p/5687782.html
https://www.cnblogs.com/hustlx/p/5245461.html
阅读全文
0 0
- 图像处理(三):直方图均衡化
- 图像处理(二)直方图均衡化
- 直方图均衡化处理图像(python)
- 图像处理------直方图均衡化
- 【图像处理】直方图均衡化
- 直方图均衡化---图像处理
- 图像处理算法基础(三)---直方图均衡化,自研与opencv对比
- 【OpenCV3图像处理】图像直方图均衡化、直方图匹配
- 三通道bgr图像直方图均衡化
- python 简单图像处理(8) 直方图均衡化
- 图像处理之直方图均衡化
- 图像处理-光照规整-直方图均衡化
- 图像处理之(直方图)均衡化
- 【VC图像处理】直方图均衡化
- 图像处理之直方图均衡化
- 图像处理之直方图均衡化
- 图像处理之直方图均衡化
- 基于直方图均衡化的图像处理
- mystl的limit与offset举例
- 标志变量find的使用(P141-6.3)
- Zookeeper安装配置
- Service Location Protocol SLP
- 使用js去掉字符串的两侧的指定字符和替换去除空格、换行、回车
- 图像处理(三):直方图均衡化
- Python数据扩展包之Matplotlib
- Matlab + LibSVM + 问题集锦【20170407】
- 返回JSON数据,在IE下提示下载文件解决方法整理
- 7个实例全面掌握Hadoop MapReduce
- 如何模拟IP分片到达主机的先后顺序
- 微服务拆分需要考虑的必要因素与坚持原则
- oracle进行order by,排序字段值相同时,导致分页数据出现相同,加入rowid的解决方法
- python_模拟商品管理系统