opencv_c++学习(十二)

news2024/11/19 18:12:08

一、ROI区域截取

Range(int _start,  int _end)

start:区间的起始(包含此范围)。
end:区间的结束(不包含此范围)。

Rect_(_Tp_x,_Tp _y_Tp _width,_Tp _height)

_Tp:数据类型,C++模板特性,可以用int、double、float等替换。
_x:矩形区域左上角第一个像素的x坐标,也就是第一个像素的列数。
_y:矩形区域左上角第一个像素的y坐标,也就是第一个像素的行数。
_width:矩形的宽,单位为像素,即矩形区域跨越的列数。
_height:矩形的高,单位为像素,即矩形区域跨越的行数。

二、图像的深拷贝与浅拷贝

这里的深拷贝和浅拷贝与我们往常提的相同。
深拷贝:

copy To(lnputArray src, OutputArray dst, InputArray mask)

src:待拷贝图像。
dst:深拷贝后的图像。
mask:深拷贝时的掩码矩阵。

copyTo(OutputArray m, lnputArray mask) const

m:深拷贝后的图像。
mask:深拷贝时的掩码矩阵。

二、高斯图像金字塔

在这里插入图片描述
上图为高斯图像金字塔。

金字塔下采样接口如下:

pyrDown(InputArray src, outputArray dst, const Size & dstsize = size(), int borderType = BORDER_DEFAULT)

src:输入待下采样的图像。
dst:输出下采样后的图像,图像尺寸可以指定,但是数据类型和通道数与src相同。
dstsize:输出图像尺寸,可以缺省。
borderType:像素边界外推方法的标志。(用什么方法对空余的边界进行填充)
高斯金字塔的使用案例如下:

	Mat src = imread("图片1.png");

	//定义一个高斯金字塔的向量
	vector<Mat> Guess;

	//定义高斯金字塔的层数
	int level = 3;

	//将原图放入到高斯金字塔第一层中
	Guess.push_back(src);

	//使用for循环对高斯金字塔进行下采样
	for (int i = 0; i < 3; i++)
	{	
		//存放下采样之后的金字塔变量
		Mat guess;

		//取出高斯金字塔前一层的向量,在进行下采样操作
		pyrDown(Guess[i], guess);

		//下采样之后的图像放入高斯金字塔的向量数据中
		Guess.push_back(guess);
	}

	//循环读取不同层的图像
	for (int i = 0; i < 3; i++)

	{	//将层数转化为字符串类型
		string name = to_string(i);

		//显示每一层的数据
		imshow(name, Guess[i]);
	}

	waitKey(0);
	return 0;

三、拉普拉斯图像金字塔

在这里插入图片描述

