opencv 用c++语言 怎样识别出一片区域的红绿灯并判别颜色。
2个回答
2014-05-14
展开全部
你看传感器输入值然后相应的函数很好写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判别颜色:取某区域内颜色的RGB各分量数值(或YUV分量数值)和,分别判断各分量之间的比例关系,当满足一个自己定义的范围时,实现判定。
比如:RGB的比例中R的比例远高于G和B时,判定为红色;R和B、G和B都是前者比例非常大,而且R和G的比例差不多时判断为黄色;G的比例都大于R和B时为绿色。
这个自定义的范围需要用不同的图片、不同照明、不同对比度、不同背景色彩、不同透明度,这些来验证数据,取一个在各种情况下都能工作的范围。
比如:RGB的比例中R的比例远高于G和B时,判定为红色;R和B、G和B都是前者比例非常大,而且R和G的比例差不多时判断为黄色;G的比例都大于R和B时为绿色。
这个自定义的范围需要用不同的图片、不同照明、不同对比度、不同背景色彩、不同透明度,这些来验证数据,取一个在各种情况下都能工作的范围。
更多追问追答
追问
颜色的判别我可以做到,但是区域的确定我做不出来,怎么样能够识别出信号灯的区域呢
追答
可进行平滑滤波后统计区域象素颜色特性,最后大致有一个圆形区域内的特征在特征值范围内。或者在此基础上统计此区域的重心所在,再用附近的象素RGB分量求和进行特征判定。
如果摄像头固定,则可利用以前统计过的区域。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询