opencv直方图拉伸
来源:互联网 发布:淘宝美工工作总结 编辑:程序博客网 时间:2024/05/19 13:17
1、首先计算出一幅图像的直方图
//计算直方图cv::MatND ImageHist::getHist(const cv::Mat &image){cv::Mat im;if(image.channels() == 3)cv::cvtColor(image,im,CV_RGB2GRAY,0);elseim = image;float r[2];r[0] = 0;r[1] = 255;const float *ranges[1];ranges[0] = r;cv::calcHist(&im,1,&channels,cv::Mat(),hist,1,&histSize,ranges);return hist;}//将直方图生成图像,以便在MFC空间中显示cv::Mat ImageHist::getHistImage(const cv::Mat &image){double maxVal = 0;double minVal = 0;cv::minMaxLoc(hist,&minVal,&maxVal,0,0);cv::Mat histImg(histSize,histSize,CV_8U,cv::Scalar(255));int high = histSize * 0.9;for (int i = 0;i < histSize;++i){float binVal = hist.at<float>(i);int inted = binVal / maxVal *high;cv::line(histImg,cv::Point(i,histSize),cv::Point(i,histSize - inted),cv::Scalar::all(0));}return histImg;}
2、去掉直方图两端bin为0或者小于某一数量的bin并记录去掉后两端的灰度值(mini,maxi),然后利用下面公式对颜色查找表进行拉伸:
(i - mini) * 255 / (maxi - mini) + 0.5
cv::Mat ImageHist::stretch(const cv::Mat &image,int minValue /* = 0 */){int mini = 0;for (;mini < histSize;++mini){if(hist.at<float>(mini) > minValue)break;}int maxi = histSize - 1;for (;maxi >= 0;--maxi){if(hist.at<float>(maxi) > minValue)break;}cv::Mat lookup(1,256,CV_8U);for (int i = 0;i < histSize;++i){if(i < mini)lookup.at<uchar>(i) = 0;else if(i > maxi)lookup.at<uchar>(i) = 255;elselookup.at<uchar>(i) =static_cast<uchar>((i - mini) * 255 / (maxi - mini) + 0.5);}cv::Mat result;cv::LUT(image,lookup,result);return result;}
结果:
0 0
- opencv直方图拉伸
- OpenCV之直方图拉伸
- OpenCV实现灰度直方图和直方图拉伸
- OpenCV之查找表与直方图拉伸
- OpenCV图像增强:直方图拉伸和直方图均衡化
- 直方图拉伸
- 我的OpenCV学习笔记(13):计算直方图,利用查找表拉伸直方图,直方图均衡
- OpenCV 图像增强—直方图均衡化和灰度拉伸
- Opencv图像识别从零到精通(10)-----直方图均衡化与直方图拉伸
- OpenCv 直方图
- OpenCv 直方图
- OpenCV 直方图
- opencv 直方图
- opencv直方图
- opencv直方图
- opencv 直方图
- 【OpenCV】直方图
- 直方图拉伸和图像均衡
- 进程、程序和线程的区别
- 青蛙的约会(扩展欧几里德)
- Myeclipse运行异常
- xiaodao 我爱你!
- 友元
- opencv直方图拉伸
- TortoiseSVN客户端重新设置用户名和密码
- Android开发之BroadcastReceiver详解
- 小脚本の开机密码
- 高清:2口VGA分配器的使用与原理
- Python 正则表达式验证密码完整性
- Maven依赖
- Do.js + Backbone.js + yii + bootstrap 成长之路
- CentOS7 yum 命令使用心得-代理上网,从光盘安装软件