2014-03-06 22 views
0

所以我正在讀一堆Matlab中的圖像。Matlab - 保存一個imread圖像的32x32中心

我感興趣的圖像部分是最中心的32x32像素(實際圖像中心的一個小方塊)。

一旦你閱讀了圖像,我怎樣才能提取一箇中心或32x32並將其存儲在一個新的圖像變量?

在此先感謝

+0

是您的圖像的2D或3D陣列? –

回答

3

如果您的影像未RGB,這可能是稍微簡單,但爲什麼不覆蓋更復雜的情況:

img = imread('image.png'); 
sz = size(img); 
x = floor(sz(2)/2); 
y = floor(sz(1)/2); 
patch = img(y-15:y+16, x-15:x+16, :); 
+0

噢,不錯。出於某種原因,我認爲它會比這更復雜。謝謝:D出於好奇,如果它們不是RGB,它有什麼不同?感謝發佈。 – Reanimation

+0

@Reanimation如果圖像是二維數組(例如,灰度圖像),則可以刪除最後一行中的'::',因爲在這種情況下不存在第三維 –

+0

另外,在2D情況下我更喜歡使用'[yx] = size(...)'來避免中間向量 - 你最終會得到幾乎相同數量的代碼,所以它是否真的是'更簡單'是值得商榷的。 – Notlikethat