2012-03-04 89 views
6

我正在嘗試查找已加載到matlab中的圖像的大小。圖像的Matlab大小

image=imread('text.jpg'); 
[x,y]=size(image); 

這將返回錯誤:

Indexing cannot yield multiple results.

是否imread不能閱讀圖像到一個二維數組,因此它應該有兩個尺寸?

+0

您的代碼對我來說確實很好。您是否嘗試過使用imfinfo來查看文件中的內容? – 2012-03-04 13:12:57

回答

9

是否有可能在此代碼之前定義了一個名爲size的變量?

+0

是的,就是這樣!對不起,沒有發現明顯的錯誤!謝謝。 – Joseph 2012-03-04 13:19:02

3

您必須使用[height, width, colour_planes] = size(image);,因爲圖像有3個維度。第三個維度是色彩平面的數量。如果你不需要這個值,你可以用~來替代它。

+0

什麼是第三維? – scord 2013-09-19 18:51:50

+0

顏色。第一維是紅色值,第二維是綠色,第三維是藍色 – Alexander 2016-02-04 19:57:30

-3

你可以試試這個:

image=imread('text.jpg'); 
[x y]=size(image); 
+2

這與問題中的代碼有何不同? – Daniel 2016-02-21 13:05:09

1

只要使用這個whos,然後按回車。

image=imread('text.jpg'); 
whos 
13

對於那些希望找到在Matlab的圖像的大小,不使用:

[height, width] = size(image); 

這是因爲imread存儲的RGB值分別(用於彩色圖像),產生了三維矩陣。

例如,如果您加載500p高200p寬的彩色圖像,則會產生500x200x3的矩陣。

以這種方式調用size()將導致維度被「捲起」,並將報告高度爲500,但寬度爲600(200 * 3)。

相反,使用:

[height, width, dim] = size(image); 

將返回500正確的值,200,3

1

[X,Y,Z] =尺寸(圖像); 是正確的。 x和y將給出圖像的長度和寬度,z指定顏色。

數字圖像由RGB組成,因此z將爲3.