OpenCV2:幼兒園篇 第六章 圖像轉換

一.簡介

 

二.例子

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

int main()
{

	// 圖像源讀取及判斷
	cv::Mat srcImage = cv::imread("a.jpg");
	if (!srcImage.data)
		return -1;
	cv::imshow("srcImage", srcImage);
	cv::Mat image_hsv, image_H, image_S, image_V, image_col;
	 
	// HSV顏色空間轉換
	cv::cvtColor(srcImage, image_hsv, CV_BGR2HSV);
	cv::imshow("image_hsv", image_hsv);

	// YCrCb顏色空間轉換
	cv::cvtColor(srcImage, image_col, CV_BGR2YCrCb);
	cv::imshow("image_YCrCb", image_col);

	// HLS顏色空間轉換
	cv::cvtColor(srcImage, image_col, CV_BGR2HLS);
	cv::imshow("image_HLS", image_hsv);

	// Lab顏色空間轉換
	cv::cvtColor(srcImage, image_col, CV_BGR2Lab);
	cv::imshow("image_Lab", image_col);

	// 分離HSV各個通道
	std::vector<cv::Mat> hsvChannels;
	cv::split(image_hsv, hsvChannels);

	// 0通道爲H份量,1通道爲S份量,2通道爲V份量
	image_H = hsvChannels[0];
	image_S = hsvChannels[1];
	image_V = hsvChannels[2];

	// 分別顯示各通道圖像
	cv::imshow("image_H", image_H);
	cv::imshow("image_S", image_S);
	cv::imshow("image_V", image_V);

	cv::waitKey(0);
	return 0;

}
相關文章
相關標籤/搜索