我怎么阈值蓝色颜色仿真软件?金宝app
5视图(30天)
显示旧的评论
答案(3)
乔纳森•沙利文
2012年1月6日
也许我可能建议别的东西。我不相信你想基于阈值的一个蓝色的出现在一个像素的绝对数量,而是基于相对数量的蓝色与红色和绿色。
让我们来看看几个不同的颜色:
c1 = [0 0 255);
c2 = (255 0 255);
c3 = [255] 20;
c4 = [0 0 128);
我大胆的猜想c1, c3和c4都足够“蓝色”,而c2肯定不是你寻找的东西。把一个像素的颜色是三维空间的一个向量。你要做的是发现的角度颜色矢量的像素颜色的理想用点积。
例如:
蓝色= [0 0 255);
像素= (10 200);
ang_thres = 25;%度。你应该改变这种以适合您的需求
ang = acosd(点(蓝色/规范(蓝色),像素/规范(像素)));
isBlue =和< = ang_thres;%应用角度阈值
您可能还想应用级阈值(即像素足够黑)。这真的会过滤掉任何微弱的颜色(例如(0 0 1));
例如:
蓝色= [0 0 255);
像素= (10 200);
ang_thres = 25;%度。你应该改变这种以适合您的需求
ang = acosd(点(蓝色/规范(蓝色),像素/规范(像素)));
mag_thres = 64;%你应该改变这种以适合您的需求
杂志=规范(像素);
isBlue =和< = ang_thres &杂志> = mag_thres;%应用这两个阈值
希望这可以帮助!