自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

原创 【机器学习】TP TN FP FN及IoU的关系

TP TN FP FN和IoU之间的关系

2023-03-03 13:16:41 1080 1

原创 【C++】利用getline方法分割字符串

利用getline方法分割字符串

2023-02-08 15:12:37 1141

原创 【机器学习】PyTorch搭建线性网络结构示例

【代码】【机器学习】PyTorch搭建线性网络结构示例。

2023-01-30 16:36:37 452

原创 【C++】利用OpenCV库读取yaml文件

【代码】【C++】利用OpenCV库读取yaml文件。

2022-11-24 12:46:01 1156

原创 【机器学习】PyTorch中 tensor.detach() 和 tensor.data 的区别

PyTorch中tensor.detach()和tensor.data的区别。

2022-09-13 18:58:48 579

原创 【操作系统】第5章 输入/输出 (I/O) 管理

I/O设备的概念I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。I/O设备的分类——按使用特性分类I/O设备的分类——按传输速率分类I/O设备的分类——按信息交换的单位分类I/O设备的机械部件I/O设备的机械部件主要用来执行具体I/O操作。I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板。I/O设备的电子部件(I/O控制器)CPU无法直接控制I/O设备

2022-07-09 12:39:04 438

原创 【操作系统】第4章 文件管理

文件的属性文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性因此标识符只是操作系统用于区分各个文件的一种内部名称类型:指明文件的类型位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)大小:指明文件大小创建时间、上次修改时间文件所有者信息保护信息:对文件进行保护的访问控制信息文件的逻辑结构操作系统向上提供的几个最基本的功能创建文件:create系统调用删除文件:delete系统调用

2022-07-09 12:07:48 1055

原创 【操作系统】第3章 内存管理

