opencv:图像填充

在图像处理中,经常需要在图像的指定区域替换成另一幅图像,如何通过opencv实现这种效果呢?下面就让我们进行具体介绍。

  实现这个功能简单分为两个步骤:1、首先在图像中设置ROI(region of interest,目标区域),2、在该区域填充目标图像。

  有了思路,我们的主要工作就是考虑如何把它们转化成机器语言。

  让我们看看下面的一段代码代码:

#include 
#include
using namespace std;
using namespace cv;
void main()
{
//读取待填充图像,
  Mat image = imread("lena.jpg");
  imshow("原始图", image);

  //读取待复制图片
  Mat roi =imread("cat_face.jpg");
  imshow("roi", roi);
  Mat dst;
  //缩放图像
  resize(roi, dst, Size(120, 150), 0, 0, CV_INTER_LINEAR);

  //设置绘制区域并复制
  Rect roi_rect = Rect(230, 100, dst.cols, dst.rows);
  dst.copyTo(image(roi_rect));

  imshow("result", image);
  waitKey();
}
Rect roi_rect = Rect(230, 100, dst.cols, dst.rows);

该行程序作用是设置在待填充图像的填充区域以及填充大小,(230,100)表示填充起始坐标,dst.cols, dst.rows表示填充区域的高和宽。

dst.copyTo(image(roi_rect))是把填充图像复制到待填充区域中。这样我们就完成了在图像指定区域填充目标图像。

实现结果如下:

 

                               opencv:图像填充_第1张图片

天学习一点点,每天进步一点点,坚持才会更优秀!!!!

                                                           “动动手指扫码或微信搜一搜关注哟

                                                   opencv:图像填充_第2张图片

 

你可能感兴趣的:(CV,随堂学习笔记)