自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 计算机视觉面试题

机器学习面试题L1,L2正则化的区别L1,L2正则化的区别https://blog.csdn.net/weiyongle1996/article/details/78161512https://www.zhihu.com/question/26485586

2021-04-22 23:41:48 2229

转载 栈和堆的区别

链接:https://leetcode-cn.com/leetbook/read/cpp-interview-highlights/e4w8fj/申请方式:栈是系统自动分配,堆是程序员主动申请。申请后系统响应:分配栈空间,如果剩余空间大于申请空间则分配成功,否则分配失败栈溢出;申请堆空间,堆在内存中呈现的方式类似于链表(记录空闲地址空间的链表),在链表上寻找第一个大于申请空间的节点分配给程序,将该节点从链表中删除,大多数系统中该块空间的首地址存放的是本次分配空间的大小,便于释放,将该块空间上的剩余空间再

2021-04-15 10:52:45 155

转载 C++内存管理

转载链接:https://leetcode-cn.com/leetbook/read/cpp-interview-highlights/e4vkxv/C++ 内存分区:栈、堆、全局/静态存储区、常量存储区、代码区。栈:存放函数的局部变量、函数参数、返回地址等,由编译器自动分配和释放。堆:动态申请的内存空间,就是由 malloc 分配的内存块,由程序员控制它的分配和释放,如果程序执行结束还没有释放,操作系统会自动回收。全局区/静态存储区(.bss 段和 .data 段):存放全局变量和静态变量,程序运

2021-04-15 10:29:48 166

原创 pytorch网络训练结果保存后加载使用

