opencv 图像阴影检测
来源:互联网 发布:java class.getname 编辑:程序博客网 时间:2024/05/01 02:41
opencv 图像阴影检测
GarfieldEr007 2017-01-09 原文
参数说明:
IplImage *workImg-当前全局变量,表示正在显示的图片。
downleft, upright- 检测出的阴影部分矩形框的两个对角顶点。
- /*********************************************/
- //阴影检测
- /*********************************************/
- CvPoint downleft,upright;
- int cnt;
- ][]={-,-,-,,-,,,,,-,,,,,,-};
- #define SHADOW 170
- #define Thres_KindNumber 20
- bool InRange(CvPoint point,IplImage* pi)
- {
- int w=pi->width;
- int h=pi->height;
- &&point.x<w&&point.y>=&&point.y<h)
- {
- ];
- ;i<;i++)
- {
- v[i]=((uchar*)(pi->imageData + pi->widthStep*point.y))[point.x*+i];
- if(v[i]<=SHADOW)
- return true;
- }
- }
- return false;
- }
- void Dye(IplImage** curimg,CvPoint s)
- {
- int i;
- queue<CvPoint>Q;
- Q.push(s);
- ;i<;i++)
- ((uchar*)((*curimg)->imageData + (*curimg)->widthStep*s.y))[s.x*+i]=SHADOW+;
- while(!Q.empty())
- {
- s=Q.front();
- Q.pop();
- if(s.x<downleft.x) downleft.x=s.x;
- if(s.y<downleft.y) downleft.y=s.y;
- if(s.x>upright.x) upright.x=s.x;
- if(s.y>upright.y) upright.y=s.y;
- //dye around
- ;i<;i++)
- {
- CvPoint now=cvPoint(s.x+dir[i][],s.y+dir[i][]);
- if(InRange(now,*curimg))
- {
- Q.push(now);
- cnt++;
- ;i<;i++)
- ((uchar*)((*curimg)->imageData + (*curimg)->widthStep*now.y))[now.x*+i]=SHADOW+;
- }
- }
- }
- }
- void CCVMFCView::OnShadowDetect()
- {
- //detect shadows,find the region with highest pixel value
- int x,y;
- srcimg=workImg;
- ;y<srcimg->height;y++)
- ;x<srcimg->width;x++)
- {
- CvPoint curp=cvPoint(x,y);
- downleft.x=srcimg->width;downleft.y=srcimg->height;
- upright.x=upright.y=;
- cnt=;
- if(InRange(curp,srcimg))
- Dye(&srcimg,curp);
- if(cnt>Thres_KindNumber)
- cvRectangle(workImg , downleft,upright,CV_RGB(,,),,CV_AA,);
- }
- Invalidate();
- }
from: http://blog.csdn.net/abcjennifer/article/details/7334043
阅读全文
0 0
- opencv 图像阴影检测
- opencv 图像阴影检测
- opencv 图像阴影检测
- OpenCV检测图像轮廓
- 【OpenCV】图像模糊检测
- opencv图像边缘检测
- OpenCv视频图像肤色检测
- Opencv图像偏色检测
- OpenCV检测图像SURF特征
- opencv图像角点检测
- opencv(16)---图像边缘检测
- openCV实现图像边缘检测
- Opencv 图像增强算法 图像检测结果
- Opencv 图像增强算法 图像检测结果
- Opencv 图像增强算法 图像检测结果
- opencv图像处理5--车辆检测
- opencv图像处理6--网球检测
- 图像边缘检测--OpenCV之cvCanny函数
- Twitter 架构优化之路--Twitter是如何做到每秒处理3000张图片
- Codeforces 842C(思维)
- 微信小程序入门
- 洛谷P3074牛奶调度解题报告
- [初学笔记] 转义字符 转换字符 escape characters
- opencv 图像阴影检测
- 公钥与私钥
- C语言中 char 类型的取值范围为什么是-128~127
- RDD的创建与操作
- Android Studio gradle 文件中 ${supportLibVersion} 用法
- 为什么说任何基于比较的算法将 5 个元素排序都需要 7 次?
- python入门 环境搭建
- 动态规划 ① HDU-2062 Subset Sequence
- 【51Nod1379】索函数