如何用opencv取得一个小区域的颜色(比如红绿灯)

greyrainbow2010 2010-11-20 02:53:02
一张图片,远处有个红绿灯。假设图片的红绿灯位置固定(已知)
我用opencv把这个红绿灯的状态即颜色给判断出来

步骤是不是先对这个红绿灯区域设置感兴趣区域,然后识别感兴趣区域里的颜色??
如果是的话

请哪位写个源码出来,判断识别颜色的代码就行。

...全文
1556 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
greyrainbow2010 2011-01-04
  • 打赏
  • 举报
回复
顶啊,看有没有高手
nbhx2010 2011-01-03
  • 打赏
  • 举报
回复
上面判断红色图片的程序
结果发现用绿色图片,RGB值也是一样的,这说明程序不对
nbhx2010 2011-01-03
  • 打赏
  • 举报
回复
这个我也在搞,但是还没进展


判断红色图片

IplImage* pImg_test = cvLoadImage("red7.jpg",1);;
int r, g, b;
int intRedCount = 0;
int intS = 0;
for(int x = 0; x < pImg_test->width; x++)
{
for(int y = 0; y < pImg_test->height; y++)
{
r = CV_IMAGE_ELEM(pImg_test, uchar, y, x * 3 + 2);
g = CV_IMAGE_ELEM(pImg_test, uchar, y, x * 3 + 1);
b = CV_IMAGE_ELEM(pImg_test, uchar, y, x * 3);
if ((r >= 210) && (130 > g ) && (g > 110) && (150 > b ) && (b > 130))
{
intRedCount++;
}
}
}

if (intRedCount >= 5)
{
AfxMessageBox("r==255,现在是红色信号灯\n");
}


bios8086 2010-12-31
  • 打赏
  • 举报
回复
建立一个cvmat然后遍历里面的数据就行啦!呵呵
greyrainbow2010 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 carson2005 的回复:]

先设置 roi
cvSetImageRoi();
然后,在roi里面,判断颜色。。。
[/Quote]

前2个我做好了,就是在ROI里面判断颜色不会
这个是一个颜色范围,不是固定的。
ChenLee_1 2010-12-28
  • 打赏
  • 举报
回复
先设置 roi
cvSetImageRoi();
然后,在roi里面,判断颜色。。。
greyrainbow2010 2010-12-17
  • 打赏
  • 举报
回复
对一个新人来说,你们说的都有点难啊
可惜都没有代码
libralibra 2010-12-13
  • 打赏
  • 举报
回复
红绿灯直接分析rgb空间完了
ShaofengChen 2010-12-12
  • 打赏
  • 举报
回复
用hsv颜色空间
LilyMint 2010-12-07
  • 打赏
  • 举报
回复
用区域直方图。
liuchui2009 2010-12-07
  • 打赏
  • 举报
回复
如果位置点已知的话
将像素点的值取出来,搞几个if。。else判断下就OK啦

如果要复杂点、准确点 用一些基于统计特性的分类器来训练识别也行
fengbingchun 2010-11-22
  • 打赏
  • 举报
回复
用CV_IMAGE_ELEM提出单个坐标的像素值,然后根据你给的颜色范围判断就行了
greyrainbow2010 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengbingchun 的回复:]

用CV_IMAGE_ELEM提出单个坐标的像素值,然后根据你给的颜色范围判断就行了
[/Quote]

坐标是指什么?不能取单点吧?
如果我是一个10 * 10 像素的正方形,即使是红灯的时候,周边也有黑色的。。这个时候把所有这个范围内的坐标都扫描一下,红色占大部分颜色就判断是红灯??

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