opencv —— copyTo 感兴趣区域:ROI

感兴趣区域:ROI

 Mat imageROI = srcImage(Rect(0,0,dstImage.cols, dstImage.rows));
  • srcImage 为原图像
  • Rect(0,0,dstImage.cols, dstImage.rows) 指感兴趣区域相对于原图像,其左上角坐标为(0,0),长为 dstImage.cols,宽为 dstImage.rows

 

src.copyTo(dst, mask) 或 src.copyTo(dst)

  • 若有 mask,将原图(src)与 mask 进行运算后得到的结果拷贝给 dst。其中,mask 必须为 CV_8U 类型,且大小与 src、dst 一致。

在位置(x,y)时,如果 mask 的像素值不等于 0,则 dst(x,y) = src(x,y);

如果 mask 的像素值等于 0,则 dst(x,y) = 0;(对于三通道的彩色图也适用)

opencv —— copyTo 感兴趣区域:ROI_第1张图片

  • 若没有 mask,直接将 src 拷贝给 dst,同时要求 src 与 dst 大小一致。

 

代码示例:

#include 
using namespace cv;
int main(){ Mat srcImage = imread("1.jpg"); Mat dstImage = imread("2.jpg"); imshow("图1原始图", srcImage); imshow("图2原始图", dstImage); //创建一个感兴趣区域 Mat imageROI = srcImage(Rect(0,0,dstImage.cols, dstImage.rows)); //加载掩模板 Mat mask = imread("2.jpg", 0); //进行复制 dstImage.copyTo(imageROI, mask); //显示效果图 imshow("效果图为",srcImage); waitKey(0); }

opencv —— copyTo 感兴趣区域:ROI_第2张图片opencv —— copyTo 感兴趣区域:ROI_第3张图片

 

 opencv —— copyTo 感兴趣区域:ROI_第4张图片

 

你可能感兴趣的:(opencv —— copyTo 感兴趣区域:ROI)