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 이미지를 확인해보자. 또한 파일의 크기도 함께 명시했다.
품질점수를 낮게 설정해줄수록 압축이 더 많이 됨을 확인할 수 있다.
'Dev > matlab' 카테고리의 다른 글
[MATLAB] 적분하기, integral 함수 (7) | 2019.10.17 |
---|---|
[MATLAB] 방정식 해 구하기, solve 함수 (6) | 2019.10.17 |
[MATLAB] identity matrix 생성하기, eye 함수 (0) | 2019.10.09 |
[MATLAB] 연립방정식 해 구하기, mldivide 함수 (0) | 2019.10.09 |
[MATLAB] 표준화된 z-점수 산출하기, zscore 함수 (0) | 2019.06.14 |
[MATLAB] 야구 게임, 0과 9사이 숫자 3개 맞추기 (4) | 2019.04.26 |
[MATLAB] 문자열에서 필요한 데이터만 추출하기, sscanf 함수 (2) | 2019.04.18 |
[MATLAB] 숫자형을 문자형으로, 문자형을 숫자형으로 변환하기, num2str 함수와 str2num 함수 (2) | 2019.04.16 |