嗨我已經加載了一個圖像,從而創建一個3D矩陣。如何在3D矩陣中使用數組作爲索引?
img1 = imread('bluebird.jpg')
我知道,對於一個載體,我可以創建基於邏輯測試的另一種載體和使用等載體作爲指數是這樣的:
speeds = [20 77 55 90 87 65 67 72 55]
invalid = speed > 70
speeds(invalid) = 0
這將設置所有無效的速度speeds
到0.
但我還沒有想出如何用3D矩陣(圖像)做到這一點。
我想要做的是爲藍色分量至少比三個分量(灰度)的平均值高出20%的每個像素交換顏色分量1(紅色)和3(藍色)。
我已經試過這樣:
img1 = imread('bluebird.jpg');
img2 = img1;
m = mean(img1, 3);
blues = img1(:,:,3) > 1.2*m;
img2(blues, [3,2,1]) = img1(blues, [1,2,3]);
但沒有奏效。變量藍調成功獲得我想要的像素(具有顯性藍色分量的像素),但在最後一行中出現非法語法。
是否有可能做我想要的東西?如果是這樣,怎麼樣?
在此先感謝。
第一個陳述其實並非如此。你不能合併邏輯*矩陣*和基於整數的索引。 – Suever
@Suever謝謝澄清。並且'基於整數'也是正確的術語... – zeeMonkeez