
opencv-python 패키지의 imwrite() 함수를 이용해 이미지를 파일로 저장해 본다.
아래의 예제 코드 실행을 위해 관련된 이미지가 다음의 경로에 존재함을 전제로 한다.

예제 코드 1
<코드 1>
# python 3.9.6
# opencv-python 4.5.3.56
import cv2 as cv
img = cv.imread('image/view1.jpg')
if img is not None:
cv.imshow('My opencv-python', img)
key = cv.waitKey()
if key == ord('s'):
cv.imwrite('image/myview.jpg', img)
<코드 1>은 image 디렉토리에 있는 view1.jpg 이미지 파일을 imread() 함수를 이용해 불러온 후 imshow() 함수로 화면에 출력한다.
화면에 출력된 이미지 창은 임의 키보드 입력이 발생하면 닫히게 된다.
만약 키보드에서 누른 키가 's' 키라면 화면에 출력된 이미지는 imgae 디렉토리 내 myview.jpg 이름으로 저장된다.

아래와 같이 view1.jpg 이미지 파일을 불러오고 이를 다시 저장하는 과정에서 데이터의 변경이 발생되는 듯하다.

Hex Editor로 두 이미지 파일의 데이터를 비교해 보면 같지 만은 않다.

예제 코드 2
<코드 2>
# python 3.9.6
# opencv-python 4.5.3.56
import cv2 as cv
img = cv.imread('image/view1.jpg')
if img is not None:
cv.imshow('My opencv-python', img)
key = cv.waitKey()
if key == ord('s'):
cv.imwrite('image/myview.jpg', img, (cv.IMWRITE_JPEG_QUALITY, 10))
<코드 2>는 imwrite() 함수의 세번째 파라미터 params의 사용 예이다.
imwrite(filename, img, params=None)
파라미터 params의 값을 (cv.IMWRITE_JPEG_QUALITY, 10)으로 정의한 후 이미지를 저장한 결과는 아래와 같고, 파일 크기는 14KB로 원본 크기 223KB 보다 약 16배 줄어 들었다.


'코딩 > 파이썬 opencv' 카테고리의 다른 글
| opencv-python 005. 카메라, 비디오 영상을 화면에 출력 (0) | 2021.09.26 |
|---|---|
| opencv-python 004. imshow()로 다중 이미지 다중 화면에 출력 (matplotlib 포함) (0) | 2021.09.19 |
| opencv-python 002. imread()로 이미지를 불러오고 imshow()로 화면에 출력 (0) | 2021.09.07 |
| opencv-python 001. opencv-python 패키지 설치 및 예제 프로그램 실행 (0) | 2021.09.05 |