簡體   English   中英

Matlab-索引超出矩陣尺寸錯誤

[英]Matlab - Index exceeds matrix dimensions error

我正在嘗試將圖像分成3個通道

img = imread('canoe.tif'); % Read image
red = img(:,:,1); % Red channel
green = img(:,:,2); % Green channel
blue = img(:,:,3); % Blue channel
a = zeros(size(img, 1), size(img, 2));
just_red = cat(3, red, a, a);
just_green = cat(3, a, green, a);
just_blue = cat(3, a, a, blue);
back_to_original_img = cat(3, red, green, blue);
figure, imshow(img), title('Original image')
figure, imshow(just_red), title('Red channel')
figure, imshow(just_green), title('Green channel')
figure, imshow(just_blue), title('Blue channel')
figure, imshow(back_to_original_img), title('Back to original image')

錯誤出現在第三行。 通常這種異常會發生在數組之類的東西上,對嗎? 為什么會在這里發生? 為什么第二行沒有得到錯誤?

可能是由於您正在讀取的TIFF圖像是以灰度格式或索引顏色編碼的事實。 在這些情況下,圖像像素數據僅包含一個通道:用於灰度格式的灰度梯度和用於索引顏色格式的調色板索引。 有關后者的更多信息,請閱讀以下問題: 用顏色顯示單通道png ,這也提供了一種解決方案。

這就是為什么在嘗試訪問圖像的第二個通道時收到該錯誤的原因...,因為它不存在。 打開圖像陣列並進行驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM