打印

请教“颜色识别”的设计

[复制链接]
1754|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
spqgey|  楼主 | 2008-10-17 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下在校学生,想做个“颜色识别”课题。

要求是这样的:周围环境探测,得到背景颜色,而不必分辨率高、细致的照片,但颜色要求精确,
如:背景是淡绿色的草地、深绿色的草地或是沙漠等等,能够精确的区分出这些背景,输出不同信号。也就是便于起到变色龙的作用。

对这方面不是特别了解,请教前辈们,是不是用ccdcmos这样的器件就能够实现这样的功能:取出ccd数据,用单片机或是dsp等处理找出最接近的颜色。

1、不知道有没有其他传感器。
2、不知道51单片机,DSP,FPGA哪个更适合。以便我尽快学习。
3、有那些更好的方案?

多谢!!!

相关帖子

沙发
spqgey|  楼主 | 2008-10-17 17:33 | 只看该作者

传感器型号

能否帮忙推荐一些传感器型号。谢谢!!

使用特权

评论回复
板凳
SkyCode| | 2008-10-17 18:14 | 只看该作者

哈哈 帮你顶一下

灌水

使用特权

评论回复
地板
spqgey|  楼主 | 2008-10-17 18:44 | 只看该作者

可以用颜色识别传感器

有无需集中光线的颜色识别传感器吗?
我用过TCS230;这块显然不能达到采集背景的要求。
前辈们!!支招啊!!感激不尽!!

使用特权

评论回复
5
ejack| | 2008-10-18 10:11 | 只看该作者

似乎用CCD采集更加合适

由CPU进行背景颜色识别。

使用特权

评论回复
6
spqgey|  楼主 | 2008-10-18 10:29 | 只看该作者

dsp可以了吧?能推荐一款ccd或cmos器件吗?

多谢!!

使用特权

评论回复
7
linqing171| | 2008-10-18 13:11 | 只看该作者

可能DSP最好吧。

说下几个方案。
第一如果用DSP,直接小波变换,学过计算机图像学的人都知道,就不多说了。

不过还是要说一下如果用51怎么样去做。
如果背景是一个固定的颜色,可以寻找这个颜色最多的那个,甚至平均值等等算法都可以。但是还是建议用正规做法:

第一步:边缘识别。


建一个滑动窗口滤镜(如果在photoshop里面建立自定义滤镜的话,对应放大8倍) 
float F[3,3]={
-0.125,-0.125,-0.125,
-0.125,1,-0.125,
-0.125,-0.125,-0.125};

原图像 TColor Img[320][240]={};
边缘查找用的临时图像 TColor Img2[320][240]={};
for()
for()
{
Img2[x][y]=
F[0][0]*Img[x-1][y-1]+F[0][1]*Img[x-1][y]+F[0][2]*Img[x-1][y+1]+
F[1][0]*Img[x  ][y-1]+F[1][1]*Img[x  ][y]+F[1][2]*Img[x  ][y+1]+
F[2][0]*Img[x+1][y-1]+F[2][1]*Img[x+1][y]+F[2][2]*Img[x+1][y+1]
}

第二步:

算了,又想起来了一个更好的办法。
第一步,平均值所有颜色计算出所有颜色的平均值比如 ColorAvg={231,15,25};
明显的背景是红色。
第二步,所有点的颜色转换成灰度比如 ColorB={25,88,129}转换后应该为(25+88+129)/(3)=80
然后从在这个灰度通道上添加 ColorAvg的蒙版(Mask)上色,结果就变成了
ColorB2={80*231/256,80*15/256,80*25/256}={72,5,8};骗下肉眼肯定没有问题,由于没有边缘处理和归一化处理,只是颜色转换成灰度重新上了一遍背景色。但是效果应该还是不错的,让评委看下效果应该没有问题。
内存直接用CCD内部的缓冲区,一个51轻松搞定。

使用特权

评论回复
8
spqgey|  楼主 | 2008-10-18 14:16 | 只看该作者

多谢linqing171!!

多谢!!
看来硬件基本确定了。在下计算机图像变换还没接触,得抓紧时间学了!!
多谢!!
要是能推荐款传感器就更加感恩戴德,作牛作马在所不辞了呵呵~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

0

粉丝