自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (9)
  • 收藏
  • 关注

原创 如何将OpenCV的mat图像转换为OpenGL中的纹理并显示

如果你还不知道什么是纹理,可以先看一下LearnOpenGL-CN中的纹理章节。简单的思路就是用OpenGL画一个矩形,然后将一张图片作为纹理贴到这个正方形上。为了能够将纹理映射(Map)到三角形上,我们需要指定三角形的每个顶点各自对应纹理的哪个部分,这样的话每个顶点都会关联一个纹理坐标。首先,需要定义好矩形(两个三角形)的顶点和纹理坐标的对应关系:在OpenGL中,所有的坐标都是3D坐标(x, y, z),OpenGL会把所有的3D坐标转换为所谓的标准化设备坐标,坐标在范围为[-1.0, 1.0],

2020-10-27 10:58:36 2777

原创 C++中的多态行为

本文参考了下列博客:1. C++封装、继承、多态2. C++ protected访问权限问题封装、继承、多态是C++的三大基本特性。封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);封装和继承的目的都是为了"代码重用",多态则是为了实现另一个目的:接口重用。多态说的简单一些就是"相同的调用产生不同的行为"。这句话具体的涵义在下面会通过例子来解释。一、虚函数C...

2019-12-04 16:18:26 288

原创 windows上共享内存操作

windows共享内存共享内存主要是通过映射机制实现的。windows下进程的地址空间在逻辑上是相互隔离的,但是在物理上确实相互重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。在windows程序开发过程中,当多个进程之间需要访问共同的数据的时候,最好的方式就是使用共享内存进行处理。编写共享内存的程序模式上基本上是一样的,大致为下面几个过程:调用CreateFileMappi...

2019-05-27 17:46:26 6596

原创 第7讲2 --- 求解相机的运动

上一篇博客中学习了特征提取和匹配的概念,并且调用OpenCV库实现了ORB特征的提取和匹配。找到了匹配点后,我们希望能够根据匹配的  点对 来估计相机的运动。一共有三种方法可以用来估计相机的运动,分别为对极几何约束、PnP、ICP。这三种方法分别可以用来处理不同情况下的相机的位姿估计。当相机为单目的时候,我们只知道2D的像素坐标,因而问题是根据两组2D点估计运动。该问题用对极几何来解决。...

2018-10-25 15:17:12 2940 3

原创 Gitkraken收费解法办法

Gitkraken好像是从6.5.5开始收费的,最新下载的gitkraken都是7.0.1版本。直接用回老版本就可以了。我直接下载的6.5.0版本,下载链接在最后。步骤:下载安装即可创建快捷方式直接走开始目录打开Gitkraken时,默认是通过"C:\Users\xxx\AppData\Local\gitkraken\Update.exe"来打开的,它每次都自动更新到最新的版本,所以下载老版本也是白瞎了。在目录"C:\Users\xxx\AppData\Local\gitkraken"有个文.

2020-07-06 19:57:21 4921 3

原创 vscode配置mingw打造轻量级c++ IDE

目录安装vscode安装vscode插件: C/C++下载mingw,并安装配置环境变量配置你的个人工作目录开始coding1. 安装vscodewindows系统上是傻瓜式安装,直接官网下载安装即可。没什么好说的。2. 安装c/c++插件这个是必须的,打开vscode,点击"Extensions"按钮,然后输入"c/c++"搜索即可找到。安装后重启vscode生效。3. 安装mingw也是搜索安装即可,考虑到部分人没有梯子下载速度较慢,这里给一个百度云链接:链接:https:

2020-07-04 11:51:43 955

原创 istringstream的使用

C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含: #include <sstream>:istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。istringstream的构造函数如下:istringstream::istringstream(string str);示

2020-05-19 15:46:45 1044

原创 C++ 位运算总结

位运算的运算对象只能是整型或者字符型数据。C++ 的位运算符:按位与: &按位或: |按位异或: ^按位取反: ~C++中的移位运算:移位运算是指将二进制信息串作为整体移动。左移运算符: 低位补0,高位被移出来的位抛弃,左移1位在左移没有丢失高位信息的情况下相当于乘以2.右移运算符: 与左移相反,对于小整数,每右移1位,相当于除以2。在右移时,需要注意符号位问题。对无符号数据,右移时,左端空出的位用0补充。对于带符号的数据,如果移位前符号位为0(正数),则左端也是用0补充;如

2020-05-18 21:52:49 661

原创 Python新开的一个控制台执行cmd命令

import osimport timeimport subprocessdef get_cmd(): commands = [] cmd = "ffmpeg -re -i ./%d_0.mp4 -r 25 -vcodec copy -f flv rtmp://localhost:1935/free-view/camera%d" for i in range(1, 31): tmp_cmd = cmd % (i, i) commands.app

2020-05-15 20:40:37 1148

原创 数据结构 之 图总结

1、图的基本概念按照有无方向分为无向图、有向图。无向图中如果任意两个顶点之间都存在边则称为无向完全图,含有n个顶点的无向完全图含有n(n−1)/2n(n-1)/2n(n−1)/2条边;有向中如果任意两个顶点之间都存在两条方向相反的边则称为有向完全图,含有n个顶点的有向完全图含有n(n−1)n(n-1)n(n−1)条边;简单图:图中没有重复边以及顶点到自身的边(环)图的边(无向边或者有向边)...

2020-04-17 20:08:27 548

原创 win10上如何打包在裸机上可以直接运行的文件

因为实验室在进行项目交付的时候总要通过代码编译,感觉太麻烦了。然后就在网上找了几篇帖子,按照里面的方法把可执行文件以及其依赖的动态库都打包出来,然后在裸机上可以直接运行。说明:并没有打包成安装程序,所以第三方库的Path环境变量还是要自己配置,但是相比于从源码编译已经方便太多。参考博客:vs查看exe文件依赖的dll文件qt打包出现找不到Qt platform plugin "win...

2020-01-16 18:55:31 731

原创 Ubuntu系统使用常见问题

此篇文章记录在使用ubuntu系统时候的一些操作笔记,会长期补充。目录:sh运行脚本需要sudo权限时自动输入密码1、sh运行脚本需要sudo权限时自动输入密码以sudo apt-get update指令为例,如何在脚本中实现自动输入密码。(1) 使用管道: 上一个命令的stdout接到下一个命令的stdin#!/bin/bashecho your_password | sudo...

2019-12-28 16:20:17 128

原创 Mnist数据集介绍

Mnist数据集已经是一个被"嚼烂"了的数据集了,很多关于神经网络的教程都会对它下手。因此在开始深度学习之前,先对这个数据集介绍一下。Mnist数据集图片格式介绍Mnist数据集分为两部分,分别含有60000张训练图片和10000张测试图片。每一张图片包含28*28个像素。Mnist数据集把代表一张图片的二维数据转开成一个向量,长度为28*28=784。因此在Mnist的训练数据集中mnis...

2019-10-31 17:17:51 23746 3

原创 常用的C++小代码段

1、win10上在程序中调用.exe文件,并获取返回值这里只比较其中的两种方式:WinExec和system。它们的区别是:WinExec()有两个参数,第一个参数是要执行的cmd,第二个参数可以设置窗口如何显示。但是要注意的是WinExec()是不同步的进程调用,一经调用立刻就会返回一个值(这个值用来表示是否调用成功),如果调用成功则返回值大于31,调用失败则返回值小于31。system...

2019-10-31 09:24:46 1211

原创 ubuntu16.04上制作软件图标

下载了一个gitkraken,解压后内容如下:每次启动的时候都要从Terminal中输入进入该目录,然后通过./gitkraken启动,有点麻烦。所以就制作了一个运行图标。关于一些基本概念,大家可以参考参考博客1,这里直接给出来我的gitkraken.desktop的内容了:[Desktop Entry]Encoding=UTF-8Name=gitkrakenComment=git ...

2019-09-30 14:55:06 343

原创 c++使用jsoncpp处理json格式数据

jsoncpp是一个轻量级的用于处理json格式数据的C++库。1、安装jsoncpp直接通过命令行的方式来安装:sudo apt-get install libjsoncpp-dev安装完成之后,头文件在:/usr/include/jsoncpp/目录下;库文件在:/usr/lib/x86_64-linux-gnu目录下。2、使用jsoncpp在ubuntu16.04系统上,...

2019-08-12 12:02:31 1856

原创 ubuntu16.04环境配置

