Python OpenCV

OpenCV로 이미지 불러오기 및 저장하기 (cv2.imread(), cv2.imwrite())

PyExplorer 2025. 2. 24. 12:37
728x90

OpenCV로 이미지 불러오기 및 저장하기 (cv2.imread(), cv2.imwrite())

1. 개요

OpenCV는 컴퓨터 비전 및 영상 처리를 위한 강력한 라이브러리로, 다양한 이미지 및 동영상 처리 기능을 제공합니다. OpenCV를 사용하면 간단한 코드로 이미지를 불러오고 저장할 수 있으며, cv2.imread()cv2.imwrite() 함수는 이러한 작업을 수행하는 핵심 함수입니다.

이번 포스팅에서는 OpenCV의 cv2.imread()cv2.imwrite()를 활용하여 이미지를 불러오고 저장하는 방법을 살펴보겠습니다.

2. OpenCV 설치 확인

먼저, OpenCV가 설치되어 있는지 확인해야 합니다. 설치되지 않았다면 아래의 명령어를 실행하여 OpenCV를 설치할 수 있습니다.

pip install opencv-python

설치가 완료된 후, Python 환경에서 OpenCV를 정상적으로 불러올 수 있는지 확인합니다.

import cv2
print(cv2.__version__)

OpenCV 버전이 정상적으로 출력되면 라이브러리가 제대로 설치된 것입니다.

3. cv2.imread()로 이미지 불러오기

OpenCV에서 이미지를 불러오는 함수는 cv2.imread()입니다. 이 함수는 지정된 경로의 이미지를 로드하여 NumPy 배열로 반환합니다.

3.1 cv2.imread()의 기본 사용법

import cv2

# 이미지 불러오기
image = cv2.imread("sample.jpg")

# 이미지가 정상적으로 불러와졌는지 확인
if image is None:
    print("이미지를 불러오지 못했습니다.")
else:
    print("이미지를 성공적으로 불러왔습니다.")

위 코드에서 cv2.imread("sample.jpg")는 현재 작업 디렉토리에 있는 sample.jpg 파일을 불러옵니다.
파일이 정상적으로 로드되지 않으면 None이 반환되므로, 이를 확인하는 과정이 필요합니다.

3.2 cv2.imread()의 두 번째 인수: 로드 옵션

cv2.imread() 함수는 두 번째 인수로 로드 옵션을 지정할 수 있습니다.

image_color = cv2.imread("sample.jpg", cv2.IMREAD_COLOR)      # 컬러 이미지 (기본값)
image_grayscale = cv2.imread("sample.jpg", cv2.IMREAD_GRAYSCALE)  # 흑백 이미지
image_unchanged = cv2.imread("sample.jpg", cv2.IMREAD_UNCHANGED)  # 원본 그대로
  • cv2.IMREAD_COLOR (기본값): 이미지를 컬러(BGR)로 불러옵니다.
  • cv2.IMREAD_GRAYSCALE: 이미지를 흑백(Grayscale)으로 불러옵니다.
  • cv2.IMREAD_UNCHANGED: 알파 채널까지 포함하여 원본 그대로 불러옵니다.

4. cv2.imshow()로 이미지 표시하기

불러온 이미지를 화면에 표시하려면 cv2.imshow() 함수를 사용합니다.

import cv2

# 이미지 불러오기
image = cv2.imread("sample.jpg")

# 이미지 표시
cv2.imshow("Loaded Image", image)
cv2.waitKey(0)  # 키 입력을 대기
cv2.destroyAllWindows()  # 창 닫기
  • cv2.imshow("창 이름", image): 특정 창에서 이미지를 표시합니다.
  • cv2.waitKey(0): 키 입력을 받을 때까지 대기합니다.
  • cv2.destroyAllWindows(): 모든 창을 닫습니다.

5. cv2.imwrite()로 이미지 저장하기

불러온 이미지를 저장하려면 cv2.imwrite() 함수를 사용합니다.

5.1 기본 사용법

import cv2

# 이미지 불러오기
image = cv2.imread("sample.jpg")

# 이미지 저장하기
cv2.imwrite("saved_image.jpg", image)

print("이미지가 성공적으로 저장되었습니다.")

위 코드에서는 cv2.imwrite("saved_image.jpg", image)를 사용하여 이미지를 저장합니다. 파일 이름과 확장자를 원하는 형식으로 변경할 수 있습니다.

5.2 이미지 품질 설정 (JPEG 및 PNG)

이미지를 저장할 때 품질을 조정할 수도 있습니다.

JPEG 품질 조정

cv2.imwrite("saved_image.jpg", image, [cv2.IMWRITE_JPEG_QUALITY, 90])  # 0~100 사이 값 (기본: 95)

PNG 압축 수준 조정

cv2.imwrite("saved_image.png", image, [cv2.IMWRITE_PNG_COMPRESSION, 9])  # 0~9 (기본: 3)
  • cv2.IMWRITE_JPEG_QUALITY: JPEG 저장 시 품질을 조정합니다 (0~100, 기본값 95).
  • cv2.IMWRITE_PNG_COMPRESSION: PNG 저장 시 압축 수준을 조정합니다 (0~9, 기본값 3).

6. 예제 코드: 이미지 불러오고 저장하기

다음은 OpenCV를 사용하여 이미지를 불러오고, 흑백으로 변환한 후, 새로운 파일로 저장하는 예제입니다.

import cv2

# 이미지 불러오기
image = cv2.imread("sample.jpg")
if image is None:
    print("이미지를 불러오지 못했습니다.")
    exit()

# 이미지를 흑백으로 변환
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 변환된 이미지 저장
cv2.imwrite("gray_image.jpg", gray_image)

# 변환된 이미지 출력
cv2.imshow("Grayscale Image", gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위 코드는 이미지를 불러와서 흑백으로 변환한 후 gray_image.jpg라는 파일로 저장하고, 화면에 출력하는 과정까지 포함되어 있습니다.

7. 결론

이번 포스팅에서는 OpenCV의 cv2.imread()cv2.imwrite()를 사용하여 이미지를 불러오고 저장하는 방법을 알아보았습니다.

  • cv2.imread(): 이미지를 불러오는 함수로, 다양한 옵션을 지원합니다.
  • cv2.imwrite(): 이미지를 저장하는 함수로, 저장 품질을 조정할 수 있습니다.
  • cv2.imshow(): 이미지를 화면에 출력할 수 있습니다.

이를 활용하면 OpenCV로 더욱 다양한 이미지 처리 작업을 수행할 수 있습니다.

728x90