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로 더욱 다양한 이미지 처리 작업을 수행할 수 있습니다.
'Python OpenCV' 카테고리의 다른 글
OpenCV 이미지 크기 조절, 회전 및 이동 (cv2.resize(), cv2.rotate(), cv2.warpAffine()) (0) | 2025.02.27 |
---|---|
OpenCV 이미지 색상 변환 (cv2.cvtColor()) (0) | 2025.02.26 |
OpenCV로 동영상 불러오기 및 재생 (cv2.VideoCapture()) (0) | 2025.02.25 |
OpenCV 설치 및 기본 사용법 (0) | 2025.02.23 |
OpenCV 개요 및 활용 분야 (0) | 2025.02.22 |