opencv函数copyto的用法
·
1、image.copyTo(ROI);
就是把image这张图复制(copy to)到ROI上。
2、image.copyTo(ROI,mask);
则是不仅把image这张图复制(copy to)到ROI上,且image对应mask中像素值为0的像素点都不会贴到ROI上。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
//全局变量
Mat dst, dst1, dst2;
//载入原图
Mat src = imread("12.bmp", 1);
void print()
{
cout << "键盘按键【1】:将原图复制并显示" << endl;
cout << "键盘按键【2】:image.copyTo(ROI,mask);把image这" << endl;
cout << " 张图复制到ROI上,且image对应mask中像素值为0的像素点都不会贴到ROI上" << endl;
cout << "键盘按键【Esc】:退出程序" << endl;
cout << "————————————————————————————————————————" << endl;
}
int main()
{
print();
//改变console(控制台)字体颜色
system("color 0B");
//判断图片是否读入
if (!src.data)
{
printf("读取图片image0错误~! \n");
return false;
}
//循环轮询按键
while (1)
{
//先显示原图
namedWindow("原图");
imshow("原图", src);
//获取键盘按键
int c = waitKey(0);
//判断ESC是否按下,若按下便退出
if ((c & 255) == 27)
{
cout << "程序退出!\n";
break;
}
//根据按键的不同,进行各种操作
switch ((char)c)
{
case '1':
cout << "您正在进行复制图像操作" << endl;
src.copyTo(dst);
imshow("复制图1", dst);
break;
case '2':
cout << "您正在进行带掩膜的复制图像操作" << endl;
dst1 = Mat::zeros(src.size(), src.type());
//cout <<dst1.size() << endl;
src.copyTo(dst2, dst1);
imshow("复制图2", dst2);
break;
}
}
return 0;
}




魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)