自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (5)
  • 收藏
  • 关注

原创 C++基本操作积累

C++基本操作积累本篇主要为积累自己平时遇到的一些操作,我一般情况下都是需要一个功能,先到网上搜索然后copy。甚至有一些常用函数的应用都要到网上搜索一下才会使用。为了提高写代码的效率,决定记录一下C++中经常会使用到的函数操作。我的目的很简单,就是能够在有编译提醒的情况下,知道哪个功能需要哪个函数,所以函数的形式不一定准确,比如说大小写。角点检测goodfeaturetotrack矩阵...

2020-03-16 09:30:06 118

原创 Linux Ubuntu入门:主要的命令(常学常更)

FAST MATCH: fast affine template matchingIntegral image代数矩的快速计算快速模板匹配算法步骤结果解读“FAsT-Match: Fast Affine Template Matching”Integral image本文作者从2001 年人脸识别神作 “Robust Real-time Object Detection” 中提到的图片特征 ...

2019-06-17 20:29:57 112

原创 C++探幽:#if 0(1) #end if

在阅读源代码的时候,时不时会发现#if 0code#end if的写法,刚开始很不理解,以为可运行的代码的某种写法,通过运行简单的程序发现,#if 0中出现的变量不会出现在内存中,而#if 1中的变量会出现在内存中。结合网上的说法,我就浅层次地将其理解为一种注释吧。...

2020-12-12 11:40:06 25

原创 ORB特征:FAST、DRIEF、Harris角点

FAST特征BRIEF特征描述符该描述符提供一个计算二值串的捷径平滑图像。在特征点周围选择一个块,在块内选择ndn_dnd​个点对。对于每一个点对(p,q)(p,q)(p,q),比较两个点的亮度值,如果I(p)>I(q)I(p)>I(q)I(p)>I(q),生成二值串中的1,若I(p)<I(q)I(p)<I(q)I(p)<I(q),二值串对应为-1,否则就为0。比较完所有的ndn_dnd​个点对后,就获得了一个长度为ndn_dnd​的二值串。BRIEF是一个

2020-12-06 13:46:48 24

原创 SIFT的尺缩不变和旋转不变

被问到的问题

2020-12-03 21:43:30 36

原创 C++探幽:内存分配

