비디오 코덱

컬러를 흑백으로 변환하기 : cvtColor()

케케_ 2024. 11. 27. 13:41

OpenCV에서 이미지 연산 처리 시, 흑백 이미지로 처리가 효율적 => 이 부분은 다음 글에서 다룸!

 

cvtColor(input Array, output Array, flag, channel)

: 이미지의 색상 공간 변환

: RGB 순서가 아닌 BGR 순서임 (이 순서를 바꾸는 flag도 존재)

cv::Mat color_img = cv::imread("../test.png");
cv::Mat grayscale_img;

cv::cvtColor(color_img, grayscale_img, cv::COLOR_BGR2GRAY);
  • input Array : 변환할 원본 이미지, Mat 형식으로 입력
  • output Array : 변환된 결과 이미지를 저장할 출력, Mat 형식으로 반환
    • input과 동일한 크기
  • flag : 변환에 사용할 색상 공간 코드
    • cv::COLOR_BGR2GRAY
  • channel : 출력 이미지의 채널 수
    • 0일 경우 자동으로 설정
    • 변환 코드에 짜라 다른 값으로 설정 가능
      • 위의 COLOR_BGR2GRAY은 채널 1
      • 예제에서 1로 설정 안한 이유 ==> 자동 채널 결정
        • OpenCV가 cv::COLOR_BGR2GRAY 변환 코드에 따라 자동으로 출력 채널 수를 결정
      • 필요한 경우 
        • 내가 위의 자동 설정된 채널이 아닌 다른 채널을 지정하고 싶은 경우
        • 명시적으로 확인하고 싶은 경우

 

예제 코드

#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    cv::Mat color_img = cv::imread("../test.png");
    cv::Mat grayscale_img;

    cv::cvtColor(color_img, grayscale_img, cv::COLOR_BGR2GRAY);
	cv::imshow("color_img", color_img);
	cv::imshow("grayscale_img", grayscale_img);
	cv::waitKey(0);
    return 0;
}

 

 

 

 

 

 


 

 

https://diyver.tistory.com/53

 

[C++ opencv] 컬러이미지 흑백으로 변환 , RGB to Grayscale

본문 목표 OpenCV에서 이미지를 연산처리할 때, 흑백 이미지로 처리하는 것이 좋다. 컬러 이미지를 흑백 이미지로 변환해주는 방법에 대해서 알아본다. 키워드 : cvtColor( ) 알아볼 함수 원형 - 이미

diyver.tistory.com

 

'비디오 코덱' 카테고리의 다른 글

흑백 변환 : cvtColor() vs imread()  (0) 2024.11.27
흑백 이미지 처리의 효율  (1) 2024.11.27
imread(), imshow() 사용해보기  (0) 2024.11.27
OpenCV란  (0) 2024.11.27
Cmake에 대해  (1) 2024.11.25