所以我有一個灰度圖像作爲二進制文件。在圖像中出現紅色後,我嘗試創建一系列「if」循環,以便用一個值替換一系列值,並保持矩陣的其餘部分不變。識別和替換值matlab
我用這個代碼
if myimage < 20
myimage = 0;
else if 20 < myimage <40
myimage = 20;
else if 40 < myimage < 60
myimage = 40;
else if 60<myimage<80
myimage = 60;
end
end
end
end
,但由於某種原因,無法加載圖像。經過一些調試後,我發現該文件在「else if 20 ...」行之後變成了1 x 1矩陣,其值爲「20」。任何人都可以幫我弄清楚爲什麼會發生這種情況?謝謝。
變量myimage是一個值的矩陣,你在這裏做的是把它當作一個標量。你的比較表達式和賦值語句並沒有做你期望他們做的事情。相反,您想要查找某些元素的索引,並僅更改它們。你應該閱讀更多關於[MATLAB中的矩陣索引](http://www.mathworks.com/help/matlab/math/matrix-indexing.html)並從那裏開始工作。 –
因此生病需要遍歷圖像,然後做一些像myimage(X,Y)<20? – user2475404
是的,這是一個好的開始。對於你的情況,想想這樣的事情:'20 * floor(myimage/20);',它可以一次處理整個圖像。 – Peter