感兴趣区域 ROI
设置感兴趣区域 ROI (regin og interest),就是框选图象的一部分进行操作
下例显示如何利用 ROI 将一幅图像加载到另一幅图形的指定位置
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char const *argv[])
{
Mat image = imread("5.jpg");
Mat logo = imread("logo.png");
// 设置感兴趣区域
Mat imageROI = image(Rect(10, 10, logo.cols, logo.rows));
// 拷贝 logo 到感兴趣区域
logo.copyTo(imageROI);
imshow("结果", image);
waitKey(0);
return 0;
}
运行结果

线性混合
addWeighted 混合的两张图形需大小一样,否则出错
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char const *argv[])
{
Mat image = imread("mogu.jpg");
Mat rain = imread("rain.jpg"), out;
// 线性混合, 0.6 为 image 的权值, 0.4 为 rain 权值
addWeighted( image, 0.6, rain, 0.4, 0.0, out);
imshow("结果", out);
waitKey(0);
return 0;
}

对感兴趣区域进行线性混合
虽然 addWeighted 混合的两张图形需大小一样,否则出错,但可利用兴趣区域 ROI + addWeighted 实现对指定位置进行混合
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char const *argv[])
{
Mat image = imread("5.jpg");
Mat logo = imread("logo.png");
Mat imageROI = image(Rect(10, 10, logo.cols, logo.rows));
addWeighted( imageROI, 0.6, logo, 0.4, 0.0, imageROI);
imshow("结果", image);
waitKey(0);
return 0;
}

网友评论