2014-02-21 149 views
1

如果我有例如尺寸爲400 x 600的圖像。我知道如何使用下面的代碼以調整其大小,以進行大小80 x 80的:圖像大小調整沒有質量損失?

original_image = imread(my_image); 
original_image_gray = rgb2gray(original_image); 
Image_resized = imresize(original_image_gray, [80 80]); 

但我認爲,imresize將調整圖片的大小與質量的一些損失。那麼如何在不損失質量的情況下調整大小?

+5

調整大小通常意味着某些質量損失。輸入'help imresize'來查看可用的插值選項,然後測試以確定哪一個更適合您 –

回答

5

Image resizing本身將丟失部分圖像信息,即圖像的質量。

你可以做的是選擇通過設置相應的參數適合你的目的,調整大小的方法:

[...] = imresize(...,method) 
        ^^^^^^ 

enter image description here

+0

感謝您的回覆:) – Christina

2

Matlab的存儲圖像作爲像素陣列。將400×600元素矩陣中包含的所有信息存儲在80×80矩陣中是不可能的,因此在調整像素陣列的大小時,質量損失是不可避免的,這正是所忽略的。

如果您希望減少輸出的物理尺寸,您應該查看imgwrite documentation,尤其是在創建png圖像時的XResolution和YResolution參數。

original_image = imread(my_image); 
imwrite(original_image_grey,'image.png','png','ResolutionUnit','cm','XResolution',400) 

上面的代碼將創建一個原始圖像的png,分辨率爲400px/cm,從而產生1cm寬的圖像。 PNG仍然是一個400x600像素的位圖。

+0

jajajaja但無論如何我想感謝您的回答:) – Christina

相關問題