1、cmake以cmake 3.12.0为例。下载cmake3.12.0并解压。1. cd 到cmake3.12.0所在目录2. sudo ./bootstrap3. make -j84. sudo make install完成后可以使用cmake --version查看cmake的版本。默认安装目录为/usr/local/bin目录下。2、opencv3.4.0+opencv_c...

2019-08-11 10:43:26 225

原创 Attentive Generative Adversarial Network for Raindrop Removal from A Single Image(2018CVPR翻译)

为了节省一点篇幅,我会删去原文中一些东西,不影响大家理解文章,同时我会保证英文和中文是对应的:Attentive Generative Adversarial Network for Raindrop Removal from A Single Image(2018CVPR)Abstract(摘要):Raindrops adhered to a glass window or camera ...

2019-06-29 22:03:14 3470 1

原创 vscode使用相关

1、在Ubuntu16.04上使用vscode的时候,#include包含头文件的时候经常会出现下图中的错误:这是因为vscode没有找到相关的头文件定义。这个问题虽然不解决也能够编译成功,但是当我们要调用这个头文件中的功能时,没有智能提示或者自动补全功能。因为vscode根本就不知道这个文件中的内容。要解决这个问题,需要配置c_cpp_properties.json文件中的IncludeP...

2019-06-10 22:09:53 901

转载 求职经验贴收藏

https://blog.csdn.net/weixin_39752599/article/details/82939795

2019-04-22 20:12:16 199

原创 Ubuntu16.04上配置安装ceres

这篇博客主要介绍如何配置安装ceres库并通过使用ceres库拟合一条二次曲线来介绍ceres库的简单使用参考了以下博客:https://blog.csdn.net/weixin_39373577/article/details/81285420一、安装依赖项sudo apt-get install liblapack-dev sudo apt-get install libsuites...

2019-03-26 22:10:21 7110 4

原创 vs2015使用SiftGPU

环境:win10、vs2015、x64编译过程参考:http://www.cnblogs.com/wangguchangqing/p/10132052.html https://www.cnblogs.com/gaoxiang12/p/5149067.html需要的第三方库:Glew DevIL-Windows-SDK-1.8.0使用:项目属性设置include路径到Sif...

2019-03-20 11:14:44 942

原创 三维空间刚体运动的描述总结

三维空间刚体运动的描述方式有很多种,大概是:旋转矩阵、平移向量--->欧式变换矩阵--->旋转向量--->欧拉角--->四元数下面对它们简单的做一个整理,顺一下思路。欧式变换中,坐标系的变换有:旋转、平移两种情况(只有旋转、只有平移、两者都有)1、旋转矩阵、平移向量假设此时,相机坐标系相对于世界坐标系的旋转矩阵为R、平移向量为t,则这里要注意的就...

2019-03-18 20:31:25 3130 1

原创 win10上VS 2015配置eigen3

首先官网下载eigen3。下载完成之后解压,里面的Eigen文件夹下的东西就是我们要用的。然后,新建一个文件夹命名为eigen3,并将里面的Eigen文件夹拷贝到eigen3的目录下面。新建VS工程,注意一定要将“解决方案配置改为x64”,如下图:然后,配置系统的include属性,如下图:这样,环境就配置好了。使用下面的程序测试一下:#include &lt;i...

2019-03-13 23:16:48 6651 9

原创 AirSim和UE4的环境配置

关于具体的环境配置网上有很多的资料,之前也配置过这个环境,但是没有好好的整理过,每次遇到问题都是瞎搞,然后莫名其妙的解决了。这次的博客主要是把配置的过程要注意的地方记录一下。1、前提条件cmake 3.10.3、Visual Studio 2015 professional update 3、UE4.16.3这是我的机器上的环境,作为参考。2、编译AirSim源码首先要到Air...

2019-03-06 10:22:32 3059 3

原创 c++中的main函数的argc, argv参数的意义

如果用的IDE是Visual Studio,要传入命令行参数的话,需要对项目属性进行一些简单的设置。设置如下:测试代码如下:#include &lt;iostream&gt;using namespace std;int main(int argc, char **argv) { cout &lt;&lt; "argc = " &lt;&lt; argc &lt;&lt...

2019-02-19 11:32:16 359

原创 Python中__name__