内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。装入的三种方式绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块的地址,将程序和数据装入内存。(只适用于单道程序环境)静态重定位(可重定位装入):编译、链接后的装入模块的地址都是从0开始的,指令中使用的地址、数据存放的地址都是相对于起始地址而言的逻辑地址。可根据内存的当前情况,将装入模块装入到内存的适当位置。装入时对地址进行“重定位”,将逻辑地址变换为物理地址(地址变换是在装入

2022-07-08 21:33:02 639

原创 【操作系统】第2章 进程与线程

进程的定义程序:就是一个指令序列PCB、程序段、数据段三部分构成了进程实体(进程映像)进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位进程的组成进程(进程实体)由程序段(存放要执行的代码)、数据段(存放程序运行过程中处理的各种数据)、PCB三部分组成PCB的组成进程描述信息进程标识符PID用户标识符UID进程控制和管理信息资源分配清单处理机相关信息各种寄存器值进程的组织在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。链接方式索

2022-07-05 09:38:14 790

原创 【华为电脑管家】打开多屏协同会自动修改微软拼音输入法兼容性的解决方案

问题描述当打开多屏协同时,微软拼音输入法的界面会自动改变,打开设置发现兼容性这里的开关被打开了。解决方案下载火绒,点击防护中心:打开自定义防护,并点击进去:点击自定义防护,点击添加规则(这里的规则是我添加好的,下面介绍怎么添加):可以先改个名字(如输入法),然后点击添加保护对象:点击注册表规则,在下面找这两个注册表:HKEY_CURRENT_USER\Software\Microsoft\input\tsf\tsf3override\{81d4e9c..

2022-05-31 15:49:50 3174 8

转载 【C++】关于数组是否可以使用负数下标

我们知道,数组的第一个元素下标是 0。数组的范围也就是从array[0]到 array[size-1]。 但实际上C++支持正负下标。 负下标必须在数组边界内;否则结果不可预知。 以下代码显示了正数组和负数组下标:C++代码#include <iostream> using namespace std; int main() { int intArray[1024]; for (int i = 0, j = 0; i < 1024; i++)

2022-05-04 15:00:53 1683

原创 【C++】unordered_set中find()用法及代码示例

unordered_set::find()函数是C++ STL中的内置函数,用于在容器中搜索元素。如果找到指定元素,它返回元素的迭代器,如果找不到指定元素,则返回指向unordered_set::end()的迭代器。用法:unordered_set_name.find(key)参数:此函数接受必需的参数键,该键指定要搜索的元素。返回值:返回找到元素的迭代器,否则返回指向unordered_set末尾的迭代器。以下示例程序旨在说明unordered_set::find()函数:示例1:#inc

2022-04-30 13:19:21 10531

原创 【操作系统】第1章 计算机系统概述

第1章 计算机系统概述1.1 操作系统的基本概念1.1.1 操作系统的概念、功能和目标操作系统 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的 系统软件操作系统提供的功能作为系统资源的管理者提供的功能处理机(CPU)管理存储器管理文件管理设备管理目标:安全、高效作为用户和计算机硬件之间的接口提供的功能命令接口:运行用户直接调用联机命令接口(交互式命令

2022-04-27 16:07:54 276 2

原创 【数据结构】第8章 排序

8.1 排序的基本概念排序算法的稳定性排序算法的分类内部排序:数据都砸内存中(关注如何使算法时间、空间复杂度更低)外部排序:数据太多,无法全部放入内存(还要关注如何使读/写磁盘次数更少)8.2 插入排序8.2.1 直接插入排序算法思想:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。//直接插入排序void InsertSort(int A[], int n){ int i, j, temp; for(i = 1; i &lt

2022-04-19 22:43:30 387

原创 【数据结构】第7章 查找

7.1 查找的基本概念查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找查找表(查找结构):用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成关键字:数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的。对查找表的常见操作查找符合条件的数据元素静态查找表:仅关注查找速度即可插入、删除某个数据元素动态查找表:除了查找速度,也要关注插、删操作是否方便实现查找算法的评价指标查找长度:在查找运算中,需要对比关键字的次数平均

2022-04-19 22:18:36 385

原创 【数据结构】第6章 图

6.1 图图的定义图 GGG 由顶点集 VVV 和边集 EEE 组成,记为 G=(V,E)G=(V,E)G=(V,E),其中 $ V(G)$ 表示图 GGG 中顶点的有限非空集;E(G)E(G)E(G) 表示图 GGG 中顶点之间的关系(边)集合。若 V={v1,v2,…,vn}V=\{v_1,v_2,\dots,v_n\}V={v1​,v2​,…,vn​},则用 ∣V∣\left| V \right|∣V∣ 表示图 GGG 中顶点的个数,也称图 GGG 的阶,E={(u,v)∣u∈V,v∈V}E=\{

2022-04-19 22:06:27 372

原创 【数据结构】第5章 树与二叉树

5.1 树5.1.1 树的定义和基本术语树的基本概念非空树的特性:有且仅有一个根节点没有后继的结点称为“叶子结点”(或终端结点)有后继的结点称为“分支结点”(或非终端结点)除了根节点外,任何一个结点都有且仅有一个前驱每个结点可以有0个或多个后继空树:结点数为0的树子树:森林:森林是m(m≥0)m(m\ge0)m(m≥0)棵互不相交的树的集合(森林可以和树发生转换)结点之间的关系描述祖先结点:父亲、爷爷子孙结点:K、L父结点(双亲结点):父亲孩子结点:K、L兄

2022-04-19 21:48:35 408

原创 【数据结构】第4章 串

4.1 串4.1.1 串的定义和基本操作串的定义串,即字符串(String)是由零个或多个字符组成的有限序列。一般记为:S=′a1a2…an′(n≥0)S='a_1a_2\dots a_n'(n\ge0)S=′a1​a2​…an′​(n≥0)(C、Java用双引号,Python用单引号)。SSS是串名,单括号括起来的字符序列是串的值aia_iai​可以是字母、数字或其他字符串中字符的个数nnn称为串的长度n=0n=0n=0时的串称为空串子串:串中任意个连续的字符组成的子序列主串:包含子串

2022-04-19 21:35:58 535

原创 【数据结构】第3章 栈和队列

3.1 栈3.1.1 栈的基本概念栈:栈(stack)是只允许在一端进行插入或删除操作的线性表。(后进先出, LIFO, Last In First Out)栈的基本操作InitStack(&S):初始化栈。构造一个空栈SSS,分配内存空间。DestroyStack(&S):销毁栈。销毁栈,并释放栈SSS所占用的内存空间。Push(&S,x):进栈。若栈SSS未满,则将xxx加入成为新栈顶。PoP(&S,&x):出栈。若栈SSS非空,则弹出栈顶元素,

2022-04-19 21:31:58 183

原创 【数据结构】第2章 线性表

2.1 线性表的定义和基本操作线性表:线性表是具有相同(每个数据元素所占空间一样大)数据类型的n(n>0)n(n>0)n(n>0)个数据元素的有限序列(有次序),其中nnn为表长,当n=0n=0n=0时线性表是一个空表。若用LLL命名线性表,则其一般表示为:L=(a1,a2,…,ai,ai+1,…,an)L=(a_1,a_2,\dots,a_i,a_{i+1},\dots,a_n)L=(a1​,a2​,…,ai​,ai+1​,…,an​)例:所有的整数按递增次序排列,是线性表吗

2022-04-19 21:21:24 286

原创 【数据结构】第1章 绪论

数据结构在学什么?如何用程序代码把现实世界的问题信息化如何用计算机高效地处理这些信息从而创造价值1.1 数据结构的基本概念数据:数据是信息的载体,是描述客观事物属性的数、字符及**所有能输入到计算机中并被计算机程序识别和处理(二进制0和1)**的符号的集合。数据是计算机程序加工的原料。数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。数据项:一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。结构:各个元素之间的关系。数据结构:数据结构是相..

2022-04-19 21:13:47 92

原创 【WSA】Win11安卓子系统提示VirtWifi的连接受限的解决方法

问题描述每次WSA启动时都会有如下提示:虽说不影响使用,但是看着实在是闹心。解决方案1. 下载ADB工具:Platform-tools下载_Platform-tools(安卓调试工具包)官方版下载 - 系统之家 (xitongzhijia.net)http://www.xitongzhijia.net/soft/238593.html将对应Windows版本解压出来。2. 将ADB的路径添加到系统环境变量中:在终端(PowerShell)中输入如下命令,验证ADB的安装:

2022-03-07 12:41:24 21884 8

原创 【C++】派生类赋值运算符的写法

假设baseDMA是基类,hasDMA是由baseDMA得到的派生类。假设基类baseDMA的复制构造函数有如下形式:baseDMA & baseDMA::operator=(const baseDMA & rs){ if (this == &rs) return *this; delete [] label; label = new char[std::strlen(rs.label) + 1]; std::strcpy(lab

2022-03-05 19:40:01 783 1

原创 【C++】隐式类型转换的风险举例及使用explict的必要性

隐式转换的风险隐式转换的风险一般存在于自定义的类构造函数中。 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象。如:class String{public: String (const char* p); // 用 C 风格的字符串p作为初始化值}...String s1 = "hello"; // OK 隐式转换,等价于 String s1 = String("hello")但是有时可能

2022-02-27 13:03:25 549

原创 【WSA】Win11 安卓子系统配置上网方法

搜索系统环境变量:在里面添加ADB的安装路径:在终端里输入adb version,测试adb是否正常工作:在终端里输入ipconfig,查看安卓子系统IP地址:在终端输入以下神奇代码,就可以在WSA里面愉快上网啦:adb shell settings put global http_proxy 172.30.128.1:7890如果不想上网了,就输入以下更神奇的代码:adb shell settings put global http_proxy :0..

2022-02-26 16:58:05 35517 11

原创 【C++】内联函数与宏定义的区别

内联函数内联函数和常规函数一样,也是按值来传递参数的。例如,如果参数为表达式,如4.5+7.5,则函数将传递表达式的值(这里为12)。#include <iostream>inline double square(double x) { return x * x; }int main(){ using namespace std; double a, b; double c = 13.0; a = square(5.0); b = squa

2022-02-19 15:24:04 403

转载 【C++】for循环中带冒号(:)用法简介

基本用法正常我们想要输出一个数组的全部元素时,需要采用以下的方法://随机定义的数组int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };for (int i = 0; i < 10; i++) { cout << array[i] << " "; //输出:54 23 78 9 15 18 63 33 87 66}在C++11中,我们可以在for循环添加冒号 : 来简化这一过程://随机定义的

2022-01-29 13:18:42 4919

原创 【OpenCV】OpenCV/Python遍历像素点操作运行效率低的解决方法

1. 背景该问题源于实验室项目,里面涉及图像处理的相关操作。在其中利用重心法检测二值化目标的圆心时,发现运行效率很低,给图像的精度测试带来了很大的麻烦。因此,考虑将该部分改进,以提高重心法检测的速度。2. 传统重心法检测# --重心法检测圆心--sum_x = 0sum_y = 0cnt_x = 0cnt_y = 0for i in range(blank_bg.shape[0]): for j in range(blank_bg.shape[1]): ...

2021-12-12 19:50:00 3809

原创 VSCode/Ubuntu/C++编译环境的配置

.vscode文件夹下面的配置文件。

2021-12-06 23:02:20 584

原创 VSCode调试时出现的glibc库相关问题

在Ubuntu中安装glibc库:sudo apt install glibc-sourcecd /usr/src/glibc/sudo tar -xvf glibc-[VERSION].tar.xz其中,[VERSION]为版本号。然后在launch.json文件中加入以下代码:"sourceFileMap": { "/build/glibc-ZN95T4": "/usr/src/glibc"}注意:glibc-后面的内容(ZN95T4)需要根据报错提示更改

2021-12-06 22:56:01 948

原创 【OpenCV】命令行安装OpenCV-Python的方法

pip install opencv-python==4.1.2.30 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install opencv-contrib-python==4.1.2.30 -i https://pypi.tuna.tsinghua.edu.cn/simple

2021-12-03 09:07:22 7156 2

原创 【WSL】解决WSL2重启后IP地址变化的问题

编辑环境变量:sudo vim ~/.bashrc利用如下命令自动获取当前IP地址:export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"执行如下命令:source ~/.bashrc这样就可以继续使用VcXsrv或者Xming等图形化界面啦!...

2021-11-28 10:54:01 1246

原创 【OpenCV】OpenCV/C++利用RANSAC算法减少SIFT特征误匹配

#include "opencv2/nonfree/nonfree.hpp" #include "opencv2/nonfree/features2d.hpp" #include "opencv2/legacy/legacy.hpp"#include <opencv2/opencv.hpp>#include <iostream> using namespace cv; using namespace std; int main() { ..

2021-11-16 11:59:29 1989 2

原创 Typora/Markdown图片上传云端的方法(PicGo使用教程)

第一步:下载PicGo进入GitHub下载PicGo对应版本:Releases · Molunerfinn/PicGo · GitHubhttps://github.com/Molunerfinn/PicGo/releases在Releases界面下找到Assets,根据操作系统下载对应版本。Windows系统下载如下版本即可。接下来正常安装PicGo即可。第二步:建立Gitee仓库在Gitee网站上新建一个仓库用于存放云端图片:仓库设置如下(仓库名称可以随意起)...

2021-11-10 09:46:20 1711

原创 【OpenCV】OpenCV基础教程(11)—— HighGUI图形用户界面

11. HighGUI图形用户界面11.1 滑动条的创建和使用11.1,1 创建滑动条:createTrackbar()函数createTrackbar 函数用于创建一个可以调整数值的滑动条:int cv::createTrackbar(const cv::String &trackbarname, const cv::String &winname, int *value, int count, cv::TrackbarCallback onChange = (cv::Trackb

2021-11-10 09:43:21 1600

原创 【OpenCV】OpenCV基础教程(10)—— 频率域滤波

10. 频率域滤波10.1 概述及原理详解频率域滤波的步骤如下:10.2 低通滤波低通滤波器越靠近中心点位置的值越接近于 1,越远离中心位置的值就越小于 1,与傅里叶变换相乘后,相当于保留了低频信息,消弱或者移除了高频信息。10.2.1 理想低通滤波器假设 𝐻、𝑊 分别代表图像快速傅里叶变换的高、宽。傅里叶谱的最大值(中心点)的位置在 (maxR, maxC)。radius 代表截断频率。𝐷(𝑟, 𝑐) 代表 (𝑟, 𝑐) 到中心位置的距离。ilpFilter(r,c)={1D(r,c)≤r

2021-11-10 00:09:23 3262 1

原创 【OpenCV】OpenCV基础教程(9)—— 傅里叶变换

9. 傅里叶变换9.1 二维离散的傅里叶(逆)变换9.1.1 离散傅里叶变换二维离散傅里叶变换的原理略,具体见书P346。OpenCV实现傅里叶(逆)变换的函数:void cv::dft(cv::InputArray src, cv::OutputArray dst, int flags = 0, int nonzeroRows = 0)src:输入矩阵,只支持 CV_32F 或者 CV_64F 的单通道或双通道矩阵dst:输出矩阵flags:用于说明是傅里叶变换还是傅里叶逆变换D

2021-11-10 00:09:14 4349

原创 【OpenCV】OpenCV基础教程(8)—— 几何形状的检测和拟合

8. 几何形状的检测和拟合8.1 点集的最小外包8.1.1 最小外包矩形OpenCV提供如下函数:cv::RotatedRect cv::minAreaRect(cv::InputArray points)points:接收三种点集形式​ 第一种:N×2的Mat类型,每一行代表一个点的坐标且数据类型只能是 CV_32S 或者 CV_32F;​ 第二种:vector<Point>或者vector<Point2f>,即多个点组成的向量;​ 第三种:N×1的双通道Mat

2021-11-10 00:09:05 8125

原创 【OpenCV】OpenCV基础教程(7)—— 边缘检测

7. 边缘检测7.1 Roberts算子Roberts边缘矩阵是图像矩阵与以下两个卷积核分别做卷积:Roberts135=[100−1],Roberts45=[01−10]\mathbf{Robert}{{\mathbf{s}}_{135}}=\left[ \begin{matrix}1 & 0 \\0 & -1 \\\end{matrix} \right],\mathbf{Robert}{{\mathbf{s}}_{45}}=\left[ \begin{matrix}0 &am

2021-11-10 00:08:55 2499

原创 【OpenCV】OpenCV基础教程(6)—— 形态学处理

6. 形态学处理6.1 腐蚀图像的腐蚀操作是取每一个位置的矩形邻域内值的**最小值**作为该位置的输出灰度值。这里的邻域不再单纯是矩形结构的,也可以是椭圆形结构的、十字交叉形结构的等。与卷积核类似,它同样需要指定一个锚点。因为取每个位置邻域内的最小值,所以腐蚀后输出图像的总体亮度的平均值比起原图会有所降低,图像中比较亮的区域的面积会变小甚至消失,而比较暗的区域的面积会增大。假设原图像是I\mathbf{I}I,经过腐蚀后的图像是E\mathbf{E}E。因为对图像进行腐蚀操作后缩小了亮度区域的面积,

2021-11-10 00:08:35 1700

OpenCV 3.4.0编译时缺少的boostdesc-bgm.i等文件集合

OpenCV 3.4.0编译时缺少一些文件文件,无法继续编译,需要离线下载再继续编译。压缩包内包含:boostdesc_bgm.i,boostdesc_bgm_bi.i,boostdesc_bgm_hd.i,boostdesc binboost 064.i,boostdesc binboost 128.i,boostdesc binboost 256.i,boostdesc_lbgm.i,vgg_generated 48.i,vgg_generated 64.i,vgg_generated 80.i,vgg_generated 120.i。 安装教程:https://blog.csdn.net/qq_29931565/article/details/120572013

2023-03-05

Meshroom个人使用数据集

这是本人跑Meshroom时自己拍摄的数据集,一共34张图片,也是原帖所使用的数据集。

2022-12-27

Gazebo模型库(包含283个常见模型)

资源内容:283个常见的Gazebo模型,包括房屋、小车、道路、树等等等等。一次下载到位,不需要每次使用的时候都从国外服务器下载,提高使用和开发效率。 使用方法:解压后将283个子文件夹放置在~/.gazebo/models文件夹内(如果没有models文件夹就自己创建),打开gazebo在Insert标签内即可看到模型,点击对应的模型即可使用。

2022-04-11

Meshroom三维重建软件官网压缩包

Meshroom官网经常登不上去,这里提供一个下载好的Meshroom官方版本。 免安装,解压缩后运行其中的Meshroom.exe即可使用。

2021-12-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除