2014-01-08 2 views
1

원래 크기가 25kB 인 imresize를 0.5로 사용하여 .png 이미지의 크기를 줄이려고했습니다. 그러나 imwrite를 사용하여 크기 조정 된 이미지를 저장하면 저장된 이미지의 크기는 52kB가됩니다. 다음은 이미지와 명령되어 다음MATLAB imresize 디스크 축소시 이미지 크기가 반으로 줄어 듭니다.

:

다음과 같이 해상도가 지정된 경우도 발생

Original Image

image=imread('image0001.png'); 
B = imresize(image, 0.5); 
imwrite(B,'img0001.png','png'); 

:

B = imresize(image, [400 300]); 

그 이유는 무엇입니까? 0.15로 조정하면 잘 작동하는 것 같습니다.

답변

4

imresize은 바이 큐빅 보간법을 사용하므로 추가 픽셀 값을 생성합니다. 고유 한 픽셀 값 수가 적기 때문에 원본 이미지는 작습니다. 보간 후 숫자가 증가하여 파일 크기가 커집니다.

고유 한 값의 수를 유지하려면 다음을 사용할 수 있습니다. B = imresize(image, 0.5, 'nearest');. 다음과 같이 당신은 그것을 확인할 수 있습니다

image=imread('image0001.png'); 
B = imresize(image, 0.5); 

numel(unique(image)); % gives 18 
numel(unique(B));  % gives 256 

새로운 보간 :

image=imread('image0001.png'); 
B = imresize(image, 0.5, 'nearest'); 

numel(unique(image)); % gives 18  
numel(unique(B)); % gives 18 

지금 B 저장 작은 크기를 생성한다.

관련 문제