自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基本操作积累

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

2020-03-16 09:30:06 292

原创 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 219

原创 认识多帧2(未完):基于纹理细节估计的多帧图像超分辨率重建算法研究

引言这是认识多帧的第二篇文章,是华中科技大学的博士论文。超分辨率重建算法研究,超分辨率重建的目的是通过融合一幅或多幅同一场景下的已知图像信息建立一幅高分辨率的图像,该问题是一个由输出信息求输入信息的数学物理反问题。该文从观测模型和先验模型入手,探讨了观测模型和先验模型在重建图像边缘和细节中的作用,提高多帧超分辨率重建算法的准确率。研究现状截取一段我自己感兴趣的(看得懂的~)观测、先验模型观测模型描述图片从高清到低清的过程,和认识多帧1中描述的图像退化(包括图片模糊和图片噪声)类似,这里作者细分观

2021-07-28 09:58:03 1303

原创 C++ particle code translation

C++ particle code translation单纯TM算法步骤在既有的代码上进行修改:图片与模板的输入迭代次数与方式的修改单纯TM算法步骤根据图片大小和particle的个数,随机初始化particle的位置,该位置信息作为固定信息;对pre_particle的内部参数根据实际情况进行赋值,即,即使位置信息初始化完成;将pre_particle的值赋给particles;计算particles中粒子对应的位置的hist,并与template进行比较,由此决定各partic

2021-07-28 09:56:19 273

原创 认识多帧1:多帧图像复原算法研究

引言阅读硕士论文,简单了解多帧图像处理算法,本篇为多帧图像复原算法认识图片退化现象主要分为两类:图像噪声和图像模糊,噪声具有随机性而模糊具有固定性。模糊根据成因可以分为两类:散焦模糊、运动模糊。散焦模糊由相机与景物之间的相对移动或者相机自动对焦不精确造成;运动模糊由成像传感器与被拍摄景物之间的相对移动造成,其中若取景相机和背景没有发生移动,而被拍摄物体运动,则图像存在局部模糊;若景物静止而相机发生晃动,则会出现全局模糊。手机相机拍摄的图片通常会出现全局模糊,毕竟手抖是自然的。去除图像噪声和图像模糊使

2021-04-28 14:58:06 3085 1

原创 C++探幽:类的继承

引言使用QT开发界面时公有继承了自己实现的相机类、并且由于界面程序稍微复杂了些,相机类中的一些函数需要重写,使用到了多态。感慨:之前只知道继承、重写别人的类或者函数,没想到有一天终于想到了继承自己写的类,真的会简化编程啊~并且这里承接上一篇方法基类的析构函数声明为虚函数——因为基类的指针指向派生类时,若基类的析构函数不声明为虚函数,在析构时只会调用基类的析构函数而不会调用派生类的虚构函数,从而产生内存泄露;基类中的某些需要重写的函数声明为虚函数。我的项目具体实现相机类的析构函数声明为虚

2021-04-23 15:03:31 149

原创 Ubuntu软件自启动说明

引言系统启动时自动运行用户指定的软件,以此减少用户操作,增加用户友好体验。方法假设我们已经拥有了一个可执行程序,在路径path=/home/pipath=/home/pipath=/home/pi下有Cp,一般需要准备两个文件,分别为为Cp配置运行环境的.sh文件、和一个触发自启动的.desktop文件——名字自取即可。.sh文件的内容为:chmod 777 /dev/ttyS4chmod 777 /home/pi/Cp/*. /usr/bin/setqt5env/home/pi/Cp &

2021-04-19 09:46:22 149

原创 资料整理:传统线结构光标定

一种线结构光标定方法该文是天津大学微电子学院发表的论文线结构光系统标定的是线结构光平面在相机坐标系中的平面方程。文章思想首先使用棋盘格标定板标定相机的内参数KKK,然后固定相机和结构光的位置拍摄包含该条结构光的棋盘格的图片,通过特征点在图片中的位置(u,v)(u,v)(u,v)结合相机内参数KKK,可以获得该特征点在相机坐标系中的相对位置(该位置与zcz_czc​成正比),于是该点与相机坐标系的原点可以确定一条直线。同时,通过棋盘格可以标定棋盘格与相机的相对位置,由于张氏标定法假定棋盘格所在的平面

2020-12-22 21:45:26 764

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

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

2020-12-12 11:40:06 531

原创 libgphoto2 plus3

数码相机liveView替代小分辨率相机那个看起来多余的小相机终于可以替换掉了!我成功地将liveView实现了,虽然使用的方法很简单粗暴。将负责小相机的线程停掉。添加一个计时器pre_timer,用于触发我的liveView函数。编写liveview内部实现:主要包括调用gp_capture_preview函数,将图片保存到一个指定的位置,直接读取该图片到Mat中,然后将Mat中的数据放到全局变量中,完成后续的显示。将pre_timer的timeout函数与我的liveView函数连接,并启动

2020-12-10 20:09:06 243 4

原创 libgphoto2 plus2

下采样采集?光圈是否可调?白平衡?

2020-12-10 11:42:51 373

原创 libgphoto2 plus1

相机聚焦关于相机聚焦,libgphoto2提供了两个函数接口:分别是camera_auto_focus()和camera_manual_focus()。我在测试这两个函数的时候,正常的事情并没有发生,相反,奇怪的事情发生了——函数运行了,但是聚焦动作没有发生,然后我不知道发生了什么,也没有个使用手册。采集图片...

2020-12-08 14:34:57 672 2

原创 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 1770

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

被问到的问题

2020-12-03 21:43:30 970

原创 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 94

原创 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 140

原创 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 101

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

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

2020-11-19 10:05:17 149

原创 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 382

原创 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 117

原创 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 3397 2

原创 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 753

原创 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 457

原创 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 3207

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

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

2020-08-20 11:04:27 331

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

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

2020-08-05 10:03:31 859 4

原创 论文阅读: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 1418 1

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

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

2020-06-10 11:26:14 457 2

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

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

2020-06-07 21:28:35 9422

原创 交叉编译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 728

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

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

2020-05-27 17:04:46 3005

原创 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 1272 2

原创 梳理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 314

原创 双目相机标定精度测量:匹配点对(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 4522 11

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

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

2020-04-12 21:41:32 1359

原创 退出函数时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 1127

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

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

2020-03-19 10:22:22 380

原创 三维重构(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 1241

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

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

2020-03-08 11:56:11 1018 2

原创 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 3085 2

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关注的人

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