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;
}
[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 |