作者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/cn.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