반응형
목차
[Python]OpenCV 이미지 파일 용량(화질) 변경해서 저장하기 : JPG
앞서 imwrite 함수 사용에 대해 간단하게 알아보았습니다. (https://scribblinganything.tistory.com/469)
이번에는 imwrite의 파라미터 값을 이용해서 원본의 화질 / 파일 크기를 줄여 보도록 하겠습니다.
JPG, JPEG 파일의 경우 아래와 같은 파라미터 값을 넣습니다. 화질 정도는 0~100을 넣어 100은 원본 그대로 이고 0은 최저 화질로 생각하시면 됩니다.
[cv2.IMWRITE_JPEG_QUALITY, 화질 정도]
예제 코드를 통해 어떻게 동작하는 지 쉽게 알아보겠습니다.
예제 코드>>
import cv2
import os
img_ori = cv2.imread('flowers.png')
cv2.imwrite("flowers_30.jpg", img_ori, [cv2.IMWRITE_JPEG_QUALITY, 30])
cv2.imwrite("flowers_80.jpg", img_ori, [cv2.IMWRITE_JPEG_QUALITY, 80])
file_size = os.path.getsize('flowers.png')
print("Original png file size : " + str(file_size) + " Bytes")
file_size = os.path.getsize('flowers_80.jpg')
print("flowers_80 jpg file size : " + str(file_size) + " Bytes")
file_size = os.path.getsize('flowers_30.jpg')
print("flowers_30 jpg file size : " + str(file_size) + " Bytes")
3번 라인 : flowers라는 이미지 파일을 imread로 읽어 옵니다.
6~7번 라인: 읽어온 image 파일을 30%, 80% quality의 화질로 변경해서 각 각 jpg에 저장합니다.
9~14번 라인 : 원조와 변경된 이미지 파일의 용량을 비교 합니다.
결과>>
Original png file size : 447973 Bytes
flowers_80 jpg file size : 106026 Bytes
flowers_30 jpg file size : 49151 Bytes
[Python]OpenCV 이미지 파일 압축해서 저장하기 : PNG
PNG 이미지 파일은 압축하는 파라미터를 제공 합니다. 압축 정도는 0~9 중에 설정할 수 있고 9는 가장 높은 압축률을 의미 합니다.
파라미터 입력은 아래와 같이 합니다.
[int(cv2.IMWRITE_PNG_COMPRESSION),압축률]
아래 예제를 통해 쉽게 이해할 수 있습니다.
예제 코드>>
import cv2
import os
img_ori = cv2.imread('flowers.png')
cv2.imwrite("flowers_3.png", img_ori, [int(cv2.IMWRITE_PNG_COMPRESSION),3])
cv2.imwrite("flowers_5.png", img_ori, [int(cv2.IMWRITE_PNG_COMPRESSION),5])
file_size = os.path.getsize('flowers.png')
print("Original png file size : " + str(file_size) + " Bytes")
file_size = os.path.getsize('flowers_3.png')
print("flowers_3 png file size : " + str(file_size) + " Bytes")
file_size = os.path.getsize('flowers_5.png')
print("flowers_5 png file size : " + str(file_size) + " Bytes")
6~7번 라인: 이번에는 읽은 image 파일을 png format으로 저장합니다. 그리고 압축률을 3, 5로 각 각 설정합니다.
결과>>
Original png file size : 447973 Bytes
flowers_3 png file size : 410062 Bytes
flowers_5 png file size : 408122 Bytes
압축률 5로 지정한 파일이 압축을 크게 하였습니다.
반응형
'파이썬(Python) > opencv' 카테고리의 다른 글
[Python]OpenCV imread함수 사용법, 옵션(Option), 예제 (0) | 2022.03.15 |
---|---|
[Python]OpenCV waitKey 함수 사용법, 이미지/동영상 파일 열고 닫기 (0) | 2022.02.22 |
[Python]OpenCV 컴퓨터 카메라로 화면 캡쳐해서 저장하기(Camera capture, save) (0) | 2022.02.15 |
[Python]OpenCV 이미지 파일 저장, 파일 크기 확인하기(JPG, PNG, TIFF) (0) | 2022.02.10 |
[Python]OpenCV 란? Visual Studio에서 설치하고 버전 확인 (0) | 2022.02.03 |