- 博客(28)
- 资源 (13)
- 收藏
- 关注
原创 C++基础——lambda表达式
Lambda表达式就是一个匿名函数,允许使用函数功能,但无需为这个函数命名lambda表达式格式通常为:[ list ] ( params ) -> ret { func }( params )中为匿名函数的参数,ret为匿名函数返回类型,{ func }中为函数体,其中[ list ]表示含义为匿名函数访问的外部(父作用域)变量,举例如下所示:int main() { ...
2019-11-25 16:35:38 337
原创 PCL学习笔记——点云读取、滤波、下采样、三角化、展示
直接上代码里面有注释code:// Triangulation.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <iostream>#include<pcl/point_types.h>#include<pcl/io/pcd_io.h>#include<pcl/...
2019-08-22 15:20:18 2481 8
原创 OpenCV切割大图(边界扩充,全黑图剔除)
针对分辨率万级以上的图片,无法直接打开,需切割后处理。关键函数:1.图片分割: Rect rect(x,y,width,height) 四个参数对应左上角x,y坐标,切割的宽和高2.边界扩充:如果分割区域和图片区域大小有冲突,会报错,所以需要先扩充图片大小void cv::copyMakeBorder ( InputArray src,OutputArray dst,int t...
2019-07-12 11:14:34 767
原创 PCL学习笔记——利用kdtree计算点云点距均值
template<typename PointT, class Tree >int pcl::search::KdTree< PointT, Tree >::nearestKSearch ( const PointT & point,int k,std::vector< int > & k_indices,std::vector&l...
2019-06-24 11:11:23 4237 10
原创 PCL学习笔记——利用点云配准CorrespondenceEstimationBase()函数找出两部分点云重叠区域
主要Classes:pcl::registration::CorrespondenceEstimation&lt; PointSource, PointTarget, Scalar &gt; Class Template Reference主要函数:template&lt;typename PointSource , typename PointTarget , typename Scala...
2019-04-11 14:11:58 7129 8
原创 C++基础——static关键字的作用
1) 隐藏;(所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也可以访问;如果加了static,就会对其他源文件进行隐藏。)2) 保持变量内容的持久(static变量中的记忆功能和全局生存期);(存储在静态存储区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制...
2019-04-08 21:11:05 184
原创 基于opencv下的双目视觉三维重建与重投影残差计算
一、重投影残差1.1基本概念重投影残差,按照字面意思解释就是在第二次重新投影的二维像素点与第一次投影得到的像素点之间的残差(欧式距离)大小,残差的大小反映的就是测量仪器的精度以及外界因素对测量结果的干扰,即测量误差的大小。如下图所示:假设P是世界坐标系中的一个三维点(真实物点),第一次投影指的就是双目相机C1、C2拍摄时,P点投影到二维像平面上所捕获到的图像点,即图中的P1和P2点;然后利...
2019-03-26 21:39:41 5451 1
原创 PCL学习笔记——PCD文件可视化
比较简单,直接上代码code:// pcl_points_visualization.cpp: 定义控制台应用程序的入口点。//#include &quot;stdafx.h&quot;#include&amp;lt;pcl/visualization/cloud_viewer.h&amp;gt;#include&amp;lt;pcl/point_cloud.h&amp;gt;#i
2018-12-29 16:29:50 6183
原创 C++中sprintf_s和stringstream的使用
在循环读取不同路径文件的时候,这两个方法就起到了很大的作用一、sprint_sint sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] …);用例: char file_path_buffer[40]; sprintf_s(file_path_buffer, "%s%d%s", ...
2018-12-28 20:30:10 1058
原创 PCL学习笔记——点云数据通过贪婪三角投影算法生成三角网格
PointCloud和PCLPointCloud2区别:一、PointCloud:Public Attributes:pcl::PCLHeader header( The point cloud header. )std::vector< PointT, Eigen::aligned_allocator< PointT > >points( The point d...
2018-12-27 11:00:49 4834 2
原创 PCL学习笔记——NormalEstimation估计点云的法向量
主要Classes:pcl::NormalEstimation&lt; PointInT, PointOutT &gt; Class头文件:#include &lt;pcl/features/normal_3d.h&gt;Code:// overlapped_points_normal_estimation.cpp: 定义控制台应用程序的入口点。//#include "stdafx...
2018-11-28 21:06:18 10510 3
原创 PCL学习笔记——getApproximateIndices()函数的调用
getApproximateIndices():得到给定点云的一组近似索引到参考点云void pcl::getApproximateIndices (const typename pcl::PointCloud< PointT >::ConstPtr & cloud_in,const typename pcl::PointCloud< PointT>::Const...
2018-11-14 21:03:24 722
原创 PCL学习笔记——利用kdtree结构找出点云的重叠部分
目的为cloudA中的每个点,在cloudB中找到对应的重叠点(将点与点之间的距离小于某个阈值的点视为重叠点)主要函数:int pcl::OrganizedNeighborSearch&lt; PointT &gt;::nearestKSearch ( const PointCloudConstPtr &amp; cloud_arg,int index_arg,int k_arg,...
2018-11-14 17:46:15 7379 2
转载 C++中memset()用法
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组c:是赋给buffer的值count:是buffer的长度1. memset是以字节为单位,初始化内存块。当初始化一个字节单位的数组时,可以用memset把每个数组单元初始化成任何你想要的值,比如,char data[...
2018-11-11 13:36:12 36655
原创 PCL学习笔记——合并点云
合并点云分为两种类型:第一种是两个点云数据集的字段类型和维度相同,合并之后点云只是点的数量增加了;第二种是两个点云数据集的字段类型或维度不同,但是点的数量相同,合并之后相当于扩展了字段或维度,例如点云A是N个点的XYZ点集,点云B是N个点的RGB点,则连接两个字段形成的点云C是N个XYZRGB类型。一、扩展点的数目相关函数:inline const PointCloud oper...
2018-11-08 13:27:06 10270
原创 PCL学习笔记——利用Octree找出存在于点云B中,不存在点云A中的点
resolution——八叉树分辨率,即最小体素的边长(像素单位)getPointIndicesFromNewVoxels() —— 从前一个缓冲区中不存在的所有叶节点获取索引switchBuffers()——交换八叉树缓存,但是先前点云对应的八叉树结构仍在内存中// pointclouds_octree.cpp: 定义控制台应用程序的入口点。//#include &amp;quot;stdafx.h&amp;quot;...
2018-11-07 21:57:46 1261
原创 PCL学习笔记——Pcl::PointCloud和pcl::PointCloud::Ptr类型的转换
加了ptr的是指针类型,两者可以互相转换1.PointCloud::Ptr—>PointCloudpcl::PointCloud<pcl::PointXYZ> cloud;pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr(new pcl::PointCloud<pcl::PointXYZ>);cloud=*...
2018-11-07 17:38:26 26017 5
原创 PCL学习笔记——读入txt格式点云数据,写入到PCD文件中
读入txt格式点云数据,写入PCD文件中// An highlighted block// pointclouds_octree.cpp: 定义控制台应用程序的入口点。//#include &quot;stdafx.h&quot;#include&amp;lt;iostream&amp;gt;#include&amp;lt;fstream&amp;gt;#include&a
2018-11-07 15:28:20 7130 9
原创 ENVI5.3高分遥感图像道路房屋提取详细流程
首先本处理流程主要针对于高分系列(GF1、GF2)遥感数据展开。每一帧遥感图像下载并解压出来,都会分别得到两个类型的数据,一个是低分率MSS格式的多光谱数据,另一个是高分辨率PAN格式的全色数据图像。1.图像的预处理1.1 MSS多光谱图像预处理(GF1):1) ENVI操作软件中导入MSS格式的多光谱数据; 找到MSS数据并且文件类型是.xml文件: 2) ...
2018-07-17 11:44:25 34424 15
原创 priority_queue用法.Ugly Number2
1.priority_queue的本质是数据结构中的堆 2.头文件在#include&lt; queue&gt; 3.关于priority_queue中元素的比较 使用模板:priority_queue&lt; Type, Container, Functional&gt;,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。 priorit...
2018-07-02 20:53:45 231
原创 左/右手坐标系
由于左右手坐标系总是混淆,因此写个帖子作为记录,方便今后再忘的时候查阅!!!我记这个坐标系的核心就是,无论左右手,以相互垂直的方向张开食指,中指,大拇指,食指的方向指向y轴!大拇指的方向指向x轴!中指的方向就是z轴!如下图所示: ...
2018-06-19 11:08:43 371
原创 C++文件路径基于项目目录下的写法格式
路径格式类似于: String PathName=".\\documents\\filename.txt";
2018-06-07 17:01:09 2130
原创 C++中字符串后面如何添加整形变量
直接上代码:#include "stdafx.h"#include"iostream"using namespace std;void main(){string Name = "数字是";for (int i = 0; i < 10; i++) { char buf[10]; _itoa(i, buf, 10); Name += buf;}for...
2018-06-07 16:02:11 5343
原创 VS2017+Opencv3.2.0SFM实现多目三维重建
实验大致步骤:开发环境:VS2017+opencv3.2.0+opencv_contrib(因为要用到sift算子提取特征点)1.首先需要已知相机的内部参数矩阵f为相机焦距,Cx,Cy分别为相机光心位置;2.以第一次相机的坐标系为世界坐标系,对第一次和第二次拍摄的图片做特征匹配,通过两幅图的特征点可求得对应的本质矩阵E;3.因为以第一个相机坐标系为世界坐标系,所以R1=...
2018-06-02 20:00:25 3443
原创 gflags_static.lib 无法解析的外部符号 __imp__PathMatchSpec解决方法
解决方法:原因是因为少配置了相应的.lib文件 在项目属性->链接器->输入->附加依赖项->加上shlwapi.lib->点击应用即可
2018-06-02 18:46:55 2655 2
原创 Opencv3.2.0如何使用SIFT/SURF算子(配置环境Windows10+VS2017+CMake+OpenCV3.2.0+opencv_contrib3.2.0)
Opencv3.2.0使用SIFT/SURF等算子的解决方法一、需要文件下载OpenCV3.2.0 : https://github.com/opencv/opencv/releases/download/3.2.0/opencv-3.2.0-vc14.exe opencv_contrib3.2.0 : https://github.com/opencv/opencv_contrib/a...
2018-04-26 22:12:19 8506 12
原创 C++中抽象类以及虚/纯虚、析构函数的区别与介绍
一、虚函数在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual+函数返回类型+ 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。二、纯虚函数纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用
2017-10-16 21:38:51 2203
原创 基于光栅投影的三维重建
光栅投影和三维重建客观物体在空间上是三维的,但是人们从客观景物上得到的图像往往是二维的。光栅投影就是通过获取的二维信息来反映并还原物体的三维信息。一、三维形貌测量技术的发展三维形貌测量技术又称3D 轮廓术(3DProfilometry),是一种通过运用仪器获取被测物体外部形貌数据并建立数字化模型的方法和技术。由于3D 轮廓术所涵盖的学科门类较多,其分类方法也多种多样,目前普遍接受且广泛使用的分类方法
2017-10-13 18:11:34 16762 7
reprojectPoints重投影残差计算
2019-05-24
ippicv_windows_20151201.zip
2019-04-12
Qt5开发及实例
2019-01-21
tinydir.h头文件
2018-09-05
opencv多目三维重建与ba优化
2018-06-02
protobuf-cpp-3.1.0.tar.gz 配置文件
2018-06-02
利用双目视觉原理求出匹配点深度信息
2018-05-14
中文VTK User's Guide(带书签)
2018-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人