自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

awen

nothing for nothing

  • 博客(28)
  • 资源 (13)
  • 收藏
  • 关注

原创 C++基础——lambda表达式

Lambda表达式就是一个匿名函数,允许使用函数功能,但无需为这个函数命名lambda表达式格式通常为:[ list ] ( params ) -> ret { func }( params )中为匿名函数的参数,ret为匿名函数返回类型,{ func }中为函数体,其中[ list ]表示含义为匿名函数访问的外部(父作用域)变量,举例如下所示:int main() { ...

2019-11-25 16:35:38 316

原创 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 2443 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 719

原创 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 4068 10

原创 PCL学习笔记——利用点云配准CorrespondenceEstimationBase()函数找出两部分点云重叠区域

主要Classes:pcl::registration::CorrespondenceEstimation&amp;lt; PointSource, PointTarget, Scalar &amp;gt; Class Template Reference主要函数:template&amp;lt;typename PointSource , typename PointTarget , typename Scala...

2019-04-11 14:11:58 7017 8

原创 C++基础——static关键字的作用

1) 隐藏;(所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也可以访问;如果加了static,就会对其他源文件进行隐藏。)2) 保持变量内容的持久(static变量中的记忆功能和全局生存期);(存储在静态存储区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制...

2019-04-08 21:11:05 164

原创 基于opencv下的双目视觉三维重建与重投影残差计算

一、重投影残差1.1基本概念重投影残差,按照字面意思解释就是在第二次重新投影的二维像素点与第一次投影得到的像素点之间的残差(欧式距离)大小,残差的大小反映的就是测量仪器的精度以及外界因素对测量结果的干扰,即测量误差的大小。如下图所示:假设P是世界坐标系中的一个三维点(真实物点),第一次投影指的就是双目相机C1、C2拍摄时,P点投影到二维像平面上所捕获到的图像点,即图中的P1和P2点;然后利...

2019-03-26 21:39:41 4941 1

原创 PCL学习笔记——PCD文件可视化

比较简单,直接上代码code:// pcl_points_visualization.cpp: 定义控制台应用程序的入口点。//#include &amp;quot;stdafx.h&amp;quot;#include&amp;amp;lt;pcl/visualization/cloud_viewer.h&amp;amp;gt;#include&amp;amp;lt;pcl/point_cloud.h&amp;amp;gt;#i

2018-12-29 16:29:50 6065

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

原创 PCL学习笔记——点云数据通过贪婪三角投影算法生成三角网格

PointCloud和PCLPointCloud2区别:一、PointCloud:Public Attributes:pcl::PCLHeader header( The point cloud header. )std::vector&lt; PointT, Eigen::aligned_allocator&lt; PointT &gt; &gt;points( The point d...

2018-12-27 11:00:49 4575 2

原创 PCL学习笔记——NormalEstimation估计点云的法向量

主要Classes:pcl::NormalEstimation&amp;lt; PointInT, PointOutT &amp;gt; Class头文件:#include &amp;lt;pcl/features/normal_3d.h&amp;gt;Code:// overlapped_points_normal_estimation.cpp: 定义控制台应用程序的入口点。//#include &quot;stdafx...

2018-11-28 21:06:18 10386 3

原创 PCL学习笔记——getApproximateIndices()函数的调用

getApproximateIndices():得到给定点云的一组近似索引到参考点云void pcl::getApproximateIndices (const typename pcl::PointCloud&lt; PointT &gt;::ConstPtr &amp; cloud_in,const typename pcl::PointCloud&lt; PointT&gt;::Const...

2018-11-14 21:03:24 686

原创 PCL学习笔记——利用kdtree结构找出点云的重叠部分

目的为cloudA中的每个点,在cloudB中找到对应的重叠点(将点与点之间的距离小于某个阈值的点视为重叠点)主要函数:int pcl::OrganizedNeighborSearch&amp;lt; PointT &amp;gt;::nearestKSearch ( const PointCloudConstPtr &amp;amp; cloud_arg,int index_arg,int k_arg,...

2018-11-14 17:46:15 7102 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 36315

原创 PCL学习笔记——合并点云

合并点云分为两种类型:第一种是两个点云数据集的字段类型和维度相同,合并之后点云只是点的数量增加了;第二种是两个点云数据集的字段类型或维度不同,但是点的数量相同,合并之后相当于扩展了字段或维度,例如点云A是N个点的XYZ点集,点云B是N个点的RGB点,则连接两个字段形成的点云C是N个XYZRGB类型。一、扩展点的数目相关函数:inline const PointCloud oper...

2018-11-08 13:27:06 9986

原创 PCL学习笔记——利用Octree找出存在于点云B中,不存在点云A中的点

resolution——八叉树分辨率,即最小体素的边长(像素单位)getPointIndicesFromNewVoxels() —— 从前一个缓冲区中不存在的所有叶节点获取索引switchBuffers()——交换八叉树缓存,但是先前点云对应的八叉树结构仍在内存中// pointclouds_octree.cpp: 定义控制台应用程序的入口点。//#include &amp;amp;quot;stdafx.h&amp;amp;quot;...

2018-11-07 21:57:46 1178

原创 PCL学习笔记——Pcl::PointCloud和pcl::PointCloud::Ptr类型的转换

加了ptr的是指针类型,两者可以互相转换1.PointCloud::Ptr—&gt;PointCloudpcl::PointCloud&lt;pcl::PointXYZ&gt; cloud;pcl::PointCloud&lt;pcl::PointXYZ&gt;::Ptr cloud_ptr(new pcl::PointCloud&lt;pcl::PointXYZ&gt;);cloud=*...

2018-11-07 17:38:26 25191 5

原创 PCL学习笔记——读入txt格式点云数据,写入到PCD文件中

读入txt格式点云数据,写入PCD文件中// An highlighted block// pointclouds_octree.cpp: 定义控制台应用程序的入口点。//#include &amp;quot;stdafx.h&amp;quot;#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;fstream&amp;amp;gt;#include&a

2018-11-07 15:28:20 7025 9

原创 ENVI5.3高分遥感图像道路房屋提取详细流程

首先本处理流程主要针对于高分系列(GF1、GF2)遥感数据展开。每一帧遥感图像下载并解压出来,都会分别得到两个类型的数据,一个是低分率MSS格式的多光谱数据,另一个是高分辨率PAN格式的全色数据图像。1.图像的预处理1.1 MSS多光谱图像预处理(GF1):1) ENVI操作软件中导入MSS格式的多光谱数据; 找到MSS数据并且文件类型是.xml文件: 2) ...

2018-07-17 11:44:25 32815 15

原创 priority_queue用法.Ugly Number2

1.priority_queue的本质是数据结构中的堆 2.头文件在#include&amp;lt; queue&amp;gt; 3.关于priority_queue中元素的比较 使用模板:priority_queue&amp;lt; Type, Container, Functional&amp;gt;,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。 priorit...

2018-07-02 20:53:45 211

原创 左/右手坐标系

由于左右手坐标系总是混淆,因此写个帖子作为记录,方便今后再忘的时候查阅!!!我记这个坐标系的核心就是,无论左右手,以相互垂直的方向张开食指,中指,大拇指,食指的方向指向y轴!大拇指的方向指向x轴!中指的方向就是z轴!如下图所示: ...

2018-06-19 11:08:43 317

原创 C++文件路径基于项目目录下的写法格式

路径格式类似于: String PathName=".\\documents\\filename.txt";

2018-06-07 17:01:09 2094

原创 C++中字符串后面如何添加整形变量

直接上代码:#include "stdafx.h"#include"iostream"using namespace std;void main(){string Name = "数字是";for (int i = 0; i &lt; 10; i++) { char buf[10]; _itoa(i, buf, 10); Name += buf;}for...

2018-06-07 16:02:11 5260

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

原创 gflags_static.lib 无法解析的外部符号 __imp__PathMatchSpec解决方法

解决方法:原因是因为少配置了相应的.lib文件 在项目属性-&gt;链接器-&gt;输入-&gt;附加依赖项-&gt;加上shlwapi.lib-&gt;点击应用即可

2018-06-02 18:46:55 2567 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 8335 12

原创 C++中抽象类以及虚/纯虚、析构函数的区别与介绍

一、虚函数在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual+函数返回类型+ 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。二、纯虚函数纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用

2017-10-16 21:38:51 2136

原创 基于光栅投影的三维重建

光栅投影和三维重建客观物体在空间上是三维的,但是人们从客观景物上得到的图像往往是二维的。光栅投影就是通过获取的二维信息来反映并还原物体的三维信息。一、三维形貌测量技术的发展三维形貌测量技术又称3D 轮廓术(3DProfilometry),是一种通过运用仪器获取被测物体外部形貌数据并建立数字化模型的方法和技术。由于3D 轮廓术所涵盖的学科门类较多,其分类方法也多种多样,目前普遍接受且广泛使用的分类方法

2017-10-13 18:11:34 16477 7

reprojectPoints重投影残差计算

重投影残差,按照字面意思解释就是在第二次重新投影的二维像素点与第一次投影得到的像素点之间的残差(欧式距离)大小,残差的大小反映的就是测量仪器的精度以及外界因素对测量结果的干扰,即测量误差的大小。

2019-05-24

ippicv_windows_20151201.zip

将ippicv_windows_20151201.zip包在路径D:\OpenCV3.2.0\opencv\sources\3rdparty\ippicv\downloads\windows-04e81ce5d0e329c3fbc606ae32cad44d下替换即可!

2019-04-12

OpenCV3编程入门(中文)

《OpenCV3编程入门》是2015年电子工业出版社出版的图书,作者是毛星云 冷雪飞 王碧辉 吴松森。

2019-03-05

Qt5开发及实例

Qt是十分著名的跨平台C++可视化开发平台,Qt开源版提供了与商业版同样的功能,《Qt 5开发及实例》在继承广受市场欢迎的《Qt 5开发及实例》(第1版)特点的同时,以Qt 5.4.0为平台,介绍QT应用开发更系统,可读性更强。

2019-01-21

tinydir.h头文件

tinydir, 轻量级便携和易于集成C目录和文件阅读器。用法: void get_file_names(string dir_name, vector & names) { names.clear(); tinydir_dir dir; tinydir_open(&dir;, dir_name.c_str()); while (dir.has_next) { tinydir_file file; tinydir_readfile&#40;&dir;, &file;&#41;; if (!file.is_dir) { names.push_back(file.path); } tinydir_next(&dir;); } tinydir_close(&dir;); }

2018-09-05

opencv双目通过特征提取恢复深度

VS2017+OpenCV通过双目视觉原理,通过SIFT特征点匹配恢复物体深度信息,输出三维坐标。

2018-06-30

opencv多目三维重建与ba优化

基于C++平台通过第三方库opencv和ceres,利用SFM原理实现的多目视觉三维重建,结果通过bundle adjustment最小化重投影误差来优化结果

2018-06-02

protobuf-cpp-3.1.0.tar.gz 配置文件

替换路径类似:\opencv_extra\opencv_contrib-3.2.0\modules\dnn.download\bd5e3eed635a8d32e2b99658633815ef\v3.1.0目录下的protobuf-cpp-3.1.0.tar.gz(亲测有效)

2018-06-02

结构光栅图生成器

结构光栅生成器,用C++写了个简单的交互界面,可以根据选择的不同光栅图的频率、周期、步数、以及图片大小的分辨率来生成所需的相应结构光栅图

2018-05-30

各种类型点云文件

各种类型的点云文件,3pv,ply,vtk....等等,点云非常稠密

2018-05-25

利用双目视觉原理求出匹配点深度信息

在C++下,利用Opencv的库,首先通过Sift找出左右图的匹配点,之后通过Ransac和knn算法剔除错误匹配点后,最后求出匹配点对的深度信息

2018-05-14

C++四步相移求得包裹/展开相位

在C++平台上实现了光栅投影三维重建中的,初始结构光栅的产生,以及四步相移法求得包裹相位并展开。

2018-04-10

中文VTK User's Guide(带书签)

vtk用户手册、vtk user's guide中文版、VTK是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化

2018-03-13

空空如也

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

TA关注的人

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