opencv图像识别 红色

需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)区域的大小,如占整个图像一定比例以上,则输出1,否则输出0... 需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)区域的大小,如占整个图像一定比例以上,则输出1,否则输出0 展开
 我来答
志当存高远389
推荐于2016-06-18 · 知道合伙人互联网行家
志当存高远389
知道合伙人互联网行家
采纳数:11236 获赞数:20406
08年毕业,一直从事计算机行业,从基层做起。有较强的实践操作能力。

向TA提问 私信TA
展开全部
直接对每个像素点判断即可,src是图像
IplImage* src;
CvScalar s;
for(int i = 0;i < src->height;i++)
{
for(int j = 0;j < src->width;j++)
{

s = cvGet2D(src,i,j); // 获得像素值
if(s.val[0]<50&&s.val[1]<50&&s.val[2]>200)
//注意这里的012对应的是bgr,范围的意思是防止光线的明暗影响,可以适当放宽,另外你也可以选择其他的颜色空间,可以直接取消明暗影响,比如HSV
{
s.val[0]=0;
s.val[1]=0;
s.val[2]=255;
} //如果满足条件就设置为红色
else
{
s.val[0]=0;
s.val[1]=0;
s.val[2]=0;
} //如果不满足就设置为黑色
cvSet2D(src,i,j,s); //设置像素
}
}
cvNamedWindow( "image", 1 );
cvShowImage("imagequot;,src); //显示出来
另外你说的定位是什么意思,是不是说像车牌那样做一个矩形框框起来?我这做过一个车牌定位的,如果是的话我可以发给你!或者把代码贴出来
追问
谢谢  不过  我要的是 1 和0 的结果输出
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式