2019-07-03 12:13:58

imwrite는 이미지 데이터를 지정된 파일에 써주는 함수다. 이때 파일의 형식은 bmp, gif, jpeg, png 등 중에서 선택할 수 있다. 나는 이미지 데이터를 손실 압축의 한 종류인 jpeg 형식의 파일에 써줄 것인데, 다양한 품질을 갖도록 할 것이다. 다양한 품질을 갖는다는 의미는 압축률을 다양하게 해주겠다는 뜻이다. 결과적으로 이미지 파일마다 픽셀 당 비트 수(bbp)가 다를 것이다. 

 

한 이미지를 읽은 다음에 품질 점수 75, 50, 25, 10, 1의 jpeg 이미지를 써줬다. 코드는 다음과 같다. 

 

clc, clear, close all

img = imread('DSC09354.jpg');

imwrite(img, 'Q75.jpg', 'Quality', 75);
imwrite(img, 'Q50.jpg', 'Quality', 50);
imwrite(img, 'Q25.jpg', 'Quality', 25);
imwrite(img, 'Q10.jpg', 'Quality', 10);
imwrite(img, 'Q1.jpg', 'Quality', 1);

코드에서 알 수 있듯이 이미지를 읽을 때는 imread 함수를 사용하고, 이미지를 쓸 때는 imwrite 함수를 사용한다. 

 

자, 그럼 원본 이미지와 품질 점수 75, 50, 25, 10, 1인 jpeg 이미지를 확인해보자. 또한 파일의 크기도 함께 명시했다. 

 

 

품질점수를 낮게 설정해줄수록 압축이 더 많이 됨을 확인할 수 있다.