OpenCV3之——图像的组合输出

载入图像以及进行简单的图像混合的综合实例:

//*****头文件,命名空间包含部分****
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
//简单程序的三行标配
int main() {
	Mat girl = imread("girl.jpg");//载入图像到Mat
	namedWindow("【1】动漫图");
	imshow("【1】动漫图", girl);
	//初级图像混合
	//载入图片
	Mat image = imread("dota.jpg", 1);//此处值为199时报错
	Mat logo = imread("dota_logo.jpg");
	//载入后显示
	namedWindow("【2】原画图");
	imshow("【2】原画图", image);

	namedWindow("【3】logo图");
	imshow("【3】logo图", logo);

	//定义一个Mat类,用于存放图像的RIO
	Mat imageRIO;
	//方法一:
	imageRIO = image(Rect(800, 380, logo.cols, logo.rows));//参数为logo插入位置调整
	//方法二:
	//imageRIO = image(Range(350, 350 + logo.rows),Range(800,800+logo.cols));

	//将logo加到原图上
	addWeighted(imageRIO, 0.8, logo, 0.5, 0., imageRIO);//参数为图片透明度调整
	
	//显示结果
	namedWindow("【4】原画+logo图");
	imshow("【4】原画+logo图", image);

	//图像的输出
	//输出一张jpg图到工程目录下
	imwrite("由imwrite生成的图片.jpg", image);
	
	waitKey(0);

	return 0;
}

【原始图片】

     

【图像2和3组合效果图】

     

猜你喜欢

转载自blog.csdn.net/qq_35294564/article/details/81040294