OpenCV直方图图像增强算法
来源:互联网 发布:香港永丰贵金属 知乎 编辑:程序博客网 时间:2024/05/21 08:44
原文地址:http://blog.csdn.net/abcjennifer/article/details/7401921
本code通过直方图变换增强了图像对比度,实现了单通道图像增强。将图像灰度阈值拉伸到0-255,图像检测结果见底部
Keywords: 图像增强 增强对比度 直方图变换
- int ImageStretchByHistogram(IplImage *src1,IplImage *dst1)
- /*************************************************
- Function: 通过直方图变换进行图像增强,将图像灰度的域值拉伸到0-255
- src1: 单通道灰度图像
- dst1: 同样大小的单通道灰度图像
- *************************************************/
- {
- assert(src1->width==dst1->width);
- double p[256],p1[256],num[256];
- memset(p,0,sizeof(p));
- memset(p1,0,sizeof(p1));
- memset(num,0,sizeof(num));
- int height=src1->height;
- int width=src1->width;
- long wMulh = height * width;
- //statistics
- for(int x=0;x<src1->width;x++)
- {
- for(int y=0;y<src1-> height;y++){
- uchar v=((uchar*)(src1->imageData + src1->widthStep*y))[x];
- num[v]++;
- }
- }
- //calculate probability
- for(int i=0;i<256;i++)
- {
- p[i]=num[i]/wMulh;
- }
- //p1[i]=sum(p[j]); j<=i;
- for(int i=0;i<256;i++)
- {
- for(int k=0;k<=i;k++)
- p1[i]+=p[k];
- }
- // histogram transformation
- for(int x=0;x<src1->width;x++)
- {
- for(int y=0;y<src1-> height;y++){
- uchar v=((uchar*)(src1->imageData + src1->widthStep*y))[x];
- ((uchar*)(dst1->imageData + dst1->widthStep*y))[x]= p1[v]*255+0.5;
- }
- }
- return 0;
- }
- void CCVMFCView::OnImageAdjustContrast()
- {
- if(workImg->nChannels>1)
- OnColorToGray();
- Invalidate();
- dst=cvCreateImage(cvGetSize(workImg),workImg->depth,workImg->nChannels);
- ImageStretchByHistogram(workImg,dst);
- m_dibFlag=imageReplace(dst,&workImg);
- Invalidate();
- }
Experiment Result:
原图灰度化
检测结果1
灰度化并增强对比度
检测结果2
- OpenCV直方图图像增强算法
- OpenCV图像增强:直方图拉伸和直方图均衡化
- 图像增强-直方图增强
- OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
- OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
- OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
- 直方图均衡法,图像增强算法实现
- 图像的直方图均衡增强算法
- 【OpenCV笔记 14】OpenCV图像增强方法直方图均衡化
- 图像颜色增强算法Opencv
- Opencv 图像增强算法 图像检测结果
- Opencv 图像增强算法 图像检测结果
- Opencv 图像增强算法 图像检测结果
- 图像直方图均衡化增强opencv与C语言版
- OpenCV 图像增强—直方图均衡化和灰度拉伸
- 图像增强算法实现--直方图的均衡化
- 基于直方图的图像增强算法(HE、CLAHE、Retinex)
- OpenCV,常用图像增强算法的实现
- Guide to Finding a Technical Co-Founder
- 杭电1008
- 我对 系统调用号 系统调用表 系统调用函数入口地址的理解
- 第九天——我高三了
- 一步一步做 LFS
- OpenCV直方图图像增强算法
- Android Activity生命周期 举例说明
- 一花一世界,一码一人生(程序猿的困惑)
- vb 中ImageList 控件的安装
- 正则表达式30分钟入门教程
- Organ On Chip
- linux下添加永久路由
- 黑马程序员:String类和StringBuffer类的总结
- 拦截JInternalFrame的关闭事件