示例#1
0
void test4addLogoImageCase5(){
	cv::Mat image1=cv::imread( inputImagePath4addLogoImage1 );
	cv::Mat logo=cv::imread( inputImagePath4addLogoImage3 );

	//define image ROI
	cv::Mat imageROI;

	//split 3-channel image into 3 1-channel images
	std::vector<cv::Mat> channels;
	cv::split( image1,channels );

	imageROI=channels.at(1);

	cv::addWeighted( imageROI(cv::Rect(385,270,logo.cols,logo.rows)),1.0,
			logo,0.5,0.,imageROI(cv::Rect(385,270,logo.cols,logo.rows )) );



	cv::merge(channels,image1);

	alert_win( image1 );
}
示例#2
0
int main()
{
	cv::Mat image1;
	cv::Mat image2;

	image1= cv::imread("boldt.jpg");
	image2= cv::imread("rain.jpg");
	if (!image1.data)
		return 0; 
	if (!image2.data)
		return 0; 

	cv::namedWindow("Image 1");
	cv::imshow("Image 1",image1);
	cv::namedWindow("Image 2");
	cv::imshow("Image 2",image2);

	cv::Mat result;
	cv::addWeighted(image1,0.7,image2,0.9,0.,result);

	cv::namedWindow("result");
	cv::imshow("result",result);

	// using overloaded operator
	result= 0.7*image1+0.9*image2;

	cv::namedWindow("result with operators");
	cv::imshow("result with operators",result);

	image2= cv::imread("rain.jpg",0);

	// create vector of 3 images
	std::vector<cv::Mat> planes;
	// split 1 3-channel image into 3 1-channel images
	cv::split(image1,planes);
	// add to blue channel
	planes[0]+= image2;
	// merge the 3 1-channel images into 1 3-channel image
	cv::merge(planes,result);

	cv::namedWindow("Result on blue channel");
	cv::imshow("Result on blue channel",result);

	// read images
	cv::Mat image= cv::imread("boldt.jpg");
	cv::Mat logo= cv::imread("logo.bmp");

	// define image ROI
	cv::Mat imageROI;
	imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));

	// add logo to image 
	cv::addWeighted(imageROI,1.0,logo,0.3,0.,imageROI);

	// show result
	cv::namedWindow("with logo");
	cv::imshow("with logo",image);

	// read images
	image= cv::imread("boldt.jpg");
	logo= cv::imread("logo.bmp");

	// define ROI
	imageROI= image(cv::Rect(385,270,logo.cols,logo.rows));

	// load the mask (must be gray-level)
	cv::Mat mask= cv::imread("logo.bmp",0);

	// copy to ROI with mask
	logo.copyTo(imageROI,mask);

	// show result
	cv::namedWindow("with logo 2");
	cv::imshow("with logo 2",image);

	// read images
	logo= cv::imread("logo.bmp",0);
	image1= cv::imread("boldt.jpg");

	// split 3-channel image into 3 1-channel images
	std::vector<cv::Mat> channels;
	cv::split(image1,channels);

	imageROI= channels.at(1);

	cv::addWeighted(imageROI(cv::Rect(385,270,logo.cols,logo.rows)),1.0,
			        logo,0.5,0.,imageROI(cv::Rect(385,270,logo.cols,logo.rows)));

	cv::merge(channels,image1);

	cv::namedWindow("with logo 3");
	cv::imshow("with logo 3",image1);

	cv::waitKey();

	return 0;
}