2015-10-16 86 views
0

我想從圖像中計算純藍色並將其與原始藍色通道進行比較。然後我必須解釋使用純色而不是RGB通道的優點。使用CAT的matlab錯誤,矩陣的連接尺寸不一致

這是我的代碼:

>> RGB = double(imread('players.jpeg'))/255; 
>> imagesc(RGB); 

enter image description here

>> red = RGB(:,:,1); 
>> green = RGB(:,:,2); 
>> blue = RGB(:,:,3); 
>> pure_BLUE = blue ./ (red+green+blue); 
>> imagesc(pure_BLUE); 

enter image description here

但是當我用這個:

>> imagesc(cat(3,pure_BLUE,zeros(240,320),zeros(240,320))); 

我得到的FO llowing錯誤:

Error using cat Dimensions of matrices being concatenated are not consistent.

不太清楚這裏出了問題,我怎樣才能解決這個!!!!

+0

這是因爲,即使你提取2D矩陣從矩陣,MATLAB仍然看到矩陣紅色,綠色和藍色它作爲Hight x寬x 1矩陣。嘗試初始化您的矩陣第一個2D矩陣提取之前 – BillBokeey

回答

2

看起來你試圖連接的兩個數組與圖像相比是錯誤的大小。圖像似乎是176x241,所以你應該嘗試:

imagesc(cat(3,pure_BLUE,zeros(176,241),zeros(176,241))); 

或更一般的方法是使用數組本身的大小:

imagesc(cat(3,pure_BLUE,zeros([size(pure_BLUE) 2]))); 
+0

tahnkü,它現在工作正常,問題是,而不是使用零(240,320),我應該使用零(176,241),然後它很好地工作,謝謝。 –