printf("ho_tari\n");

Chapter 10 : 컬러 영상 처리 본문

OpenCV

Chapter 10 : 컬러 영상 처리

호타리 2023. 9. 18. 10:18

<OpenCV_Projects.cpp>

#include <opencv2/opencv.hpp>

extern void show_BGR_channels();
extern void color_split();

int main() 
{
	//show_BGR_channels();
	color_split();
}

 

<show_BGR_channels.cpp>

#pragma once
#include <opencv2/opencv.hpp>

void show_BGR_channels()
{
	cv::Mat src = cv::imread("candies.png", cv::IMREAD_COLOR);
	cv::Mat B(src.size(), CV_8UC1);
	cv::Mat G(src.size(), CV_8UC1);
	cv::Mat R(src.size(), CV_8UC1);


	for (int i = 0; i < src.rows; ++i)
	{
		for (int j = 0; j < src.cols; ++j)
		{
			cv::Vec3b& p1 = src.at<cv::Vec3b>(i, j);
			B.at<uchar>(i, j) = p1[0];	// B
			G.at<uchar>(i, j) = p1[1];	// G
			R.at<uchar>(i, j) = p1[2];	// R
		}
	}

	cv::imshow("SRC", src);
	cv::imshow("BLUE", B);
	cv::imshow("GREEN", G);
	cv::imshow("RED", R);
	cv::waitKey();
	cv::destroyAllWindows();
}

<compile 결과>

 

<color_split.cpp>

#pragma once
#include <opencv2/opencv.hpp>

void color_split()
{
	cv::Mat src = cv::imread("candies.png");
	cv::Mat dst(src.size(), src.type());
	std::vector<cv::Mat> hsv_planes;
	cv::cvtColor(src, dst, cv::COLOR_BGR2HSV);
	cv::split(dst, hsv_planes);
	cv::imshow("SRC", src);
	cv::imshow("DST", dst);
	cv::imshow("H", hsv_planes[0]);
	cv::imshow("S", hsv_planes[1]);
	cv::imshow("V", hsv_planes[2]);
	cv::waitKey();
	cv::destroyAllWindows();
}

<compile 결과>

'OpenCV' 카테고리의 다른 글

Examples  (0) 2023.09.18
Chapter 11 : 이진화와 모폴로지  (0) 2023.09.18
Chapter 9 : 에지 검출과 응용  (0) 2023.09.18
Chapter 8 : 영상의 기하학적 변환  (0) 2023.09.18
Chapter7 : 필터링  (0) 2023.09.14