opencv如何将一个一副彩色图像,分解成三个单通道图像,再组合成彩色图像,试举一例
2个回答
展开全部
split可以分解Mat类型图像,
merge可以合并单通道图像为三通道图像
#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include
#include
using namespace cv;
int main( int argc, char** argv )
{
Mat src, srcOfMerge;
vector mv;
/// Read image ( same size, same type )
src = imread("d:\\images\\WindowsLogo.jpg");
if( !src.data ) { printf("Error loading src \n"); return -1; }
split(src,mv);
/// Create Windows
namedWindow("RGB", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("srcOfMerge", 1);
imshow( "RGB", src);
imshow("R",mv[0]);
imshow("G",mv[1]);
imshow("B",mv[2]);
merge(mv,srcOfMerge);
imshow("srcOfMerge",srcOfMerge);
waitKey(0);
return 0;
}
merge可以合并单通道图像为三通道图像
#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include
#include
using namespace cv;
int main( int argc, char** argv )
{
Mat src, srcOfMerge;
vector mv;
/// Read image ( same size, same type )
src = imread("d:\\images\\WindowsLogo.jpg");
if( !src.data ) { printf("Error loading src \n"); return -1; }
split(src,mv);
/// Create Windows
namedWindow("RGB", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("R", 1);
namedWindow("srcOfMerge", 1);
imshow( "RGB", src);
imshow("R",mv[0]);
imshow("G",mv[1]);
imshow("B",mv[2]);
merge(mv,srcOfMerge);
imshow("srcOfMerge",srcOfMerge);
waitKey(0);
return 0;
}
追问
split在哪个头文件下面?
追答
用的opencv2.0, 应该就行了,具体在哪在程序里找函数的声明位置就可以了
2014-10-06
展开全部
用cvSplit函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询