iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >深入浅析OpenCV copyTo()函数
  • 814
分享到

深入浅析OpenCV copyTo()函数

2024-04-02 19:04:59 814人浏览 泡泡鱼
摘要

目录copyTo()函数原型简单示例mask参数深入探究copyTo() 函数原型 copyTo这个函数有两种定义方式,分别是: void copyTo( OutputArray

copyTo()

函数原型

copyTo这个函数有两种定义方式,分别是:


void copyTo( OutputArray m ) const;
void copyTo( OutputArray m, InputArray mask ) const;

参数:

  • 一个参数:一张输出图像
  • 两个参数:一张输出图像一个掩码图

简单示例

例如:


image_in.copyTo(image_out);

就是把image_in这张图复制(copy to)到image_out上。

又例如:


image_in.copyTo(image_out,mask);

则是不仅把image_in这张图复制(copy to)到image_out上,且image_in对应mask中像素值为0的像素点都不会贴到image_out上。

总结上述两个函数用法的作用:

  • 一个参数:表示将image_in矩阵复制到image_out中。
  • 两个参数:表示得到一个附加掩膜mask的矩阵image_out

一个参数的很简单就是复制图像,上面读mask用法探究不深,那么我们继续来探究一下mask参数的用法

mask参数深入探究

例如下面用法代码:


A.copyTo(B, mask)

mask作为一个掩模板,如果在某个像素点(i, j)其值为1(只看第一通道,所以mask单通道即可),则把A.at(i, j)处的值直接赋给B.at(i, j),如果其值为0则B.at(i, j)处保留其原始像素值。这样能够使得图标边缘的颜色和原图保持一致。

例如下面具体用法


#include <iOStream>
#include <math.h>
#include <OpenCV2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/highgui/highgui_c.h>  
using namespace cv;
using namespace std;
int main()
{
	Mat srcImage = imread("./test1.jpg");
	Mat dstImage = imread("./test.jpg");
	if (!srcImage.data || !dstImage.data)
	{
		cout << "could not load image !";
		return -1;
	}
	// namedWindow("图1原始图",);
	imshow("input_src1", srcImage);
	imshow("input_src2", dstImage);
	// 创建一个感兴趣区域
	Mat imageROI = srcImage(Rect(0, 0, dstImage.cols, dstImage.rows));
	// 加载掩模板
	Mat mask = imread("./test.jpg", 0);
	// 进行复制
	dstImage.copyTo(imageROI, mask);
	// 显示效果图
	imshow("out_put", srcImage);
	waiTKEy(0);
	return 0;
}

运行效果图:

在这里插入图片描述

到此这篇关于OpenCV copyTo()函数的文章就介绍到这了,更多相关OpenCV copyTo()函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入浅析OpenCV copyTo()函数

本文链接: https://www.lsjlt.com/news/161679.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入浅析OpenCV copyTo()函数
    目录copyTo()函数原型简单示例mask参数深入探究copyTo() 函数原型 copyTo这个函数有两种定义方式,分别是: void copyTo( OutputArray ...
    99+
    2024-04-02
  • OpenCV copyTo()函数怎么用
    这篇文章主要介绍“OpenCV copyTo()函数怎么用”,在日常操作中,相信很多人在OpenCV copyTo()函数怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”OpenCV&...
    99+
    2023-06-22
  • 深入浅析Node中的util.promisify()函数
    Node.js 内置的 util 包有一个 promisify() 函数,可以将基于回调的函数转换为基于 Promise 的函数。本文就来给大家介绍一下Node.js 中的 util.promisify() 函数,希望对大家有所帮助。让你可...
    99+
    2023-05-14
    JavaScript Node.js
  • Python3 lambda函数的深入浅
    我们常常看到一个这样的表达式  可能会一头雾水不知道怎么计算 最基本的理解就是 def A(x): return x+1 但是理解程序不会将一个表达式在转为函数的,因为lambda函数设计出来就是 简化def的。 其实很简单 我们可以这...
    99+
    2023-01-31
    函数 lambda
  • 深入浅析Vue3中的生命周期函数
    我们上面提及到一个组合式API中的钩子函数都是可以被多次定义,那意义是什么呢?其实很多时候我们是有这种需求的,我们前面的文章中提及到过 我们的Vue3的组合式API就是具有更高的可维护性,每个逻辑都是单独的代码块,那如果我们在页面初始化完成...
    99+
    2023-05-14
    生命周期函数 vue3
  • C语言深入浅出分析函数指针
    我们先看一个代码: #include<stdio.h> void test() { printf("haha\n"); } int main() { printf("...
    99+
    2024-04-02
  • 深入浅析AngularSSR
    目录使用 SSR 的好处对 SEO 更加友好提高移动端的性能更快地展示首页为项目增加 SSR替换浏览器 API使用 URL 绝对地址Prerender 预渲染静态 HTML预渲染路径...
    99+
    2022-11-13
    Angular SSR Angular SSR好处 Angular SSR用法
  • 深入浅析Java中的数组
    深入浅析Java中的数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数组的用处是什么呢?——当你需要将30个数进行大小排列的时候,用数组这样的数据结构存储是个很好的选择,...
    99+
    2023-05-31
    java ava 数组
  • 深入浅析MySQL Explain
    目录一、id二、select_type三、table四、type五、possible_keys六、Key七、key_len八、ref九、rows十、Extra在日常工作中,...
    99+
    2024-04-02
  • 深入浅析java中的维数组
    深入浅析java中的维数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。public class test { public static void main(Strin...
    99+
    2023-05-31
    java 维数组 ava
  • JS深入浅出Function与构造函数
    目录 1.概述1.1利用Function构造函数创建函数1.2Function与Object2.构造函数2.1自定义否则函数2.2对象的constructor属性2.3构造函数与函数...
    99+
    2024-04-02
  • C++深入浅出讲解函数重载
    目录前言函数重载1.1 函数重载的概念1.2 函数重载的意义1.3 名字修饰(name Mangling)1.4 extern "C"前言 自然语言中,一个词可以...
    99+
    2024-04-02
  • 深入浅析JVM中的参数分配
    深入浅析JVM中的参数分配?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、堆参数设置-XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志-XX:...
    99+
    2023-05-31
    jvm
  • 深入浅析JAVA的继承
    本篇文章给大家分享的是有关深入浅析JAVA的继承,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。继承(inheritance)是Java OOP中一个非常重要的概念。继承是在复用...
    99+
    2023-05-31
    java 继承 ava
  • 深入浅析Android中的AsyncTask
    这篇文章给大家介绍深入浅析Android中的AsyncTask,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、Asynctask简介1.1 使用方法简介Asynctask作为Android的基础之一,怎么使用就不多讲...
    99+
    2023-05-31
    android asynctask cta
  • 深入浅析Java中的 FilterInputStream
    这期内容当中小编将会给大家带来有关深入浅析Java中的 FilterInputStream,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。FilterInputStream 介绍FilterInputStr...
    99+
    2023-05-31
    java filterinputstream npu
  • 深入浅析Collections工具类
    深入浅析Collections工具类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Collections工具类提供了大量针对Collection/Map的操作,总体可分为四...
    99+
    2023-05-31
    collections 工具类 ct
  • 深入浅析JDK中的PriorityQueue
    深入浅析JDK中的PriorityQueue?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.优先队列的应用优先队列在程序开发中屡见不鲜,比如操作系统在进行进程调度时一种可...
    99+
    2023-05-31
    jdk priorityqueue eu
  • 深入浅析Django MTV模式
    MVC模式 MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(C...
    99+
    2024-04-02
  • 深入浅析MyBatis foreach标签
    前面我们学习了如何使用 Mybatis if、where、trim 等动态语句来处理一些简单的查询操作。对于一些 SQL 语句中含有 in 条件,需要迭代条件集合...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作