[问题]关于RGB 设成if条件

楼主: qvm8741 (星悠)   2018-06-30 06:43:47
最近在做一个自动选择程式
我给定一个座标
想从我的图上抓出图上座标点的RGB
将RGB转成double如果RGB跟我给的数字相符就执行的if条件
但是程式似乎看不懂我给的条件 拜托高手相助
load pumpSelectionTable.mat;
X=1729;
Y=378
R=pumpSelectionTable(Y,X,1);
G=pumpSelectionTable(Y,X,2);
B=pumpSelectionTable(Y,X,3);
if double[R]=0&double[G]=0&double[B]=238;
作者: LiamIssac (Madchester)   2018-06-30 07:56:00
error message要秀出来阿
楼主: qvm8741 (星悠)   2018-06-30 08:38:00
不太懂 是少了else的意思吗 可以仔细说一下吗 谢谢
作者: sppmg (sppmg)   2018-06-30 14:15:00
(R==0 & G==0 & B==238) ,并且 if 没“;”上面回传符合logical array,如果要逐一处理就 for n=1:XXif (R(n)==0 && ....)
楼主: qvm8741 (星悠)   2018-06-30 14:45:00
谢谢回答 R,G,B取出的变量是unit8所以有转double才能相等我想要R,G,B都等于我指定的值才执行
作者: sppmg (sppmg)   2018-06-30 18:03:00
你有试过吗?首先matlab会帮你转。再来0对uint和double一样担心转错就 R == uint8(238)
楼主: qvm8741 (星悠)   2018-06-30 19:51:00
有喔 如果只有double(R)=0; 程式可以执行但是double(R)=0&double(G)=0&double(B);三个同时成立就没办法执行会在G的地方出现Unbalanced or unexpected parenthesis or bracket.
作者: sppmg (sppmg)   2018-06-30 23:33:00
.... 你有没有仔细想过错误讯息是什么意思。现代化的程式语言,比较数值几乎都是用 == 非 = 。你 double(R)=0 实际上是产生了一个名为 double 的 arraywhos 一下就知道了。
楼主: qvm8741 (星悠)   2018-07-01 01:53:00
谢谢你点醒 我把double(R)==0 改成R==0 就解决了

Links booklink

Contact Us: admin [ a t ] ucptt.com