728x90

이미지를 다루는 가장 기본적인 작업은 이미지 읽기(Read), 보여주기(Display), 저장하기(Write)이며, 이는 모든 비전 프로젝트의 출발점입니다. OpenCV는 이러한 기능을 단 몇 줄의 코드로 수행할 수 있도록 다양한 함수와 인터페이스를 제공하며, 이 함수들만 이해하면 대부분의 이미지 처리 작업에 쉽게 접근할 수 있습니다.

 

함수 설명

1) imread() – OpenCV에서 이미지를 읽는 대표적인 함수

  • Python: cv2.imread("경로", 옵션)
  • C++: cv::imread("경로", 옵션)

(옵션값)

  • cv2.IMREAD_COLOR 컬러 이미지 읽기(RGB → BGR)
  • cv2.IMREAD_GRAYSCALE 그레이스케일 읽기
  • cv2.IMREAD_UNCHANGED 알파 채널 포함 이미지 읽기

2) imshow() – imshow()는 읽은 이미지를 화면에 띄워주는 함수

  • 첫 번째 인자: 윈도우 이름, 두 번째 인자: 출력할 이미지
  • 윈도우가 바로 닫히지 않도록 waitKey()와 함께 사용

3) imwrite() - 처리된 이미지를 파일로 저장할 때 사용하는 함수

  • Python: cv2.imwrite("파일명", 이미지)
  • C++: cv::imwrite("파일명", 이미지)
  • (지원 확장자) PNG, JPG, BMP 등 대부분의 일반 이미지 포맷.

 

Python 예제

import cv2
# 1. 이미지 읽기
img = cv2.imread("input.jpg", cv2.IMREAD_COLOR)
# 2. 이미지 화면으로 보여주기
cv2.imshow("Input Image", img)
cv2.waitKey(0)  # 키 입력 대기
cv2.destroyAllWindows()
# 3. 이미지 저장하기
cv2.imwrite("output.jpg", img)

 

import cv2
# 그레이스케일로 이미지 읽기
gray = cv2.imread("input.jpg", cv2.IMREAD_GRAYSCALE)
# 화면 출력
cv2.imshow("Gray Image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 이미지 저장
cv2.imwrite("output_gray.jpg", gray)

 

C/C++ 예제

#include <opencv2/opencv.hpp>
using namespace cv;

int main() 
{
    // 1. 이미지 읽기
    Mat img = imread("input.jpg", IMREAD_COLOR);
    if (img.empty()) {
        printf("Image load failed!\n");
        return -1;
    }
    // 2. 이미지 화면에 보여주기
    imshow("Input Image", img);
    waitKey(0);
    // 3. 이미지 저장하기
    imwrite("output.jpg", img);
    return 0;
}

 

#include <opencv2/opencv.hpp>
using namespace cv;

int main() 
{
    // 그레이스케일로 읽기
    Mat gray = imread("input.jpg", IMREAD_GRAYSCALE);
    if (gray.empty()) {
        printf("Image load failed!\n");
        return -1;
    }
    // 화면 출력
    imshow("Gray Image", gray);
    waitKey(0);
    // 이미지 저장
    imwrite("output_gray.jpg", gray);
    return 0;
}
728x90

+ Recent posts