内存对象的基本概念栈对象栈,一般用于存放局部变量或对象。优势在于:能够在适当的时候自动生成、在适当的时候自动销毁。栈对象的创建(只需要移动栈顶指针)速度比堆对象的创建速度块(需要执行某种空间搜索算法)。缺点:栈空间容量一般较小(1M-2M),体积比较大的对象不适合在栈中分配。而且递归函数最好不适用栈对象,因为随着递归调用深度的增加,所需的栈空间也会线性增加,从而导致栈溢出。int add(int a,int b){return a+b;}int mian(){ int a=2,b=0; i

2020-11-19 16:25:07 15

原创 C++探幽:实现一个简单的string类

class myString{public: myString(const char* p=NULL);//普通构造函数 myString(const myString &str);//拷贝构造函数:需要实现深拷贝 ~myString(); myString &operator = (const myString &str);//重载运算符private: char* data=NULL; };myString::myString(const char* p=N

2020-11-19 15:01:00 16

原创 C++探幽:malloc/free与new/delete

标准库函数与运算符malloc/free是C++/C 的标准库函数,new/delete是C++的运算符。对于非内部数据类型对象而言,只使用malloc/free无法满足动态对象的要求。对象在创建的同时自动执行构造函数,消亡之前要自动执行析构函数。malloc/free不在编译器控制范围内,不能将构造函数和析构函数强加于malloc、free。malloc/free只申请内存的大小,对象的初始化是需要额外进行的。malloc/free 最需要的注意的就是申请的字节数的大小和指针类型转换。new /d

2020-11-19 10:30:53 13

原创 C++探幽:指针与数组的对比

数组要么被建立在静态存储区(如全局数组),要么被建立在栈上(局部数组)。数组名对应着一块内存,而不是指向一块内存,其地址与容量保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,其特征是可变。因此经常使用指针操作动态内存块,比数组灵活,却也更危险。修改内容char *p="hello";//其实在VS2017里边,该指针不能这样定义,而是const char *p="hello"才不会报错。cout<<p<<endl;所以∗p*p∗p指向常量字符串,而对于

2020-11-19 10:05:17 17

原创 C++探幽:指针参数

指针作为返回值不要用return语句返回指向“栈内存”的指针,因为该内存在函数结束时自动消亡。char *GetString(void){ char p[] = "hello world"; return p; // 编译器将提出警告}int main(){ char *str = NULL; str = GetString(); // str 的内容是垃圾(字符串+烫烫烫) cout<< str << endl;}改写成如下示例char *GetStr

2020-11-18 20:04:15 9

原创 C++探幽:C++11多线程

pthread与threadC++11中使用thread,C++98 中使用pthread,并且pthread只支持Linux。创建线程#include<thread>//创建线程需要的头文件#include<mutex>//锁的头文件假设有如下两个函数:int number = 0;//全局变量mutex g_lock;//锁int threadProc1(){ lock_guard<mutex> locker(g_lock); for (int

2020-11-18 17:04:37 13

原创 QT关于相机、串口掉线(拔掉)重连

记录基本操作,以备不时之需,自己的杂乱笔记,思路应该比较清晰相机掉线判断相机掉线:采集图片出错相机重连尝试:不退出线程,重新打开相机,并将新的变量赋值给线程中一直使用的变量void total_thread::run(){ VideoCapture cap(0); Mat img, result; int thread_stop = param_Cutpp.thread_shutup; int data_wrap = 0; int angle3 = 0;//文档缺角标志 doubl

2020-10-29 20:59:57 115

原创 Ubuntu 安装 libgphoto2.5.25

QT .pro文件的写法INCLUDEPATH+=/usr/local/include/gphoto2INCLUDEPATH+=/usr/local/includeLIBS +=/usr/local/lib/libgphoto2.soLIBS +=/usr/local/lib/libgphoto2_port.so安装步骤查看安装包中的install文档,一步一步安装完成开发开发的话应该主要参考samples文件夹中的代码,其中看懂的包括:枚举相机,单图像采集,以及触发采集等,需要后续消化重

2020-10-28 09:55:29 47

原创 C++判断文件夹是否存在

源码来源于网络#include <iostream>#include <string>#include <io.h>using namespace std;bool dirExists(const std::string& dirName_in){ int ftyp = _access(dirName_in.c_str(), 0); if (0 == ftyp) return true; // this is a directory

2020-09-08 17:37:27 31

原创 C++统计文件夹中文件个数

代码来源于网络#include<io.h>#include <opencv2/opencv.hpp>#include <iostream>#include <ctime>#include <vector>using namespace std;using namespace cv;void getFiles(string path, vector<string>& files){ intptr_t

2020-09-06 17:13:10 301

原创 QT槽函数只声明不实现会出现errorLink2019的问题

QT槽函数只声明不实现会出现errorLink2019的问题

2020-08-20 11:04:27 65

原创 Anytime Stereo Image Depth Estimation on Mobile Devices阅读与复现笔记(1)

最近对深度学习相关的视差求解方法比较感兴趣,并主要对这篇来自ICRA2019的文章进行了阅读和仿真。我习惯带着敬畏的心学习自己不会的知识,还请大佬们轻喷。AnyNet与PSMNet的视差计算结果比较在这里插入图片描述...

2020-08-05 10:03:31 149 2

原创 论文阅读:Disp R-CNN:Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation

Disp R-CNN: Stereo 3D Object Detection via Shape Prior Guided Instance Disparity Estimation摘要(理解)作者提出一种用于3D目标检测的名为disp R-CNN 的网络。该网络相较于一般的3D目标检测模型,不同点主要在:该网络仅估计感兴趣目标的视差;学习==类别特定的形状先验(category-specific shape prior )==以获得更精确的视差估计;可以不使用LiDAR提供的点云,而使用sta

2020-06-29 15:24:52 594

原创 变焦单目论文阅读笔记
原力计划

文章目录双焦距光学成像模型双焦成像原理视场转像本篇小结主要参考南京大学王元庆老师的论文,总结阅读论文时得到的必要的知识双焦距光学成像模型从一个角度拍摄的多幅图像的光学特征变化来计算各像点的深度值。Carnegie Mellon 大学机器人学院的Y Xiong, Steven A Shafer 提出的采用离焦模糊的深度信息提取办 法, 从图像的离焦模糊特征中提取景像的深度信息;广岛大学的N Asada 等人提出的基于变焦模糊的深 度信息获取方法则是通过改变摄像机镜头的焦距来获得多幅画面的, 从中提取出景

2020-06-10 11:26:14 121

原创 图片的光照不均匀处理

文章目录图片内容关于亮度和对比度图片内容目前来看,对于布匹的计算能力较好。细节越突出,计算结果越好。有些图片内容,相机的聚焦能力以及分辨率不够的话,就会计算的不够好。一般做3D的人都是比较追求高分辨率关于亮度和对比度第5,6与tmp的差距最小...

2020-06-07 21:28:35 1363

原创 交叉编译opencv 3.4.9 虚拟机(Ubuntu18.04)到NanoPi Neo4
原力计划

sudo apt-get update sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo apt-get in

2020-06-03 11:28:14 337

原创 双目立体视觉三维重构总结
原力计划

文章目录基本步骤相机标定图像采集立体校正匹配算法三维重构点云去噪点云显示总结前面多多少少记录一些相关知识,由于相关工作还在继续,加上网上的教程总不是十分完善。这里做一个总结,希望自己能够加深对这个过程的整体的理解与认识。基本步骤相机标定图片采集立体校正匹配算法三维重构点云去噪点云显示相机标定使用的Matlab标定工具箱,需要注意的点有:每个相机单独标定,之后再标定双目相机的位姿标定单目时需要选择畸变个数,一般如果不是鱼眼镜头,只需要标定两个径向畸变、两个切向畸变。图像采集,

2020-05-27 17:04:46 570

原创 Matlab双目标定结果用于opencv(C++)

矩阵的对应关系没有对应好,导致我的计算结果相差很多,这里记录一下矩阵是如何对应的Matlab 的双目标定结果包括三部分:两个相机的内参数、畸变以及两个相机之间的旋转R、平移T。将matlab标定的结果写入xml文件参考了网上的代码function writeXML2(cameraParams,file)%writeXML(cameraParams,file)%功能:将相机校正的参数保存为xml文件%输入:%cameraParams:相机校正数据结构%file:xml文件名%说明在xml文

2020-05-25 12:11:24 240

原创 梳理GAN
原力计划

我参考训练生成动漫头像运行了一次GAN的代码,虽然对于GAN的模型略有了解,但是对细节理解仍然不够充分。问题小白代码结构?GAN包括生成器与判别器,上述代码包括两部分,model.py和train.py。model.py中定义了两个网络,分别是生成器NetG、鉴别器NetD。训练GAN的时候将model.py中的NetG NetD引入到train.py中。model.py如何构建网络模型?...

2020-04-29 00:20:55 155

原创 双目相机标定精度测量:匹配点对(2D)的距离(3D)与实际距离的差

使用边长为25mm的12*9的标准棋盘格标定相机#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;///双目相机,y方向存在误差Mat cameraMatrixL = (Mat_<float>(3, 3) << 23...

2020-04-22 20:41:26 419 2

原创 两个类别间可靠性差异的差异指标

两个类别间可靠性差异的差异指标用于可靠性分类的差异指标本部分提出一种基于矩矩阵分析的差异指标用于可靠的分类。在此,可靠性用于描述矩矩阵相对于分类样本分组的可变性。特别地,如果从训练集生成的矩矩阵与验证集生成的矩矩阵具有相同的属性,则称该矩矩阵在训练集和验证集之间是可靠的。需要注意的是,模型参数,例如提出的差异指标,由验证集确定。然而,一个分类器的泛化性能是基于测试集获得的。验证集和测试集之间没...

2020-04-12 21:41:32 335

原创 退出函数时Mat.release()随机触发中断

网上大多数原因为:opencv的库没有配置好,所以首先检查opencv的各目录是否填写正确而我当然不会出配置错误这种低级错误啦~我是因为访问Mat的内容出错定义指针类型与Mat内的数据类型不一致导致的Mat a=Mat(2,2,CV_16S);short *b=a.ptr<short>(1)[1];上述正确我把short 类型的数据写成了float。。导致内存溢出了应该...

2020-03-22 20:51:05 236

原创 QSemaphore信号量实现多线程while循环的单次循环同步

定义全局信号量,我根据生产者和消费者的思路为两个测试分别定义了信号量。QSemaphore semaphore(1);//信号量定义,一次acquire使用一个资源QSemaphore semaphore_(1);//信号量定义,一次release释放一个资源//我们需要实现单次循环的同步,所以输入为1vector<int> flag0;最主要的逻辑在于:在本线程acqui...

2020-03-19 10:22:22 122

原创 三维重构(13):SGM经典算法解读

Stereo Processing by Semi-Global Matching and Mutual InformationSemi-Global Matching Algorithm is proposed by “Stereo Processing by Semi-Global Matching and Mutual Information” published in 2008. Th...

2020-03-08 20:15:20 310

原创 三维重构(12):BM算法流程(参考opencv源代码)

通过阅读源码与相应注释滑窗以图片的像素为中心,从上到下、从左到右依次滑动对每一个像素都计算出不同视差ddd对应的SAD上述计算完成后,计算出在一个滑窗范围内所有像素对应相同的ddd时SAD的和从中选择使SAD的和最小的视差ddd对最优ddd进行检验:检验该区域内纹理值是否大于阈值,否则无效;检验最优ddd是否唯一,否则无效;通过检验则视为当前像素的视差。滑动窗口,重复3-5完成对所有像...

2020-03-08 11:56:11 263 1

原创 PCL1.8.1安装包(VS2019,x64)、点云库PCL学习教程+代码

链接:https://pan.baidu.com/s/1XDBLjyhoei3m93rK1yqoiw提取码:pc2y如果没有做QT界面的需求,安装教程参考这篇博文,不需要理会VTK的压缩包。如果需要在QT中界面中显示点云,则需要将上述VTK压缩包中的内容代替你安装好的PCL库中的VTK添加到VS的属性配置页内(VTK可以随便放置,只要配置路径不出错就行,我这里有配置好的release x64...

2020-02-27 10:36:52 1468 2

原创 三维重构(10):PCL点云配准

点云配准主要针对点云的:不完整、旋转错位、平移错位。因此要得到完整点云就需要对局部点云进行配准。为了得到被测物体的完整数据模型,需要确定一个合适的坐标系变换,将从各个视角得到的点集合并到一个统一的坐标系下形成一个完整的数据点云,然后就可以方便地进行可视化,这就是点云数据的配准。点云配准技术通过计算机技术和统计学规律,通过计算机计算两个点云之间的错位,也就是把在不同的坐标系下的得到的点云进行坐标变...

2020-02-26 17:34:11 562

原创 PCL库使用过程中遇到的编译错误

pop_t找不到标识符参考这个typedef unsigned long long pop_t语句转移到#if __GNUC__之前“pcl::KdTreeFLANN::param_radius_”使用未定义的 struct“flann::SearchParams”这个是opencv库和pcl库两个库的flann库发生冲突导致的,网上推荐在包含目录中,先包含pcl库的flann然后再包含o...

2020-02-26 17:11:13 457 2

原创 三维重构(9):PCL点云分割

点云分割是根据空间、几何和纹理特征对点云进行划分,使得同一划分内的点云拥有相似的特征。PCL实现的分割算法是鲁棒性比较好的聚类分割 和基于随机采样一致性的分割。聚类分割点云库PCL学习教程:在聚类方法中每个点都与一个特征向量相关联,特征向量又包含了若干个几何或者辐射度量值。然后在特征空间中通过聚类的方法(如K-means,最大似然或模糊聚类)分割点云数据。聚类分割基本原理:考察mmm个数据点,...

2020-02-25 18:10:23 453

原创 HMM study:认识混合高斯模型与EM算法(附Python仿真)

混合高斯模型Gaussian Mixed Model 表示多个高斯分布的线性组合,设有随机变量X\textbf{X}X,则混合高斯模型表示如下p(x)=∑k=1KπkN(x/μk,∑k)p(\textbf{x})=\sum_{k=1}^K \pi_kN(x/\mu_k,\sum_k)p(x)=∑k=1K​πk​N(x/μk​,∑k​)其中πk\pi_kπk​可以认为是高斯分布的权重,N(x/μk...

2020-02-24 11:35:57 272

原创 三维重构(8):PCL点云滤波

通过双目立体视觉得到的重构点云,一般具有较多的噪声点。造成这一现象的原因主要是,算法匹配点错误导致视差计算错误。SGBM算法是传统双目立体视觉中效果较好的,但是仍然具有较多的噪声点。所以我们希望通过滤波去除部分噪声点(毕竟不可能完全去除)PCL滤波器PCL中有多种滤波器比如:直通滤波、双边滤波、体素格滤波等。而此次去除离群点则使用了statisticalOutlierRemoval滤波器。同样...

2020-02-21 16:19:41 315

原创 HMM study: Viterbi 算法的Python简单实现

# viterbi algorithm(pi,A,B)import numpy as np# -*- codeing:utf-8 -*-__author__ = 'Vera'Hmm_ob= [0, 1,2]Hmm_hdn=['runny', 'rainy']A=np.array([[0.7, 0.3], [0.4, 0.6]])B=np.array([[0.1, 0.4, 0.5...

2020-02-15 17:13:31 122

原创 (结构光代码篇)相机标定+投影仪标定

主要关注操作相机标定利用OpenCV(单目)相机标定函数calibrateCamera(),仅需要已知角点的世界坐标、角点的图片坐标、图片的尺寸,代入函数即可得到相机的内外各类参数。世界坐标的获取以棋盘格所在平面作为世界坐标系的xoyxoyxoy平面,原点可以选择为棋盘格的第一个角点(随便选)。需要已知:棋盘格中含有内角点的个数Size board_size=Size(13,7)格...

2020-01-04 16:02:14 1677 15

原创 三维重构(7):双目立体视觉梳理(细节处理,算法理解)

三维重构学习笔记(7):双目立体视觉梳理(细节处理,算法理解)在上一篇博客中,遗留下来以下问题:视差图填充,视差图格式,深度范围限制(防止出现inf出现,导致视图显示不完整),视差图转色温图(为了显示好看)另外,在保存视差图的时候发现:视差图的精度会受格式的影响,有的博主说可以将视差图同意保存xml类型的数据。还有SGBM算法是怎么工作的?如何计算得到视差的,函数可以随意调用,但是参数设...

2020-01-03 21:27:07 379

原创 (结构光)单目+结构光三维重构总体结构

记录一次单目+结构光三维重构的历程博主是那种动手能力较差的人(超级容易踩坑,一个坑踩超级久),独自搭建一个单目+结构光系统是真的挺挑战的。在自己做的过程中,最让人心累的就是,我结果不好的话,会认为是投影仪不够好才标定出问题的bulabulabula…,基本上卡着我的点都是诸如“怎么从投影仪投射一张正常的图片”这种让大佬们感觉很低级的问题。其实我的确很容易被所谓“低级问题”卡住,这也是需要进步的...

2020-01-03 21:24:24 1743 9

kalman_study_EKF3D.rar

三维情况下的kalman跟踪系统,其中状态量包括x,y,z三个方向的位移和速度,测量方程为空间两点求距离的方程。

2019-09-25

kalman_studyEKF.rar

基站跟踪单目标程序,该目标在x,y两个方向上有运动,且加速度不同的时间段发生变化。

2019-09-24

kalman_study.rar

kalman滤波,C++代码,应用于变速一维的目标变速运动,可以根据自身需求继续扩展。

2019-09-23

veryfastTM.m

Very fast template matching论文中提到的算法的metlab代码,输入模板和图片,输出模板匹配结果

2019-05-10

Schweitzer2002_Chapter_VeryFastTemplateMatching.pdf

快速模板匹配论文,以integral image为基础的快速模板匹配算法。博客中没有涉及的推导,在这里可以找到。

2019-05-10

空空如也

空空如也

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

TA关注的人 TA的粉丝

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