参考:https://www.cnblogs.com/lvxiuquan/archive/2012/07/09/2582437.html在c/c++/Java中,main是程序执行的起点。在Python中,也有类似的运行机制,但是方式却截然不同。Python 中使用缩进对齐代码来组织代码的执行,因此没有缩进的代码(非函数定义和类定义)都会在载入时自动执行,这些代码可以认为是Python的m...

2019-01-26 17:31:53 161

原创 Python_OpenCV进行图像的简单操作

1、使用numpy的item()、itemset()操作图像像素处理灰度图像:#coding:utf-8import cv2import numpy as np#读取一张灰度图gray_image = cv2.imread("cat.jpeg", 0)cv2.imshow("before", gray_image)rows = gray_image.shape[0]col...

2019-01-22 22:21:57 662

原创 Python3.x+OpenCV3.3

最近把Python的基础语法过完了,现在每天大概花一个半小时做一下Python上OpenCV的基本操作。一、环境配置1、安装pip工具       pip是Python管理包的一个工具,它可以让你很方便的查找、安装、卸载包。通过pip --version可以查看pip的版本。       使用pip安装包的语法:pip install SomePackage2、安装opencv...

2019-01-21 18:14:18 348

原创 矩阵的奇异值分解

矩阵的奇异值分解即singular value decomposition(SVD分解),今天在准备期末考试的时候解决了学习SLAM过程中的一个疑问,不过快考试了也没有时间整理,这里先把SVD的相关笔记记录一下,免得搞丢了。等过几天考完试了,会把它和SLAM中对应的知识整理到一起去。...

2019-01-05 19:36:24 289

原创 OpenCV内置的超分辨算法测试

最近在做超分辨相关的东西,从网上了解到OpenCV有自带的超分辨算法,于是就有了下面这些尝试。1、利用OpenCV驱动USB摄像头拍摄视频以及读取视频        读取视频文件或者摄像头视频需要使用OpenCV中的VideoCapture类,保存视频或者摄像头视频到本地磁盘,需要使用OpenCV中的VideoWriter类,使用非常简单。首先来看一下如何VideoWriter类:...

2018-11-22 22:10:45 4418 3

原创 RGB图像通道值分离、最邻近插值法、双线性插值法

