作者qvm8741 (星悠)
看板MATLAB
標題[問題]關於RGB 設成if條件
時間Sat Jun 30 06:43:47 2018
最近在做一個自動選擇程式
我給定一個座標
想從我的圖上抓出圖上座標點的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;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.71.4.54
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1530312230.A.B13.html
1F:推 LiamIssac: error message要秀出來阿 06/30 07:56
2F:→ qvm8741: 不太懂 是少了else的意思嗎 可以仔細說一下嗎 謝謝 06/30 08:38
3F:→ sppmg: (R==0 & G==0 & B==238) ,並且 if 沒「;」 06/30 14:15
4F:→ sppmg: 上面回傳符合logical array,如果要逐一處理就 for n=1:XX 06/30 14:16
5F:→ sppmg: if (R(n)==0 && ....) 06/30 14:17
6F:→ qvm8741: 謝謝回答 R,G,B取出的變數是unit8所以有轉double才能相等 06/30 14:45
7F:→ qvm8741: 我想要R,G,B都等於我指定的值才執行 06/30 14:49
8F:→ sppmg: 你有試過嗎?首先matlab會幫你轉。再來0對uint和double一樣 06/30 18:03
9F:→ sppmg: 擔心轉錯就 R == uint8(238) 06/30 18:07
10F:→ qvm8741: 有喔 如果只有double(R)=0; 程式可以執行 06/30 19:51
11F:→ qvm8741: 但是double(R)=0&double(G)=0&double(B);三個同時成立就 06/30 19:52
12F:→ qvm8741: 沒辦法執行會在G的地方出現 06/30 19:55
13F:→ qvm8741: Unbalanced or unexpected parenthesis or bracket. 06/30 19:55
14F:→ sppmg: .... 你有沒有仔細想過錯誤訊息是什麼意思。 06/30 23:33
15F:→ sppmg: 現代化的程式語言,比較數值幾乎都是用 == 非 = 。 06/30 23:36
16F:→ sppmg: 你 double(R)=0 實際上是產生了一個名為 double 的 array 06/30 23:36
17F:→ sppmg: whos 一下就知道了。 06/30 23:37
18F:→ qvm8741: 謝謝你點醒 我把double(R)==0 改成R==0 就解決了 07/01 01:53