pyrUp(lnputArray src, OutputArray dst. const Size & dstsize = size(), int borderType = BORDER_DEFAULT

src:输入待上采样的图像。
dst:输出上采样后的图像,图像尺寸可以指定,但是数据类型和通道数与src相同,
dstsize:输出图像尺寸,可以缺省。
borderType:像素边界外推方法的标志。
样例代码如下:

	Mat src = imread("1.jpg");

	//定义一个高斯金字塔的向量
	vector<Mat> Guess;

	//定义高斯金字塔的层数
	int level = 3;

	//将原图放入到高斯金字塔第一层中
	Guess.push_back(src);

	//使用for循环对高斯金字塔进行下采样
	for (int i = 0; i < level; i++)
	{	
		//存放下采样之后的金字塔变量
		Mat guess;

		//取出高斯金字塔前一层的向量,在进行下采样操作
		pyrDown(Guess[i], guess);

		//下采样之后的图像放入高斯金字塔的向量数据中
		Guess.push_back(guess);
	}

	vector<Mat> Lap;
	for (int i = Guess.size()-1; i > 0; i--)
	{
	//	//定义每层高斯金字塔的图像、放大后的高斯金字塔图像
		Mat lap, upGuess;

		//如果读入的图像是高斯金字塔中的最大的图像,则先下采样
		if (i == Guess.size() - 1)
		{
			//对最顶端的图像进行下采样
			Mat down;
			pyrDown(Guess[i], down);
			//在对下采样之后的图像上采样
			pyrUp(down, upGuess);
			cout << Guess[i].size() << endl;
			cout << upGuess.size() << endl;
			lap = Guess[i] - upGuess;

		//	//存入拉普拉斯金字塔的向量中
			Lap.push_back(lap);
		}

		//如果为其他层,则先上采样,在与下一层的特征相减
		pyrUp(Guess[i], upGuess);
		lap = Guess[i - 1] - upGuess;
		//存入拉普拉斯金字塔的向量中
		Lap.push_back(lap);
	}

	//循环读取不同层的图像
	for (int i = 0; i < Guess.size(); i++)

	{
		//将层数转化为字符串类型
		string name = to_string(i);

		//显示每一层的数据
		imshow("G" + name, Guess[i]);
		imshow("L" + name, Lap[Guess.size() - 1 - i]);
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Attention原理+向量内积+Transformer中的Scaled Dot-Product Attention

一、Attention原理 将 S o u r c e Source Source中的构成元素想象成是由一系列的 < K e y , V a l u e > <Key,Value> <Key,Value>数据对构成&#xff0c;此时给定 T a r g e t Target Target中的某个元素 Q u e r y Query Query&#xff0c;通过计算 Q u e…

【腾讯云 Finops Crane 集训营】降本增效利器Crane应用实战

文章目录 前言一、Crane是什么&#xff1f;二、Crane的特点三、Crane使用1、环境准备安装 kubectl安装 Helm安装 kind安装 Docker 2、安装Crane3、访问dashboard4、页面展示集群总览成本洞察成本分析 5、功能应用智能弹性 EffectiveHPA推荐规则 四、Crane的优势总结参考文献 前…

『iperf3 』服务器连接速度测试(2023/02/16 最新版)

文章目录 一、简介1.1 我的测速需求1.2 iperf 二、安装iperf2.1 windows中下载与构建2.2 Ubuntu中下载与构建 三、测速3.1 连接速度测试3.2 服务器网速测试 一、简介 1.1 我的测速需求 我目前有2个需求&#xff1a; 测试服务器的上传、下载速度&#xff1b;测试与服务器的连…

hive数据库表基本操作

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 分区 [CLUSTERED BY (col_name, col_name, ...) 分桶 [SORTED BY (c…

ijkplayer音视频同步

接上篇&#xff1a; ijkplayer框架的集成&#xff08; 从开始到优化秒开&#xff09; 补充&#xff1a; ijkplayer - 拓展&#xff1a; 资料收集备用。 1、在弱网时使用 2、ijkplayer播放卡顿 3、如何支持https链接播放 4、如何降低ijkplayer延迟效应 5、ijkplayer中音…

javaIO流之文件流

目录 简介一、File的构造方法二、File的常用方法1、获取功能的方法2、绝对路径和相对路径3、判断功能的方法4、创建、删除功能的方法5、目录的遍历6、递归遍历 三、RandomAccessFile1、主要方法 四、Apache FileUtils 类1、复制文件或目录&#xff1a;2、删除文件或目录&#x…

提高运算放大器输出功率

运算放大器的串联&#xff1a;如何同时实现高精度和高输出功率 复合放大器 复合放大器由两个单独放大器组合而成&#xff0c;分别具有不同的特性。 图1所示就是这种结构。放大器1为低噪声精密放大器ADA4091-2。 在本例中&#xff0c;放大器2为AD8397,具有高输出功率&#xff…

召回/粗排阶段 负样本常见构造方法

文章目录 1、曝光未点击2、全局随机选择负例3、batch内随机选择负例4、曝光数据随机选择负例5、基于popularity随机选择负例6、基于hard选择负例大佬的总结&#xff1a; 大佬的名言&#xff1a;“如果精排是特征的艺术&#xff0c;那么召回就是样本的艺术&#xff08;负样本为王…

linux 用mv替代rm将文件移动到回收站,避免误操作

有时候在linux上操作rm -rf 删除命令时&#xff0c;不下心就会将不想删除的文件给删除了&#xff0c;删完后&#xff0c;顿时傻眼了&#xff0c;比如 &#xff0c;文件夹test下面有 a ,a1 ,b ,b2四个文件&#xff0c;本来想删除test文件夹下面的a和a1连个文件&#xff0c; 输入…

TCP、UDP原理、DNS协议、CDN原理

1. 如何理解UDP 和 TCP? 区别? 应用场景? 一、UDP UDP&#xff08;User Datagram Protocol&#xff09;&#xff0c;用户数据包协议&#xff0c;是一个简单的面向数据报的通信协议&#xff0c;即对应用层交下来的报文&#xff0c;不合并&#xff0c;不拆分&#xff0c;只是…

Win10搭建Docker Desktop

Win10搭建Docker Desktop 1 介绍 Docker Desktop是适用于Windows的Docker桌面&#xff0c;是Docker设计用于在Windows 10上运行。它是一个本地 Windows 应用程序&#xff0c;为构建、交付和运行dockerized应用程序提供易于使用的开发环境。Docker Desktop for Windows 使用 Wi…

ChatGPT 插件,组合后更妙了

ChatGPT 插件&#xff0c;组合后更妙 大家好&#xff0c;我是章北海mlpy 昨天极简介绍了一些热门的ChatGPT插件 我测试了一些组合玩法&#xff0c;感觉效率、效果都远超预期。 今天就演示一下如何利用多个插件&#xff0c;高速阅读、理解一篇论文。 备注&#xff1a;一个C…

HTB靶机013-Poison-WP

013-Poison 靶机IP&#xff1a; 10.10.10.84 Scan Nmap 快速扫描&#xff1a; ┌──(xavier㉿kali)-[~] └─$ sudo nmap -sSV -T4 10.10.10.84 -F Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-30 16:41 CST Nmap scan report for 10.10.10.84 Host is up (0.27s…

公牛车充拆解 | 拓尔微A+C双口快充方案IM2403+TMI3451

在快节奏的生活中&#xff0c;手机已成为人们不可或缺的工具。对于经常开车出门的人来说&#xff0c;在车上给手机充电已经成为刚需&#xff0c;因此车载充电器是很多车主的不二之选&#xff0c;它能便捷地解决手机在车内充电的问题&#xff0c;让车主在开车途中保持电量充足。…

MySQL高级_第10章_索引优化与查询优化

MySQL高级_第10章_索引优化与查询优化 1. 数据准备 学员表 插 50 万 条&#xff0c; 班级表 插 1 万 条。 步骤 1 &#xff1a;建表 CREATE TABLE class ( id INT ( 11 ) NOT NULL AUTO_INCREMENT , className VARCHAR ( 30 ) DEFAULT NULL , address …

FlinkKafkaProducer 源码分析

initializeState 先查询是否开启isCheckpointingEnabled配置&#xff0c;如果没开&#xff0c;但是使用了EXACTLY_ONCE或者AT_LEAST_ONCE语义&#xff0c;就报错。 然后从checkpoint中保存的state中读取nextTransactionalIdHintState。 NEXT_TRANSACTIONAL_ID_HINT_DESCRIPTOR…

表情、特殊字符、字符串截取

码元与码点 关于码元和和码点&#xff0c;通过一个例子进行介绍。 如图&#xff0c;字符串&#x1f60a;只有一个“笑脸”符号&#xff0c;但是通过length属性发现&#xff0c;“长度”为2&#xff0c;string.length到底表示什么&#xff1f; 答&#xff1a;码元的个数 什么是…

C语言爬取HTML-爬取壁纸 文末附源码

前言&#xff1a;这学期计算机软件课程设计的其中一个题目是使用C语言爬取HTML&#xff0c;本打算使用C语言的CSpidr库来实现&#xff0c;但是因为它的依赖liburi没有找到在哪里安装&#xff0c;所以放弃了这个想法&#xff0c;使用的是curl以及libxml2这两个库&#xff0c;能够…

这几款实用且有趣的软件不容错过

软件一&#xff1a;天若ocr 这款Windows平台的天若OCR文字识别工具一定更适合你。 软件作者来自天若游心&#xff0c;我爱破解。 发布一年半以来一直深受好评&#xff0c;更新速度也非常快。 最近&#xff0c;它增加了批次识别功能。 软件二&#xff1a;腾讯柠檬精简版 除了Q…

P2233 [HNOI2002]公交车路线

题目描述 在长沙城新建的环城公路上一共有 8 个公交站&#xff0c;分别为 A、B、C、D、E、F、G、H。公共汽车只能够在相邻的两个公交站之间运行&#xff0c;因此你从某一个公交站到另外一个公交站往往要换几次车&#xff0c;例如从公交站 A 到公交站 D&#xff0c;你就至少需要…