载入图像以及进行简单的图像混合的综合实例:
//*****头文件,命名空间包含部分****
#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组合效果图】