先保存训练完后的参数torch.save(mlp2.state_dict(), "./data/chap3/mlp2_param.pkl")预处理数据ss = StandardScaler(with_mean=True, with_std=True)boston_Xs = ss.fit_transform(boston_X)train_xt = torch.from_numpy(boston_Xs.astype(np.float32))train_yt = torch.from_numpy(b

2020-12-14 19:20:31 687

原创 目标追踪小任务(基于SIFT,LK光流,ceres)

一、流程简述这篇博客实现了在视频中追踪一个矩形物体并且用目标样板将其替换。首先先使用sift来检测特征点,用暴力匹配来得到两相邻帧的匹配,再使用LK光流追踪来获得相邻两帧的匹配,接着根据欧氏距离取两帧匹配点对的交集,再通过获得的点对来计算单应性矩阵(使用RANSAC方法),最后将获得的单应性矩阵作为初始值,用ceres进行非线性优化,从而得到较好的单应性矩阵。得到单应性矩阵后计算前一帧目标四点在后一帧的位置,从而进行贴图操作。二、步骤解读1、SIFT特征点检测1.1SIFT原理简介SIFT(Sca

2020-10-14 16:36:17 1767 1

原创 G2O库的代码编程套路

本文以高博的十四讲的例程来记录使用G2O库时的一个大概的套路开始构建图优化// 构建图优化,先设定g2o typedef g2o::BlockSolver<g2o::BlockSolverTraits<6, 3>> BlockSolverType; // pose is 6, landmark is 3 typedef g2o::LinearSolverDense<BlockSolverType::PoseMatrixType> LinearSolv

2020-09-08 15:27:40 380

原创 Ubuntu16.04上安装依赖库显示无法定位软件包的解决方法

在用Ubuntu的时候经常需要安装一些库什么的,这时候首先要安装一大堆相关的依赖包,但是很多时候某些版本的依赖包并不能在Ubuntu16.04上安装,在学习的时候遇到了这种问题的解决方法,写此博客记录一下。解决方法:使用apt-cache search <package_name>寻找相关的依赖包版本。比如libcholmod3这个依赖包直接安装会显示无法定位,这时候终端输入:apt-cache search libcholmod,就会显示:libcholmod2.1.2 - spars

2020-08-26 14:42:15 2059 1

原创 相机标定的例子在Ubuntu系统上的实现

最近拿网上的图片和例程实现了一下相机标定,这篇博文也不打算写什么关于相机标定关于原理性的东西了,这种博文实在是太多了有很多讲得也十分清楚,网上的例程实际上也没有多大区别,主要是想记录一下一些学习中的注意事项和对代码的理解。在Windows下和Ubuntu下的文件存储路径不一样,所以文件名需要注意。大致的关键过程就是用 findChessboardCorners()函数先提取准备好的每张图片上的角点;然后进行亚像素优化,可以用cornerSubPix()函数来进行;接下来用calibrateCamera(

2020-08-21 15:19:48 599

原创 VIM的操作学习知识记录

1.进入退出使用VIM进入文件:vim 文件名 <回车>插入文本:i添加文本:a不保存退出::q!<回车>保存退出::wq<回车>删除撤销1.从当前光标删除至下一个单词,请输入:dw2. 从当前光标删除至当前行末尾,输入:d$3. 删除整行,输入:dd4. 欲重复一个动作,在它前面加上一个数字:2w5. 在正常模式下修改命令的格式是:operator [number] motion其中:operator - 操作符,代表要做的事情,比如

2020-08-07 15:06:57 152

原创 关于morphologyEx()函数的小知识

morphologyEx函数的定义如上图,这里要记录的是:之前学到开、闭运算时一直有个疑惑,我们都知道开运算和闭运算对同一张图片重复使用是不会有进一步变化的,但是在morphologyEx函数里有个iteration(迭代次数),我之前一直以为是重复使用该函数的次数,然而实际并不完全是这样,为什么说不完全呢,最近我查看了该函数的源码,如下图:当我们使用腐蚀和膨胀的时候,没有问题,iteration即使用该函数的次数。但是当我们用到开、闭运算时,如果是简单重复开、闭运算的次数,那将不会有进一步变化,.

2020-06-30 10:59:07 1587 1

原创 cornerEigenValsAndVecs()&cornerMinEigenVal()自定义角点检测

自定义角点检测基于Harris与Shi-Tomasi特征点检测的自定义角点检测可以通过自己设定阈值来实现特征点的检测,使用起来更为灵活。cornerEigenValsAndVecs()函数函数定义如上图,该函数通过计算自相关矩阵M可以求出其特征值λ1和λ2,其中src为输入图像,dst为输出图像(宽度为输入图像6倍),blockSize为邻域大小,ksize为计算梯度算子的核尺寸大小。cornerMinEigenVal()函数函数定义如上图,该函数与cornerEigenValsAndVecs

2020-06-29 13:16:49 3144

原创 Harris角点检测原理概述及程序实验

角点的定义角点检测又叫做特征点检测,是计算机视觉中用来获得图像特征的一种方法,可以应用在图像匹配,目标识别和三维重建等领域中。如果一个点在任意方向进行微小的变动都会引起很大的灰度变化,那就叫做角点。关于角点的具体描述可以有几种:一阶导数(即灰度的梯度)的局部最大所对应的像素点;两条及两条以上边缘的交点;图像中梯度值和梯度方向的变化速率都很高的点;角点处的一阶导数最大,二阶导数为零,指示物体边缘变化不连续的方向。如下图所示,(a)中窗口在任意方向变动都没有灰度变化,则为平坦区域;(b)中窗口在水

2020-06-26 17:48:36 603

原创 图像处理代码编写三:基于C++的高斯滤波程序实现

认识高斯滤波高斯滤波也叫高斯模糊,是一种线性平滑滤波器,高斯滤波适用于去除高斯噪声,即服从正态分布的噪声,在很多图像预处理的时候经常会用到高斯滤波来消除噪声。结合前篇均值滤波的博文,高斯滤波其实就是将滤波模板换成了高斯模板。在图像处理中,高斯滤波一般有两种实现方式,一是用离散化窗口滑窗卷积,另一种通过傅里叶变换。最常见的就是第一种滑窗实现,只有当离散化的窗口非常大,用滑窗计算量非常大(即使用可分离滤波器的实现)的情况下,可能会考虑基于傅里叶变化的实现方法。本次我们只讨论离散化窗口卷积。高斯滤波原理高斯

2020-05-16 23:05:26 1596

原创 图像处理代码编写二:基于C++的中值滤波代码编写

中值滤波原理及应用中值滤波器是统计排序滤波器的一种,是一种非线性空间滤波器。中值滤波器是通过其像素邻域内像素排序为基础,然后用这些像素排序后的中值作为该像素点新的像素值,若邻域中有一些像素值相同时,所有相等的值都可作为中值。假如3×3邻域有一系列像素值(12,54,66,5,10,20,70,20,18),排序后为(5,10,12,18,20,20,54,66,70),那么中值就是20。中值滤波器最有效的就是处理椒盐噪声的能力。代码如下:#include <opencv2/opencv.hpp

2020-05-14 14:22:26 563

原创 图像处理代码编写一:基于C++的均值滤波程序实现

基于C++的均值滤波程序实现参考:https://blog.csdn.net/qq_43702097/article/details/103906355均值滤波原理对图像处理进行均值滤波的方法:首先定义一个模板,一般为奇数模板,锚点为中心,以其中心点为当前像素的位置(x,y),以模板覆盖的所有像素的均值作为滤波后图像的像素值。计算公式模板图(3×3)代码如下:void myblur(const Mat& src, Mat& dst, Size ksize){ //若模板

2020-05-08 21:35:24 2074

空空如也

空空如也

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

TA关注的人

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