본문 바로가기

OpenCV-Python

OpenCV Python 이미지 저장, 불러오기

opencv에서 가장 기본인 이미지 불러오기를 다루겠습니다.

 

이미지 불러오기 : cv2.imread(filename [, flags]) [] : 생략 가능

이미지 출력 : cv2.imshow(const String & winname, InputArray mat)

: cv2.imshow("출력 창 이름", 출력할 이미지)

이미지 저장하기  : cv2.imwrite(filename, image)

 

import cv2
img = cv2.imread("imgs/Lenna.png") # 이미지 불러오기

cv2.imshow("Lenna", img) # 불러온 이미지를 Lenna라는 이름으로 창 표시.

cv2.waitKey() # 키보드 입력이 들어올 때까지 창을 유지
cv2.destroyAllWindows() # 모든 윈도우 창을 제거

 

출력 결과

창 이름이 Lenna라고 적혀있는 걸 확인할 수 있습니다.


이미지 불러오기 : cv2.imread(filename [, flags]) [] : 생략 가능

img = cv2.imread("imgs/Lenna.png")

 

filename : 파일의 상대 경로, 절대 경로를 적어줍니다.

저의 경우 실행하는 파이썬 파일이 들어있는 곳에 imgs라는 폴더를 만들어 이미지를 넣었습니다.

 

만약 test.py가 있는 폴더에 추가적인 폴더를 만들지 않고 test.py란 파일과 이미지 파일을 같은 폴더에 둔다면

img = cv2.imread("Lenna.png")

 

[, flags] : 처음에  이미지를 가져오는 방식입니다. 

배경이 투명인 이미지(채널이 4개)를 불러올 경우엔 UNCHANGED를 사용(나중에 따로 다루겠습니다.) 

이외엔 cvtColor라는 GRAYSCLAE, COLOR 등으로 변환하는 함수가 따로 있어서 안 적으셔도 됩니다.

  • cv2.IMREAD_UNCHANGED : 이미지 그대로 출력(원본)
  • cv2.IMREAD_GRAYSCALE : 1 채널, 회색조 이미지로 변환
  • cv2.IMREAD_COLOR : 3채널, BGR 이미지로 변환
  • cv2.IMREAD_ANYDEPTH : 이미지에 따라 16,32bit 또는 8비트로 변환
  • cv2.IMREAD_ANYCOLOR : 이미지 모든 색상 형식으로 읽기
  • cv2.IMREAD_REDUCED_GRAYSCALE_2 : GRAYSCALE + 이미지 크기 1/2
  • cv2.IMREAD_REDUCED_COLOR_2 : COLOR + 이미지 크기 1/2
  • cv2.IMREAD_REDUCED_GRAYSCALE_4 : GRAYSCALE + 이미지 크기 1/4
  • cv2.IMREAD_REDUCED_COLOR_4 : COLOR + 이미지 크기 1/4
  • cv2.IMREAD_REDUCED_GRAYSCALE_8 : GRAYSCALE + 이미지 크기 1/8
  • cv2.IMREAD_REDUCED_COLOR_8 : COLOR + 이미지 크기 1/8

이미지 저장하기  : cv2.imwrite(filename, image)

GRAYSCALE로 변환한 이미지를 저장해보겠습니다.

 

import cv2
img = cv2.imread("imgs/Lenna.png",cv2.IMREAD) # imgs 폴더에 Lenna.png 이미지 불러오기

cv2.imshow("Lenna", img) # 불러온 이미지를 Lenna라는 이름으로 창 표시.
cv2.imwrite("imgs/Lenna_GrayScale.png", img) # imgs 폴더에 Lenna_GrayScale.png 이미지 저장

cv2.waitKey() # 키보드 입력이 들어올 때까지 창을 유지
cv2.destroyAllWindows() # 모든 윈도우 창을 제거

 


공부하시면서 모르겠거나 자세히 알고싶은 opencv 함수는 밑에 링크를 들어가셔서 검색해 보시는 것을 추천드립니다.

https://docs.opencv.org/master/

 

OpenCV: OpenCV modules

OpenCV  4.5.3-dev Open Source Computer Vision

docs.opencv.org