2장. 이미지 입출력과 영상 시각화
정리
- PNG 는 무손실이라 다시 읽은 숫자가 원본과 같고, JPG 는 품질 숫자가 낮을수록 숫자를 더 버려 파일이 작아집니다. 상품 그림을 품질 95 로 저장하면 10.3KB(평균 차이 1.780), 품질 5 로 저장하면 1.8KB(평균 차이 11.449)였습니다.
cv2.imread의 읽기 모드는IMREAD_COLOR(기본값, 세 채널),IMREAD_GRAYSCALE(한 채널),IMREAD_UNCHANGED(저장된 그대로, 투명 png 는 네 채널) 셋입니다.- 알파 채널은 칸마다 얼마나 비치는지를 0(투명)~255(불투명)로 적은 네 번째 숫자입니다.
- 배열의 메모리 크기는 세로 × 가로 × 채널 × 1바이트이고,
nbytes로 바로 확인합니다. 파일 크기는 압축 때문에 이보다 작습니다. - 그림 함수는 (x, y), 배열은 [행, 열] 순서입니다. 잘라 내기는
img[y 시작:y 끝, x 시작:x 끝]한 줄이고 끝 번호는 들어가지 않습니다. cv2.imwrite는 확장자로 형식을 정하고 성공 여부를 True/False 로 돌려줍니다. 옵션은[이름, 값]목록으로 줍니다.- Matplotlib 은 figure(도화지)와 axes(칸)로 짜여 있습니다.
plt.subplots와axes.flat으로 여러 장을 놓고,interpolation="nearest"로 확대해 보고,fig.savefig로 보고서 그림을 남깁니다.