[討論] 辨識雙顏色時用find但是有問題?已回收

看板MATLAB作者 (白開水)時間15年前 (2010/12/15 19:05), 編輯推噓3(309)
留言12則, 3人參與, 最新討論串1/1
我現在要辨識一張影像內有紅藍合在一起的圖,然後我將有紅色數值的存成一張(r) 另外再將有藍色值的存成一張(b),然後我在開一張全黑等大小的圖 (x) 但是影像內有些紅色是單獨存在,而有一些則是紅藍色黏在一起 我需要找出紅藍色黏在一起的圖檔然後變成 1 放入全黑的 (x) 請問用find指令該如何下才可以得到紅藍黏在一起的圖案出來? x(find(b | r)) = 1 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.96.35.72

12/15 23:20, , 1F
紅*藍 為1 就放到x
12/15 23:20, 1F

12/15 23:26, , 2F
find(r.*b==1)
12/15 23:26, 2F

12/16 02:12, , 3F
感謝回答,但是我一相乘就會變成全黑的圖,您可能誤解了
12/16 02:12, 3F

12/16 02:13, , 4F
因為我的紅跟藍不會重疊,原始圖像是紅在藍的隔壁
12/16 02:13, 4F

12/16 02:14, , 5F
然後四周有著單獨的紅和單獨的藍顏色,單獨的我不要
12/16 02:14, 5F

12/16 02:15, , 6F
等於是我把紅藍當作一個圖案,而紅 跟 藍 獨立的小圖案
12/16 02:15, 6F

12/16 02:16, , 7F
我捨棄不要的意思.
12/16 02:16, 7F

12/18 22:24, , 8F
find(b(1:end-1,1:end-1)==1 && r(2:end,2:end)==1)
12/18 22:24, 8F

12/18 22:26, , 9F
這只能處理其中依各方向且相鄰的格子 另依各方向依此類
12/18 22:26, 9F

12/18 22:27, , 10F
推,剛公式打錯
12/18 22:27, 10F

12/18 22:27, , 11F
find(b(:,1:end-1)==1 && r(:,2:end)==1)
12/18 22:27, 11F

12/18 22:28, , 12F
處理邊緣 或對角的 就照樣處理了...
12/18 22:28, 12F
文章代碼(AID): #1D2A3_pj (MATLAB)