[問題]關於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