摄像头 算法区别各种颜色
刚有个任务,在不同的材料,不论颜色深浅,色度差异, 都要利用算法区别开 红绿蓝白黄 这五种颜色,用一套算法,可是我现在只能达到通过对一种材料的调试,去改变算法中的阈值,从而区别开,
而且也对各种颜色在每种材料上取了许多点,希望能找到一个合适的范围,将其分开,可是,感觉无规律可循啊!
利用一种算法,固定不变的程序,还要保证成功率很高,该怎么办啊!
好苦恼啊,还请对这方面精通的大神指教啊!!!! 自己顶一下啊 找一种方式来增大你需要分辨的颜色的梯度差。比如如果识别红色和蓝色,很明显不能够使用灰阶图。 鼻儿眼睛花 发表于 2014-4-6 17:53
找一种方式来增大你需要分辨的颜色的梯度差。比如如果识别红色和蓝色,很明显不能够使用灰阶图。 ...
颜色的梯度差??何解啊??
我现在用的是图像 Y UV,同时控制识别的,只是现在的图像有点小,100*100的,
cpu的原因,太大处理起来太慢! 用的PC还是DSP呢?。。。。{:smile:}{:smile:} 不太了解dsp用的stm32f4 xuexueaibeibei 发表于 2014-4-6 17:57
颜色的梯度差??何解啊??
我现在用的是图像 Y UV,同时控制识别的,只是现在的图像有点小,100*100的 ...
我用的stm32f4来实现边缘的提取,没有外扩ram和超频能够做到50Hz。
你的所谓“识别不同的颜色这个概念本来就比较模糊,摄像头只要输出的像素点颜色数据不一样,那就是不同的颜色,你要识别的归根结底还不是某种颜色所在的区域。 鼻儿眼睛花 发表于 2014-4-6 18:09
我用的stm32f4来实现边缘的提取,没有外扩ram和超频能够做到50Hz。
你的所谓“识别不同的颜色这个概念本 ...
我也是用的stm32f4 ,可是现在只能达到0.2秒一幅图,你是怎么达到50hz的呢??
而且你是用的多大的矩阵呢?我现在没有外接ram,没有超频,可能算法上面太浪费时间了吧!
我想达到的将这五种颜色的边缘识别出来,可就是找不到一个合适的阈值,让这程序在任何材料、各种颜色深度上面都能准确找到边缘,
(比如,当深蓝,浅蓝都可以)
你需要的是色度范围,自己定义下个各种颜色的的取值范围,落在这个范围内的就判定为一种颜色。 error_dan 发表于 2014-4-6 21:15
你需要的是色度范围,自己定义下个各种颜色的的取值范围,落在这个范围内的就判定为一种颜色。 ...
可是现在就是问题找不到合适的范围嘛!
我试过,在不同材料上面不同的蓝色,各个参数差别很大,无规律可循啊,
有时蓝色和绿色还有重叠的范围,这有该怎么办呢? 看图,下面那个展开的24bit色度图上,你要取一块出来,你琢磨一下边界值怎么确定的?
不同材料上面的蓝色肯定是不一样的,因为叠加了太多的信息,而且蓝的根本就不纯,但是有一点是肯定的,差不多蓝色里面的“RGB”肯定是差不多的,就看你的判定算法怎么写。 把问题转换到频域上来处理
颜色如果连续,频域上就没有突变
如果颜色有改变,在频域上会出现一个裂缝 error_dan 发表于 2014-4-6 21:35
看图,下面那个展开的24bit色度图上,你要取一块出来,你琢磨一下边界值怎么确定的?
不同材料上面的蓝色肯 ...
小妹我已经绞尽脑汁了,可是还是没有找到合适的算法,还望大神能给一个案例模板啊
我现在用matlab,在不同时刻不同材料取了多幅图,去找各种颜色之间的相似和差异,可是没有头绪啊 canspider 发表于 2014-4-6 21:58
把问题转换到频域上来处理
颜色如果连续,频域上就没有突变
如果颜色有改变,在频域上会出现一个裂缝 ...
频域上面是不是涉及到很多精深的算法啊,当初因为很多专业的算法实在看不懂,所以没有尝试频域上面的东西,
还请指条明路啊 canspider 发表于 2014-4-6 21:58
把问题转换到频域上来处理
颜色如果连续,频域上就没有突变
如果颜色有改变,在频域上会出现一个裂缝 ...
感觉好深奥。。 canspider 发表于 2014-4-6 21:58
把问题转换到频域上来处理
颜色如果连续,频域上就没有突变
如果颜色有改变,在频域上会出现一个裂缝 ...
而且如果算法计算量过大,又会影响速度,
很是纠结啊! 一般这种应用都是用dsp
dsp对fft有优化的,开销应该可以接受
就是建模麻烦,不过有matlab,可以大幅度提高叠代时间 canspider 发表于 2014-4-6 22:12
一般这种应用都是用dsp
dsp对fft有优化的,开销应该可以接受
就是建模麻烦,不过有matlab,可以大幅度提高 ...
现在用的stm32f4这个 硬件是不能再改变了,能改的现在只有算法上面,
让程序又快又准!这是要求!{:cry:} {:cry:} f4算不上dsp 顶多就是浮点加速
你可以利用这个特点,把需要多点的计算转换成需要更高精度的计算
这样利用浮点的精度,代替更多的点数 canspider 发表于 2014-4-6 22:20
f4算不上dsp 顶多就是浮点加速
你可以利用这个特点,把需要多点的计算转换成需要更高精度的计算
这样利用浮 ...
恩恩,明白!那像素点的多少上面100*100就足够了吧 我瞎说一个啊,这么些年也没机会玩彩色的这么高级的。
你把每个点的值看成是一个矢量(R,G,B),这样在色度空间坐标系里面等于就是定了一个点,然后呢,每种色度范围也不是二维的而是三维的,等于是色度空间内的一个小多边体,这里你看你需要精确到什么位置,如果我们假定是个矩形体:
那么现在的问题就是看这个点在哪个色度范围所标定的矩形体内,你就判断这个点是你定义的几种颜色中的哪一种,不需要太精确,在这个范围内即认为是一种颜色。
其实你应该庆幸仅仅是RGB色域,要是CMYK,你要做四维的坐标系了。。。
当然,摄像头受外界干扰还是很大的,跟光源神马的都有关系,这里面你可以做一些环境适应性的调整,比方说事实调整亮度等等摄像头的设置,先让系统处于一个可控可观测的稳定环境,然后再来想算法。 error_dan 发表于 2014-4-6 22:44
我瞎说一个啊,这么些年也没机会玩彩色的这么高级的。
你把每个点的值看成是一个矢量(R,G,B),这样在色 ...
恩恩,了解,看样子好深奥,嘿嘿
在网上查了好久关于YUV的颜色对照表,都没有,如果在程序中再将YUV转化为RGB,那就有在浪费时间,
还请大神给一个YUV的颜色对照表啊! 可以先采集样品. 然后分析图片颜色. sxmilovebb2 发表于 2014-4-6 23:22
可以先采集样品. 然后分析图片颜色.
恩恩,只是网上很少YUV颜色对照表,哪种对照颜色知道他的YUV! 本帖最后由 鼻儿眼睛花 于 2014-4-7 02:24 编辑
xuexueaibeibei 发表于 2014-4-6 23:48
恩恩,只是网上很少YUV颜色对照表,哪种对照颜色知道他的YUV!
受不了了,有公式的~你直接生成一个嘛。
yuv<-->rgb
Y''= 0.299*R'' + 0.587*G'' + 0.114*B''
U''= -0.147*R'' - 0.289*G'' + 0.436*B'' = 0.492*(B''- Y'')
V''= 0.615*R'' - 0.515*G'' - 0.100*B'' = 0.877*(R''- Y'')
R'' = Y'' + 1.140*V''
G'' = Y'' - 0.394*U'' - 0.581*V''
B'' = Y'' + 2.032*U''
yCbCr<-->rgb
Y’ = 0.257*R'' + 0.504*G'' + 0.098*B'' + 16
Cb'' = -0.148*R'' - 0.291*G'' + 0.439*B'' + 128
Cr'' = 0.439*R'' - 0.368*G'' - 0.071*B'' + 128
R'' = 1.164*(Y’-16) + 1.596*(Cr''-128)
G'' = 1.164*(Y’-16) - 0.813*(Cr''-128) - 0.392*(Cb''-128)
B'' = 1.164*(Y’-16) + 2.017*(Cb''-128)
很遗憾的告诉你,没有某一个色域满足你所描述的要求,你需要另辟蹊径。
比如,识别不同的颜色使用不同的色域,最后进行宗和评估。 鼻儿眼睛花 发表于 2014-4-7 02:23
受不了了,有公式的~你直接生成一个嘛。
yuvrgb
现在用的是stm32f4已经0.2秒一幅图了,实在不敢在往上面加转化公式了,
还有想请教你是怎么达到50hz的呢??
可否用RGB sensor完成前端处理? Embedtech 发表于 2014-4-7 09:22
可否用RGB sensor完成前端处理?
何解?还请细说 HSI行不行 Fourier00 发表于 2014-4-7 10:40
HSI行不行
各种格式之间都是可以通过计算倒换出来的,rgb,yuv hsi等等
自我感觉yuv如果不能找到合适阈值,那其他的也不会找到啊 xuexueaibeibei 发表于 2014-4-7 11:11
各种格式之间都是可以通过计算倒换出来的,rgb,yuv hsi等等
自我感觉yuv如果不能找到合适阈值,那其他 ...
我们撇开单片机性能不谈,仅仅是说实现功能来说,假设你有很大的内存,很快的运算速度,那么,一种颜色模型估计只能够识别某些颜色,而如果针对不同的颜色使用不同的颜色模型,然后再把这些结果叠加就行了呢?比如我要识别红绿蓝三种颜色,很明显,我可以先使用红色通道来辨别出红色,那么此时绿和蓝是无法分辨的,但是,我再针对绿和蓝在使用绿色通道来分辨,不就可以了嘛,最后,把这个结果综合起来,你就会识别出三种颜色了。 鼻儿眼睛花 发表于 2014-4-7 11:17
我们撇开单片机性能不谈,仅仅是说实现功能来说,假设你有很大的内存,很快的运算速度,那么,一种颜色模 ...
恩恩,明白!这样又该怎么识别边缘呢?
先识别出来蓝色区域,再去识别区域交界,未免有些麻烦吧 xuexueaibeibei 发表于 2014-4-6 23:48
恩恩,只是网上很少YUV颜色对照表,哪种对照颜色知道他的YUV!
以前弄过DM642的.
具体算法没有参与.
搜到个资料, 你参考一下.
http://download.csdn.net/detail/u012299713/6383347 sxmilovebb2 发表于 2014-4-7 11:53
以前弄过DM642的.
具体算法没有参与.
恩恩,谢啦 本帖最后由 kayatsl 于 2014-4-7 19:21 编辑
你的颜色系不好判断, 管你怎么写都写不出来...
给你个关键字去搜索..
HSL 颜色系
找 rgb -> hsl 的算法, 就可以轻易判断颜色了.. xuexueaibeibei 发表于 2014-4-7 11:11
各种格式之间都是可以通过计算倒换出来的,rgb,yuv hsi等等
自我感觉yuv如果不能找到合适阈值,那其他 ...
喔. 刚看完下面的贴...
hsi hsl 其实是一个东西..
你认真看完hsl的定义就知道为啥你用rgb不好判断了 kayatsl 发表于 2014-4-7 19:20
喔. 刚看完下面的贴...
hsi hsl 其实是一个东西..
hsl中指的色度,亮度,饱和度 这三种和YUV格式又有什么区别呢??
y为亮度, uv为色度,饱和度,着实不知道他们之间的区别,和转化,
还请大神指明 在stm32上实现颜色跟踪 YuWan 发表于 2014-4-7 21:38
在stm32上实现颜色跟踪
恩恩,谢谢,我现在需要做的是静态识别就好,不需要颜色跟踪 xuexueaibeibei 发表于 2014-4-7 21:24
hsl中指的色度,亮度,饱和度 这三种和YUV格式又有什么区别呢??
y为亮度, uv为色度,饱和度,着实不知 ...
http://chelong.blog.163.com/blog/static/1355509302011431101442164/
行.. 我把网站也给你找来... xuexueaibeibei 发表于 2014-4-8 09:19
恩恩,谢谢,我现在需要做的是静态识别就好,不需要颜色跟踪
其实这个就是静态啊,完全满足你的需求 kayatsl 发表于 2014-4-8 13:54
http://chelong.blog.163.com/blog/static/1355509302011431101442164/
行.. 我把网站也给你找来......
十分感谢!嘿嘿! YuWan 发表于 2014-4-8 19:42
其实这个就是静态啊,完全满足你的需求
恩恩,行,好的 YuWan 发表于 2014-4-8 19:42
其实这个就是静态啊,完全满足你的需求
也就是我现在如果用HSL的话,只需要控制H这一个变量就好,是吗?? 如果条件允许的话可以加个标定色,一般用白色,然后计算相对值 ainiyifei 发表于 2014-4-9 08:50
如果条件允许的话可以加个标定色,一般用白色,然后计算相对值
标准色有是什么意思呢??什么条件允许的情况下 就是在你拍摄的图片旁边人为放一片白纸啥的 xuexueaibeibei 发表于 2014-4-9 09:09
标准色有是什么意思呢??什么条件允许的情况下
就是在你拍摄的图片旁边人为放一片白纸啥的 xuexueaibeibei 发表于 2014-4-9 09:09
标准色有是什么意思呢??什么条件允许的情况下
放一个白色参考颜色,把所有检测到的颜色跟这个参考颜色做个运算得到相对值,根据相对值进行识别 ainiyifei 发表于 2014-4-9 09:33
放一个白色参考颜色,把所有检测到的颜色跟这个参考颜色做个运算得到相对值,根据相对值进行识别 ...
哦哦,秒懂!谢谢,我试试吧 ainiyifei 发表于 2014-4-9 09:33
放一个白色参考颜色,把所有检测到的颜色跟这个参考颜色做个运算得到相对值,根据相对值进行识别 ...
有没有yuv转化hsl的公式啊,发个链接啊!谢啦 error_dan 发表于 2014-4-6 22:44
我瞎说一个啊,这么些年也没机会玩彩色的这么高级的。
你把每个点的值看成是一个矢量(R,G,B),这样在色 ...
你说的的那个rgb的颜色空间是怎么分布的呢??
刚刚看见一个博客,上面写道:
设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数,
这是什么意思呢?rgb不是从0~255的数字吗?? xuexueaibeibei 发表于 2014-4-9 10:38
有没有yuv转化hsl的公式啊,发个链接啊!谢啦
嘿嘿说实话吧:我没有做过CCD,你做的东西太高级了,能分享一下原理图不?让咱也张张见识{:lol:} 环境光不够 离散性很大
可以考虑 环境LX不够,用额外的补光,统一后 算法会简洁很多 ainiyifei 发表于 2014-4-9 12:11
嘿嘿说实话吧:我没有做过CCD,你做的东西太高级了,能分享一下原理图不?让咱也张张见识...
没什么高级的,就是用stm32f4做的主控,用的saa7111a进行图像处理罢了,
总感觉用stm32做图像处理很不够用,dsp才跟的上,可是上级要求,所以只能用stm32,
至于原理图,因为需要保密,所以还望海涵!{:shutup:} {:shutup:} mcucow 发表于 2014-4-9 12:47
环境光不够 离散性很大
可以考虑 环境LX不够,用额外的补光,统一后 算法会简洁很多 ...
用哪种格式会比较方便呢?
YUV,RGB,HSL哪个比较好呢?? xuexueaibeibei 发表于 2014-4-9 14:14
用哪种格式会比较方便呢?
YUV,RGB,HSL哪个比较好呢??
saa7111a .. 图像出来烂得不行.. 祝你好运..
你只能用HSL,我记得有YUV转HSL的算法
但也可以YUV先转RGB 再转HSL
0-255 取值是因为色深一般用8bit色阶
0-1表示是因为归一化了, 都是一个意思
你要判断颜色, 除了HSL, 其他你别想了..
另外... 提高一下你搜索的能力,别光问...
还有, 做这种转换算法, 管你用dsp还是mcu来做, 没多大区别的.说完收工.. kayatsl 发表于 2014-4-9 16:06
saa7111a .. 图像出来烂得不行.. 祝你好运..
你只能用HSL,我记得有YUV转HSL的算法
恩恩,谢谢你! 要将RGB转换到HSI格式, 其中,H代表颜色,S代表饱和度,I代表亮度。
转成HSI格式后,只处理H分量,就可以了。
可采用分水岭算法,局部聚合。
hendry 发表于 2014-4-9 23:08
要将RGB转换到HSI格式, 其中,H代表颜色,S代表饱和度,I代表亮度。
转成HSI格式后,只处理H分量,就可以 ...
如果视野中出现白色了有该怎么办呢?
我现在视野中有白色,他的H值和蓝色的H值很接近!现在我想需要加上L 没做过颜色处理,但做过项目,
楼主貌似太着急了,做技术要静下心沉住气。
领导总是着急的,要你尽快马上实现,你得顶住压力。 yuzhi2222 发表于 2014-4-10 10:51
没做过颜色处理,但做过项目,
楼主貌似太着急了,做技术要静下心沉住气。
领导总是着急的,要你尽快马上实 ...
恩恩,谢谢啊,我还是新手,所以不用心不着急不行啊 xuexueaibeibei 发表于 2014-4-9 14:13
没什么高级的,就是用stm32f4做的主控,用的saa7111a进行图像处理罢了,
总感觉用stm32做图像处理很不够 ...
好吧理解,能把你用的摄像头型号说一下么?我想玩一下,但不知道买哪个型号的。如果还涉及到保密的话高手给推荐一个不错的吧 ainiyifei 发表于 2014-4-10 16:16
好吧理解,能把你用的摄像头型号说一下么?我想玩一下,但不知道买哪个型号的。如果还涉及到保密的话高手 ...
和这个长相一样!应该是这个!彩色的!
http://item.taobao.com/item.htm?spm=a230r.1.14.268.if5IwH&id=18230631613 xuexueaibeibei 发表于 2014-4-10 16:20
和这个长相一样!应该是这个!彩色的!
http://item.taobao.com/item.htm?spm=a230r.1.14.268.if5IwH&id=1 ...
{:handshake:} 太感谢了,这下又有的玩了嘿嘿,谢谢高手 或是LAB空间也可以,其实绝不能用RGB,而是要用色度和亮度的颜色空间 hendry 发表于 2014-4-9 23:08
要将RGB转换到HSI格式, 其中,H代表颜色,S代表饱和度,I代表亮度。
转成HSI格式后,只处理H分量,就可以 ...
分水岭算法,高级,学习一下 dingliming 发表于 2015-2-16 13:11
或是LAB空间也可以,其实绝不能用RGB,而是要用色度和亮度的颜色空间
请问用hsi和用lab模型哪个更好呢? 新手学习中{:handshake:} 上面也人提到了,关键选一个颜色空间转换的。你先把代码在matlab跑下,然后找到c语言的往stm32里写,找到能用的代码很重要,自己写这些算法代码不太现实。
页:
[1]