在开始程序编写前,先要理清楚下面几个概念:1、OpenCV创建图像时,使用的CV_8UC1、CV_32FC3等参数的函数?CV_[bit_depth] (S|U|F) C[number_of_channels](1) bit_depth  --- 代表一个像素点在内存中所占的bit数比如CV_8UC1就代表一个像素点在内存中所占的bit数是8,则像素值的取值范围为0~255(2...

2018-11-20 22:26:18 2690

原创 第7讲3 三角测量

之所以把SLAM初始化和三角测量放在一起是因为它们之间有一定的关系,理解了三角测量之后才能理解初始化。三角测量       在得到了相机的运动之后,下一步我们需要用相机的运动来估计特征点的空间位置,但是在单目SLAM中,仅通过单张图像是无法获得像素的深度信息的,我们需要用三角测量(三角化)的方法来估计地图点的深度。先来看一些什么是三角测量?三角测量是指通过在两处观察同一个点的夹角,来确...

2018-10-30 15:00:34 11677 8

原创 第4讲 李群和李代数2

第一部分:SO(3)和so(3)1、SO(3)对应的李代数      SO(3)对应的李代数是定义在上向量,我们记作。根据上一篇博客中的推导,可以知道,每个都可以生成一个反对称矩阵:在此定义下,两个向量的李括号(运算)为:由于和反对称矩阵关系很紧密,在不引起歧义的情况下,可以说的元素是三维向量或者三维反对称矩阵,即:到此,我们已经清楚了SO(3)对应的李代数的内容,...

2018-10-18 15:41:57 853

原创 第4讲 李群和李代数

什么是群?什么是李群?群是一种集合加上一种运算的代数结构。这种运算必须满足“凤姐咬你”这四条性质。常见的群有:特殊正交群,特殊欧式群,它们都对矩阵乘法构成群。如果对上一讲的内容有印象的话,会回忆起来:三维旋转矩阵构成了特殊正交群 变换矩阵构成了特殊欧式群和对矩阵乘法都是封闭的,矩阵乘法对应着旋转或变换的复合,两个旋转矩阵相乘表示做了两次旋转、两个变换矩阵相乘表示做了两次欧式变换...

2018-10-15 22:34:21 2984 2

原创 c++模板-template

为什么需要模板?       我们使用过重载函数,c++可以根据函数的函数和所属类的不同正确的选择调用哪个参数。比如,我们要实现一个函数,完成int、float、double三种类型的数据的加法,那么我们可以重载add函数,来实现这个功能。函数原型如下:int add(int, int);float add(float, float);double add(double, doubl...

2018-10-11 22:18:19 149

原创 #define和#ifdef的使用

之前没有写过什么大工程,所以没有怎么关注过条件编译。今天在看代码的时候发现里面用到了#define和#ifdef来调试代码。于是就看了一下。顺便再做个笔记。先介绍一下条件编译:       条件编译是根据实际定义的宏(可以认为是某一类条件)进行代码静态编译的手段。可以根据表达式的值或者某个特定宏是否被定义来确定编译条件。在看几个预编译指令(预编译指令很多,这次只介绍用到的三个):#...

2018-10-10 21:48:00 7335

原创 第5讲 相机与图像

先笼统的看看图像是怎么形成的:在计算机中,一张照片由很多个像素组成,每个像素记录了色彩或者亮度的信息。三维世界中的一个物体反射或发出的光线,穿过相机光心后,投影在相机的成像平面上。相机的感光器件接收到光线后,产生测量值,就得到了像素,形成了我们见到的照片。相机模型相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程可以用一个几何模型来进行描述。这个模型有很多种,其...

2018-10-07 17:37:03 1849

原创 ORB SLAM2的配置

硬件:1、电脑环境:Ubuntu 16.04+ROS-Kinetic-desktop-full2、笔记本自带的摄像头(其他USB摄像头也可以)一、创建ROS工作空间mkdir -p ~/catkin/srccd catkincatkin_make二、下载USB驱动地址:https://github.com/ros-drivers/usb_cam.git下载之后解压...

2018-10-05 11:14:48 908

原创 第8讲 视觉里程计2 --- 光流

特征点法的缺陷尽管特征点法在视觉里程计中占据主流地位,但研究者们还是认识到它至少有以下几个缺点:(1)关键点的提取和描述子的计算十分耗时。(2)使用特征点时,忽略了除特征点以外的所有信息。一幅图像有几十万个像素,而特征点仅有几百个,因此只使用特征点丢弃了大部分可能有用的图像信息。(3)相机有时候会运动到特征缺失的地方,这些地方往往没有明显的纹理信息。例如:有时候我们会面对一堵白墙,...

2018-09-29 19:48:02 1555

OpenGL_Show_Camera.zip

用OpenCV获取摄像头图像,转换为OpenGL中的纹理,并使用OpenGL显示。

2020-10-27

Gitkraken_oldversion_6.5.0.zip

Gitkraken6.5.0版本,直接下载安装即可。注意不要更新,否则自动升级到7.0.1,就白费力气了。

2020-07-06

Binocular-camera-calibration-master.zip

用于双目相机标定的图片,来自网上,所以积分设置为0。用于双目相机标定的图片,来自网上,所以积分设置为0.用于双目相机标定的图片,来自网上,所以积分设置为0.

2020-06-14

MiddEval3.zip

双目立体视觉数据集,内含标定文件。双目立体视觉数据集,内含标定文件。双目立体视觉数据集,内含标定文件。双目立体视觉数据集,内含标定文件。双目立体视觉数据集,内含标定文件。

2020-06-14

基于QT的自动关机的工具

自己编写的自动关机的小软件,基于QT平台的,代码很短。

2019-04-25

windows上编译好的ceres库

windows上编译好的ceres库,可直接配置使用。README.txt中提供了配置方法。

2019-04-08

win64上编译好的SiftGPU.lib和相关dll文件

下载好了之后参考我的博客:https://blog.csdn.net/llfjcmx/article/details/88683104,即可看到Sift特征提取和匹配的效果

2019-03-20

RGB图像通道值分离、最邻近插值法、双线性插值法c++实现

基于OpenCV实现的RGB图像通道值分离、最邻近插值法、双线性插值法。

2018-11-20

空空如也

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

TA关注的人

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