PCL学习备份

error:CRT detected that application wrote to memory after end of heap buffer
a:是C++程序中数组越界,用应用程序调试找越界的数组
erro:内存溢出
a:是labview开辟数组大小比C++函数输出的数组更小,拓展数组大小
优化:
1.C/C+±>优化->优化:使速度最大化 (/O2)
2.C/C+±>代码生成->运行库:多线程调试 DLL (/MDd)
3.C/C+±>所有选项->多处理器编译:是 (/MP)
4.用release
PS:注意64位和32位生成的路径有区别

error:找不到外部链接库
a:3D检测的动态链接库用到外部库(opencv的链接库),需要在3D检测的动态链接库路径中包含
opencv的动态链接库。

error:找不到资源
a:3D检测的动态链接库路径错误

error:调用库的时候闪退
a:指针错误,多留意是否是数组句柄指针设置了句柄指针,要修改回来

调用opencv
VC++目录->包含目录:
D:\桌面文件\3D外观检\ConsoleApplication改\ConsoleApplication2\opencv\include\opencv2;
D:\桌面文件\3D外观检\ConsoleApplication改\ConsoleApplication2\opencv\include\opencv;
D:\桌面文件\3D外观检\ConsoleApplication改\ConsoleApplication2\opencv\include;KaTeX parse error: Undefined control sequence: \桌 at position 71: …应的摆在前面,不建议)) D:\̲桌̲面文件\3D外观检\Conso…(LibraryPath)
链接器->输入:(后面有d的代表debug用的,没有d的代表release用的)
opencv_core2413d.lib;
opencv_highgui2413d.lib;
opencv_imgproc2413d.lib;
opencv_core2413.lib;
opencv_highgui2413.lib;
opencv_imgproc2413.lib;%(AdditionalDependencies)
PS:外部库嵌套调用,需要将所有外部库放在同一个文件夹路径下面
即是将所有dll复制到debug或者release文件下面

迭代器相当于指针
在用数组指针句柄的时候,必须开辟够足够的大小,不然会报错或者闪退
用32位系统的labview执行64位的dll函数的时候,会报该操作必须的某些系统功能未启动。

2019年10月10日17:28:40
1.pcl::io::loadPCDFile(“D:\BaiduNetdiskDownload\PCL\rabbit_gra\123.pcd”, *cloud);
loadPCDFile接受绝对路径
显示用pcl::visualization::CloudViewer视图类
pcl::visualization::CloudViewer viewer(“Cloud Viewer”);
viewer.showCloud(cloud);

2.FLANN是快速最近邻搜索包(Fast_Library_for_Approximate_Nearest_Neighbors)的简称
3.Vtk(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。视觉化工具函数库
4.QHull (三维凸包形体生成插件)
5.Boost增强
6.Eigen矩阵处理工具
7.ICP算法 ICP(Iterative Closest Point)迭代最近点
8.&data[0] 是容器的首地址

2019年10月11日18:22:28
for (int h = 0; h < pcHead._height; h++)
{
//y方向
for (int w = 0; w < pcHead._width; w++)
{
if (h * pcHead._width + w < data.size() && data[h * pcHead._width + w] > -99000000){
DataXYZSinglePt.x = (double)w;
DataXYZSinglePt.y = (double)h;
DataXYZSinglePt.z = (double)data[h * pcHead._width + w] / 1000000.0;///(1.0*10e9);

 DataXYZ.push_back(DataXYZSinglePt);
}
      else {
DataXYZSinglePt.x = (double)w;
DataXYZSinglePt.y = (double)h;
DataXYZSinglePt.z = NAN;
             }
  }

}

2019年12月16日09:15:13
1.C++配置
VC++目录->包含目录:
C:\Program Files\PCL 1.8.0\3rdParty\Qhull\include
C:\Program Files\PCL 1.8.0\3rdParty\FLANN\include
C:\Program Files\PCL 1.8.0\3rdParty\Boost\include\boost-1_59
C:\Program Files\PCL 1.8.0\include\pcl-1.8
C:\Program Files\PCL 1.8.0\3rdParty\VTK\include\vtk-7.0
C:\Program Files\PCL 1.8.0\3rdParty\Eigen\eigen3
VC++目录->库目录:
C:\Program Files\PCL 1.8.0\3rdParty\Boost\include\boost-1_59
C:\Program Files\PCL 1.8.0\3rdParty\OpenNI2\Lib
C:\Program Files\PCL 1.8.0\lib
C:\Program Files\PCL 1.8.0\3rdParty\Boost\lib
C:\Program Files\PCL 1.8.0\3rdParty\Qhull\lib
C:\Program Files\PCL 1.8.0\3rdParty\FLANN\lib
C:\Program Files\PCL 1.8.0\3rdParty\VTK\lib
链接器->输入
pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_ml_debug.lib
pcl_octree_debug.lib
pcl_outofcore_debug.lib
pcl_people_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_stereo_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_visualization_debug.lib
libboost_atomic-vc120-mt-gd-1_59.lib
libboost_chrono-vc120-mt-gd-1_59.lib
libboost_container-vc120-mt-gd-1_59.lib
libboost_context-vc120-mt-gd-1_59.lib
libboost_coroutine-vc120-mt-gd-1_59.lib
libboost_date_time-vc120-mt-gd-1_59.lib
libboost_exception-vc120-mt-gd-1_59.lib
libboost_filesystem-vc120-mt-gd-1_59.lib
libboost_graph-vc120-mt-gd-1_59.lib
libboost_iostreams-vc120-mt-gd-1_59.lib
libboost_locale-vc120-mt-gd-1_59.lib
libboost_log-vc120-mt-gd-1_59.lib
libboost_log_setup-vc120-mt-gd-1_59.lib
libboost_math_c99-vc120-mt-gd-1_59.lib
libboost_math_c99f-vc120-mt-gd-1_59.lib
libboost_math_c99l-vc120-mt-gd-1_59.lib
libboost_math_tr1-vc120-mt-gd-1_59.lib
libboost_math_tr1f-vc120-mt-gd-1_59.lib
libboost_math_tr1l-vc120-mt-gd-1_59.lib
libboost_mpi-vc120-mt-gd-1_59.lib
libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib
libboost_program_options-vc120-mt-gd-1_59.lib
libboost_random-vc120-mt-gd-1_59.lib
libboost_regex-vc120-mt-gd-1_59.lib
libboost_serialization-vc120-mt-gd-1_59.lib
libboost_signals-vc120-mt-gd-1_59.lib
libboost_system-vc120-mt-gd-1_59.lib
libboost_test_exec_monitor-vc120-mt-gd-1_59.lib
libboost_thread-vc120-mt-gd-1_59.lib
libboost_timer-vc120-mt-gd-1_59.lib
libboost_unit_test_framework-vc120-mt-gd-1_59.lib
libboost_wave-vc120-mt-gd-1_59.lib
libboost_wserialization-vc120-mt-gd-1_59.lib
vtkalglib-7.0-gd.lib
vtkChartsCore-7.0-gd.lib
vtkCommonCore-7.0-gd.lib
vtkCommonColor-7.0-gd.lib
vtkCommonComputationalGeometry-7.0-gd.lib
vtkCommonDataModel-7.0-gd.lib
vtkCommonExecutionModel-7.0-gd.lib
vtkCommonMath-7.0-gd.lib
vtkCommonMisc-7.0-gd.lib
vtkCommonSystem-7.0-gd.lib
vtkCommonTransforms-7.0-gd.lib
vtkDICOMParser-7.0-gd.lib
vtkDomainsChemistry-7.0-gd.lib
vtkexoIIc-7.0-gd.lib
vtkexpat-7.0-gd.lib
vtkFiltersAMR-7.0-gd.lib
vtkFiltersCore-7.0-gd.lib
vtkFiltersExtraction-7.0-gd.lib
vtkFiltersFlowPaths-7.0-gd.lib
vtkFiltersGeneral-7.0-gd.lib
vtkFiltersGeneric-7.0-gd.lib
vtkFiltersGeometry-7.0-gd.lib
vtkFiltersHybrid-7.0-gd.lib
vtkFiltersHyperTree-7.0-gd.lib
vtkFiltersImaging-7.0-gd.lib
vtkFiltersModeling-7.0-gd.lib
vtkFiltersParallel-7.0-gd.lib
vtkFiltersParallelImaging-7.0-gd.lib
vtkFiltersProgrammable-7.0-gd.lib
vtkFiltersSelection-7.0-gd.lib
vtkFiltersSMP-7.0-gd.lib
vtkFiltersSources-7.0-gd.lib
vtkFiltersStatistics-7.0-gd.lib
vtkFiltersTexture-7.0-gd.lib
vtkFiltersVerdict-7.0-gd.lib
vtkfreetype-7.0-gd.lib
vtkGeovisCore-7.0-gd.lib
vtkhdf5-7.0-gd.lib
vtkhdf5_hl-7.0-gd.lib
vtkImagingColor-7.0-gd.lib
vtkImagingCore-7.0-gd.lib
vtkImagingFourier-7.0-gd.lib
vtkImagingGeneral-7.0-gd.lib
vtkImagingHybrid-7.0-gd.lib
vtkImagingMath-7.0-gd.lib
vtkImagingMorphological-7.0-gd.lib
vtkImagingSources-7.0-gd.lib
vtkImagingStatistics-7.0-gd.lib
vtkImagingStencil-7.0-gd.lib
vtkInfovisCore-7.0-gd.lib
vtkInfovisLayout-7.0-gd.lib
vtkInteractionImage-7.0-gd.lib
vtkInteractionStyle-7.0-gd.lib
vtkInteractionWidgets-7.0-gd.lib
vtkIOAMR-7.0-gd.lib
vtkIOCore-7.0-gd.lib
vtkIOEnSight-7.0-gd.lib
vtkIOExodus-7.0-gd.lib
vtkIOExport-7.0-gd.lib
vtkIOGeometry-7.0-gd.lib
vtkIOImage-7.0-gd.lib
vtkIOImport-7.0-gd.lib
vtkIOInfovis-7.0-gd.lib
vtkIOLegacy-7.0-gd.lib
vtkIOLSDyna-7.0-gd.lib
vtkIOMINC-7.0-gd.lib
vtkIOMovie-7.0-gd.lib
vtkIONetCDF-7.0-gd.lib
vtkIOParallel-7.0-gd.lib
vtkIOParallelXML-7.0-gd.lib
vtkIOPLY-7.0-gd.lib
vtkIOSQL-7.0-gd.lib
vtkIOVideo-7.0-gd.lib
vtkIOXML-7.0-gd.lib
vtkIOXMLParser-7.0-gd.lib
vtkjpeg-7.0-gd.lib
vtkjsoncpp-7.0-gd.lib
vtklibxml2-7.0-gd.lib
vtkmetaio-7.0-gd.lib
vtkNetCDF-7.0-gd.lib
vtkNetCDF_cxx-7.0-gd.lib
vtkoggtheora-7.0-gd.lib
vtkParallelCore-7.0-gd.lib
vtkpng-7.0-gd.lib
vtkproj4-7.0-gd.lib
vtkRenderingAnnotation-7.0-gd.lib
vtkRenderingContext2D-7.0-gd.lib
vtkRenderingContextOpenGL2-7.0-gd.lib
vtkRenderingCore-7.0-gd.lib
vtkRenderingFreeType-7.0-gd.lib
vtkRenderingImage-7.0-gd.lib
vtkRenderingLabel-7.0-gd.lib
vtkRenderingLOD-7.0-gd.lib
vtkRenderingOpenGL2-7.0-gd.lib
vtkRenderingVolume-7.0-gd.lib
vtkRenderingVolumeOpenGL2-7.0-gd.lib
vtksqlite-7.0-gd.lib
vtksys-7.0-gd.lib
vtktiff-7.0-gd.lib
vtkverdict-7.0-gd.lib
vtkViewsContext2D-7.0-gd.lib
vtkViewsCore-7.0-gd.lib
vtkViewsInfovis-7.0-gd.lib
vtkzlib-7.0-gd.lib
vtkGUISupportQt-7.0-gd.lib
vtkRenderingQt-7.0-gd.lib
vtkViewsQt-7.0-gd.lib
flann_cpp_s-gd.lib
qhullstatic-gd.lib
OpenNI2.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
comctl32.lib
wsock32.lib
glu32.lib
opengl32.lib
ws2_32.lib
Psapi.lib
头文件包括:
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
生成文件夹中需要包含:(不用包含lib)
openNI2.dll
pcl_common_release.dll
pcl_io_ply_release.dll
pcl_io_release.dll
pcl_kdtree_release.dll
pcl_visualization_release.dll
vtkalglib-8.0.dll
vtkChartsCore-8.0.dll
vtkCommonColor-8.0.dll
vtkCommonComputationalGeometry-8.0.dll
vtkCommonCore-8.0.dll
vtkCommonDataModel-8.0.dll
vtkCommonExecutionModel-8.0.dll
vtkCommonMath-8.0.dll
vtkCommonMisc-8.0.dll
vtkCommonSystem-8.0.dll
vtkCommonTransforms-8.0.dll
vtkDICOMParser-8.0.dll
vtkFiltersCore-8.0.dll
vtkFiltersExtraction-8.0.dll
vtkFiltersGeneral-8.0.dll
vtkFiltersGeometry-8.0.dll
vtkFiltersSources-8.0.dll
vtkFiltersStatistics-8.0.dll
vtkfreetype-8.0.dll
vtkglew-8.0.dll
vtkGUISupportQt-8.0.dll
vtkImagingColor-8.0.dll
vtkImagingFourier-8.0.dll
vtkImagingGeneral-8.0.dll
vtkImagingHybrid-8.0.dll
vtkImagingSources-8.0.dll
vtkInfovisCore-8.0.dll
vtkInteractionImage-8.0.dll
vtkInteractionStyle-8.0.dll
vtkInteractionWidgets-8.0.dll
vtkIOCore-8.0.dll
vtkIOGeometry-8.0.dll
vtkIOImage-8.0.dll
vtkIOLegacy.8.0.dll
vtkIOPLY-8.0.dll
vtkjpeg.8.0.dll
vtklz4-8.0.dll
vtkmetaio-8.0.dll
vtkpng-8.0.dll
vtkRenderingAnnotation-8.0.dll
vtkRenderingContext2D-8.0.dll
vtkRenderingContextOpenGL2-8.0.dll
vtkRenderingCore-8.0.dll
vtkRenderingGL2PS-8.0.dll
vtkRenderingLOD-8.0.dll
vtkRenderingOpenGL2-8.0.dll
vtkRenderingOpenGL-8.0.dll
vtkRenderingVolume-8.0.dll
vtksys-8.0.dll
vtktiff-8.0.dll
vtkViewsContext2D-8.0.dll
vtkViewsCore-8.0.dll
vtkzlib-8.0.dll
/********************************************/
顶点缓存和索引缓存
顶点缓存是包含顶点数据的连续内存空间。
索引缓存是包含索引数据的连续内存空间。
在Direct3D中,
顶点缓存用IDirect3DVertexBuffer9表示
索引缓存用IDirect3DIndexBuffer9表示
深度缓存:
如果在同一个屏幕下绘制交叠的两个或者多个图元时,就会遇到"透支"问题
这些图元在渲染时交叠在一起,Direct3D不知道哪个图元遮住了哪个图元。
在这种情况下,如果建立了深度缓存,就可以通过深度缓存值来判断遮挡信息
深度缓存算法对于当前点(X,Y)保持到目前为止遇到的最小z值,
以求具有遇到的最小z值。
深度缓存是一个后台缓存,缓存中只存储场景深度信息,而不包括图像数据的
表面信息。绘制图元时,将图元的深度信息和深度缓存中的内容加以比较,
如果深度信息小于深度缓存中的内容,表明图元靠近视点,就更新深度缓存和颜色缓存的内容
否则表明绘制的图元远离视点,就可以抛弃那些不可见的像素。
框架:
创建了windows窗口后,首先要进行的是Direct3D接口、获取硬件设备信息、
获取Direct3D设备接口。Direct3D初始化之后进入消息循环,消息由信息处理
模块处理,然后进入3D场景的绘制,绘制完毕结束Direct3D程序
Direct3D配置:
1、VC++目录->包含目录C:Program Files\Microsoft DirectX %28June 2010%29\Lib\x86

2019年12月24日08:43:10
VTK配置
1.包括目录:
C:\Program Files %28x86%29\VTK\include\vtk-7.1\vtkverdict;C:\Program Files %28x86%29\VTK\include\vtk-7.1;KaTeX parse error: Undefined control sequence: \Program at position 22: …dePath) 库目录: C:\̲P̲r̲o̲g̲r̲a̲m̲ ̲Files %28x86%29…(LibraryPath)
链接器->输入->附加依赖项
vtkalglib-7.1.lib;vtkChartsCore-7.1.lib;vtkCommonColor-7.1.lib;vtkCommonComputationalGeometry-7.1.lib;vtkCommonCore-7.1.lib;vtkCommonDataModel-7.1.lib;vtkCommonExecutionModel-7.1.lib;vtkCommonMath-7.1.lib;vtkCommonMisc-7.1.lib;vtkCommonSystem-7.1.lib;vtkCommonTransforms-7.1.lib;vtkDICOMParser-7.1.lib;vtkDomainsChemistry-7.1.lib;vtkDomainsChemistryOpenGL2-7.1.lib;vtkexoIIc-7.1.lib;vtkexpat-7.1.lib;vtkFiltersAMR-7.1.lib;vtkFiltersCore-7.1.lib;vtkFiltersExtraction-7.1.lib;vtkFiltersFlowPaths-7.1.lib;vtkFiltersGeneral-7.1.lib;vtkFiltersGeneric-7.1.lib;vtkFiltersGeometry-7.1.lib;vtkFiltersHybrid-7.1.lib;vtkFiltersHyperTree-7.1.lib;vtkFiltersImaging-7.1.lib;vtkFiltersModeling-7.1.lib;vtkFiltersParallel-7.1.lib;vtkFiltersParallelImaging-7.1.lib;vtkFiltersPoints-7.1.lib;vtkFiltersProgrammable-7.1.lib;vtkFiltersSelection-7.1.lib;vtkFiltersSMP-7.1.lib;vtkFiltersSources-7.1.lib;vtkFiltersStatistics-7.1.lib;vtkFiltersTexture-7.1.lib;vtkFiltersVerdict-7.1.lib;vtkfreetype-7.1.lib;vtkglew-7.1.lib;vtkhdf5_hl-7.1.lib;vtkhdf5-7.1.lib;vtkImagingColor-7.1.lib;vtkImagingCore-7.1.lib;vtkImagingFourier-7.1.lib;vtkImagingGeneral-7.1.lib;vtkImagingHybrid-7.1.lib;vtkImagingMath-7.1.lib;vtkImagingSources-7.1.lib;vtkImagingStencil-7.1.lib;vtkInfovisCore-7.1.lib;vtkInteractionStyle-7.1.lib;vtkInteractionWidgets-7.1.lib;vtkIOAMR-7.1.lib;vtkIOCore-7.1.lib;vtkIOExodus-7.1.lib;vtkIOGeometry-7.1.lib;vtkIOImage-7.1.lib;vtkIOInfovis-7.1.lib;vtkIOLegacy-7.1.lib;vtkIONetCDF-7.1.lib;vtkIOParallel-7.1.lib;vtkIOXML-7.1.lib;vtkIOXMLParser-7.1.lib;vtkjpeg-7.1.lib;vtkjsoncpp-7.1.lib;vtklibxml2-7.1.lib;vtkmetaio-7.1.lib;vtkNetCDF_cxx-7.1.lib;vtkNetCDF-7.1.lib;vtkParallelCore-7.1.lib;vtkpng-7.1.lib;vtkRenderingAnnotation-7.1.lib;vtkRenderingContext2D-7.1.lib;vtkRenderingContextOpenGL2-7.1.lib;vtkRenderingCore-7.1.lib;vtkRenderingFreeType-7.1.lib;vtkRenderingLabel-7.1.lib;vtkRenderingOpenGL2-7.1.lib;vtkRenderingVolume-7.1.lib;vtkRenderingVolumeOpenGL2-7.1.lib;vtksys-7.1.lib;vtkTestingGenericBridge-7.1.lib;vtkTestingRendering-7.1.lib;vtktiff-7.1.lib;vtkverdict-7.1.lib;vtkViewsContext2D-7.1.lib;vtkViewsCore-7.1.lib;vtkzlib-7.1.lib;%(AdditionalDependencies)
exe文件夹里面放所有dll文件
程序头文件包括
#include “vtkConeSource.h”
#include “vtkPolyDataMapper.h”
#include “vtkRenderWindow.h”
#include “vtkActor.h”
#include “vtkRenderer.h”
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#define VERDICT_EXPORTS
#define MAX_NODES_PER_ELEMENT 27
#define MAX_TESTS_PER_ELEMENT 20
/VTK7.1.1**********/
/VTK6.3.0**********/
包含目录:
C:\Program Files %28x86%29\VTK\include\vtk-6.3;KaTeX parse error: Undefined control sequence: \Program at position 22: …dePath) 库目录: C:\̲P̲r̲o̲g̲r̲a̲m̲ ̲Files %28x86%29…(LibraryPath)
链接器->输入:
vtkalglib-6.3.lib;vtkChartsCore-6.3.lib;vtkCommonColor-6.3.lib;vtkCommonComputationalGeometry-6.3.lib;vtkCommonCore-6.3.lib;vtkCommonDataModel-6.3.lib;vtkCommonExecutionModel-6.3.lib;vtkCommonMath-6.3.lib;vtkCommonMisc-6.3.lib;vtkCommonSystem-6.3.lib;vtkCommonTransforms-6.3.lib;vtkDICOMParser-6.3.lib;vtkDomainsChemistry-6.3.lib;vtkexoIIc-6.3.lib;vtkexpat-6.3.lib;vtkFiltersAMR-6.3.lib;vtkFiltersCore-6.3.lib;vtkFiltersExtraction-6.3.lib;vtkFiltersFlowPaths-6.3.lib;vtkFiltersGeneral-6.3.lib;vtkFiltersGeneric-6.3.lib;vtkFiltersGeometry-6.3.lib;vtkFiltersHybrid-6.3.lib;vtkFiltersHyperTree-6.3.lib;vtkFiltersImaging-6.3.lib;vtkFiltersModeling-6.3.lib;vtkFiltersParallel-6.3.lib;vtkFiltersParallelImaging-6.3.lib;vtkFiltersProgrammable-6.3.lib;vtkFiltersSelection-6.3.lib;vtkFiltersSMP-6.3.lib;vtkFiltersSources-6.3.lib;vtkFiltersStatistics-6.3.lib;vtkFiltersTexture-6.3.lib;vtkFiltersVerdict-6.3.lib;vtkfreetype-6.3.lib;vtkftgl-6.3.lib;vtkGeovisCore-6.3.lib;vtkgl2ps-6.3.lib;vtkGUISupportMFC-6.3.lib;vtkhdf5_hl-6.3.lib;vtkhdf5-6.3.lib;vtkImagingColor-6.3.lib;vtkImagingCore-6.3.lib;vtkImagingFourier-6.3.lib;vtkImagingGeneral-6.3.lib;vtkImagingHybrid-6.3.lib;vtkImagingMath-6.3.lib;vtkImagingMorphological-6.3.lib;vtkImagingSources-6.3.lib;vtkImagingStatistics-6.3.lib;vtkImagingStencil-6.3.lib;vtkInfovisCore-6.3.lib;vtkInfovisLayout-6.3.lib;vtkInteractionImage-6.3.lib;vtkInteractionStyle-6.3.lib;vtkInteractionWidgets-6.3.lib;vtkIOAMR-6.3.lib;vtkIOCore-6.3.lib;vtkIOEnSight-6.3.lib;vtkIOExodus-6.3.lib;vtkIOExport-6.3.lib;vtkIOGeometry-6.3.lib;vtkIOImage-6.3.lib;vtkIOImport-6.3.lib;vtkIOInfovis-6.3.lib;vtkIOLegacy-6.3.lib;vtkIOLSDyna-6.3.lib;vtkIOMINC-6.3.lib;vtkIOMovie-6.3.lib;vtkIONetCDF-6.3.lib;vtkIOParallel-6.3.lib;vtkIOParallelXML-6.3.lib;vtkIOPLY-6.3.lib;vtkIOSQL-6.3.lib;vtkIOVideo-6.3.lib;vtkIOXML-6.3.lib;vtkIOXMLParser-6.3.lib;vtkjpeg-6.3.lib;vtkjsoncpp-6.3.lib;vtklibxml2-6.3.lib;vtkmetaio-6.3.lib;vtkNetCDF_cxx-6.3.lib;vtkNetCDF-6.3.lib;vtkoggtheora-6.3.lib;vtkParallelCore-6.3.lib;vtkpng-6.3.lib;vtkproj4-6.3.lib;vtkRenderingAnnotation-6.3.lib;vtkRenderingContext2D-6.3.lib;vtkRenderingContextOpenGL-6.3.lib;vtkRenderingCore-6.3.lib;vtkRenderingFreeType-6.3.lib;vtkRenderingGL2PS-6.3.lib;vtkRenderingImage-6.3.lib;vtkRenderingLabel-6.3.lib;vtkRenderingLIC-6.3.lib;vtkRenderingLOD-6.3.lib;vtkRenderingOpenGL-6.3.lib;vtkRenderingVolume-6.3.lib;vtkRenderingVolumeOpenGL-6.3.lib;vtksqlite-6.3.lib;vtksys-6.3.lib;vtktiff-6.3.lib;vtkverdict-6.3.lib;vtkViewsContext2D-6.3.lib;vtkViewsCore-6.3.lib;vtkViewsGeovis-6.3.lib;vtkViewsInfovis-6.3.lib;vtkzlib-6.3.lib;%(AdditionalDependencies)
/VTK6.3.0**********/

2019年12月30日15:06:44
1.MFC显示3D
#include “vtkCylinderSource.h”
#include “vtkPolyDataMapper.h”
#include “vtkActor.h”
#include “vtkRenderer.h”
#include “vtkRenderWindow.h”
//#include “vtkRenderWindowInteractor.h”
#include “vtkProperty.h”
#include “vtkCamera.h”
#include “vtkInteractorStyleTrackballCamera.h”

#include “vtkPNGReader.h”
#include “vtkSmartPointer.h”
#include “vtkImageData.h”
#include “vtkRenderWindowInteractor.h”
#include “vtkImageViewer2.h”
#include “vtkImageActor.h”

#include “vtkAutoInit.h”
#define VERDICT_EXPORTS
#define MAX_NODES_PER_ELEMENT 27
#define MAX_TESTS_PER_ELEMENT 20

void CVTKMFCDlg::OnBnClickedButton2()
{
CString filepath = L"C:\Users\mm\Desktop\0.ecd";
USES_CONVERSION;
string s = W2A(filepath);
const char* ch = s.c_str();

PointCloudHead pchead;
vector<int> data ;
readECD(ch, data, pchead);

vtkPoints * points = vtkPoints::New();
int n = 0; int idx = 0; int Length = 3 * pchead._height * pchead._width;
double x = 0;
double y = 0;
double z = 0;
//首先读取点云数据到点表points同时指定点对应的id:
for (double i = 0.0; i < pchead._height; ++i){
	for (double j = 0.0; j < pchead._width; ++j){
		double x = j * pchead._xInterval;
		double y = i * pchead._yInterval;
		if (data[i * pchead._width + j] < -99000000)
			z = NAN;
		else
			z = data[i * pchead._width + j] / 100000.0;
		points->InsertPoint(n, x, y, z);
		n++;
	}
}
printf("%d\n", n);

vtkPolyVertex * polyvertex = vtkPolyVertex::New();
polyvertex->GetPointIds()->SetNumberOfIds(n);

int i = 0; //建立拓扑关系
for (i = 0; i < n; i++){
	polyvertex->GetPointIds()->SetId(i, i);
}

vtkUnstructuredGrid * grid = vtkUnstructuredGrid::New();
grid->SetPoints(points);
grid->InsertNextCell(polyvertex->GetCellType(),polyvertex->GetPointIds());

vtkDataSetMapper *map1 = vtkDataSetMapper::New();
map1->SetInputData(grid);

vtkActor *actor1 = vtkActor::New();
actor1->SetMapper(map1);
actor1->GetProperty()->SetColor(0.194, 0.562, 0.75); //色号


vtkRenderer *ren = vtkRenderer::New();
ren->AddActor(actor1);
ren->SetBackground(1, 1, 1);

//Win和iren分别是vtkWin32OpenGLRenderWindow, vtkWin32RenderWindowInteractor
vtkWin32RenderWindowInteractor        *iren = vtkWin32RenderWindowInteractor::New();
vtkWin32OpenGLRenderWindow             *win = vtkWin32OpenGLRenderWindow::New();
vtkInteractorStyleTrackballCamera    *style = vtkInteractorStyleTrackballCamera::New();

CWnd *viewer_Wnd;
viewer_Wnd = this->GetDlgItem(IDC_STATIC);

CRect rect;
viewer_Wnd->GetWindowRect(rect);
ScreenToClient(rect); //可以得到控件坐标

win->Clean();
double w = rect.Width();
double h = rect.Height();

win->SetSize(rect.right - rect.left, rect.bottom - rect.top);

win->SetPosition(rect.left,rect.top);
win->BordersOn();
win->AddRenderer(ren);

iren->SetRenderWindow(win);
iren->SetInteractorStyle(style);

//搭上一个显示用的MFC窗口框架。
HWND hWnd = (HWND)viewer_Wnd->m_hWnd;

HWND hParent = ::GetParent(hWnd);
::ShowWindow(hParent, SW_SHOWNORMAL);
win->SetParentId(this->m_hWnd);

iren->Start();
map1->Delete();
grid->Delete();
actor1->Delete();
polyvertex->Delete();
ren->Delete();
win->Delete();
iren->Delete();

}
/6.3.0*****/
/8.2.0*****/
C:\Program Files %28x86%29\VTK\include\vtk-8.2;KaTeX parse error: Undefined control sequence: \Program at position 17: …IncludePath) C:\̲P̲r̲o̲g̲r̲a̲m̲ ̲Files %28x86%29…(LibraryPath)
vtkChartsCore-8.2.lib;vtkCommonColor-8.2.lib;vtkCommonComputationalGeometry-8.2.lib;vtkCommonCore-8.2.lib;vtkCommonDataModel-8.2.lib;vtkCommonExecutionModel-8.2.lib;vtkCommonMath-8.2.lib;vtkCommonMisc-8.2.lib;vtkCommonSystem-8.2.lib;vtkCommonTransforms-8.2.lib;vtkDICOMParser-8.2.lib;vtkDomainsChemistry-8.2.lib;vtkDomainsChemistryOpenGL2-8.2.lib;vtkdoubleconversion-8.2.lib;vtkexodusII-8.2.lib;vtkexpat-8.2.lib;vtkFiltersAMR-8.2.lib;vtkFiltersCore-8.2.lib;vtkFiltersExtraction-8.2.lib;vtkFiltersFlowPaths-8.2.lib;vtkFiltersGeneral-8.2.lib;vtkFiltersGeneric-8.2.lib;vtkFiltersGeometry-8.2.lib;vtkFiltersHybrid-8.2.lib;vtkFiltersHyperTree-8.2.lib;vtkFiltersImaging-8.2.lib;vtkFiltersModeling-8.2.lib;vtkFiltersParallel-8.2.lib;vtkFiltersParallelImaging-8.2.lib;vtkFiltersPoints-8.2.lib;vtkFiltersProgrammable-8.2.lib;vtkFiltersSelection-8.2.lib;vtkFiltersSMP-8.2.lib;vtkFiltersSources-8.2.lib;vtkFiltersStatistics-8.2.lib;vtkFiltersTexture-8.2.lib;vtkFiltersTopology-8.2.lib;vtkFiltersVerdict-8.2.lib;vtkfreetype-8.2.lib;vtkGeovisCore-8.2.lib;vtkgl2ps-8.2.lib;vtkglew-8.2.lib;vtkGUISupportMFC-8.2.lib;vtkhdf5_hl-8.2.lib;vtkhdf5-8.2.lib;vtkImagingColor-8.2.lib;vtkImagingCore-8.2.lib;vtkImagingFourier-8.2.lib;vtkImagingGeneral-8.2.lib;vtkImagingHybrid-8.2.lib;vtkImagingMath-8.2.lib;vtkImagingMorphological-8.2.lib;vtkImagingSources-8.2.lib;vtkImagingStatistics-8.2.lib;vtkImagingStencil-8.2.lib;vtkInfovisCore-8.2.lib;vtkInfovisLayout-8.2.lib;vtkInteractionImage-8.2.lib;vtkInteractionStyle-8.2.lib;vtkInteractionWidgets-8.2.lib;vtkIOAMR-8.2.lib;vtkIOAsynchronous-8.2.lib;vtkIOCityGML-8.2.lib;vtkIOCore-8.2.lib;vtkIOEnSight-8.2.lib;vtkIOExodus-8.2.lib;vtkIOExport-8.2.lib;vtkIOExportOpenGL2-8.2.lib;vtkIOExportPDF-8.2.lib;vtkIOGeometry-8.2.lib;vtkIOImage-8.2.lib;vtkIOImport-8.2.lib;vtkIOInfovis-8.2.lib;vtkIOLegacy-8.2.lib;vtkIOLSDyna-8.2.lib;vtkIOMINC-8.2.lib;vtkIOMovie-8.2.lib;vtkIONetCDF-8.2.lib;vtkIOParallelXML-8.2.lib;vtkIOPLY-8.2.lib;vtkIOSegY-8.2.lib;vtkIOSQL-8.2.lib;vtkIOTecplotTable-8.2.lib;vtkIOVeraOut-8.2.lib;vtkIOVideo-8.2.lib;vtkIOXML-8.2.lib;vtkIOXMLParser-8.2.lib;vtkjpeg-8.2.lib;vtkjsoncpp-8.2.lib;vtklibharu-8.2.lib;vtklibxml2-8.2.lib;vtkLocalExample-8.2.lib;vtklz4-8.2.lib;vtklzma-8.2.lib;vtkmetaio-8.2.lib;vtkNetCDF-8.2.lib;vtkogg-8.2.lib;vtkParallelCore-8.2.lib;vtkpng-8.2.lib;vtkproj-8.2.lib;vtkpugixml-8.2.lib;vtkRenderingAnnotation-8.2.lib;vtkRenderingContext2D-8.2.lib;vtkRenderingContextOpenGL2-8.2.lib;vtkRenderingCore-8.2.lib;vtkRenderingFreeType-8.2.lib;vtkRenderingGL2PSOpenGL2-8.2.lib;vtkRenderingImage-8.2.lib;vtkRenderingLabel-8.2.lib;vtkRenderingLOD-8.2.lib;vtkRenderingOpenGL2-8.2.lib;vtkRenderingVolume-8.2.lib;vtkRenderingVolumeOpenGL2-8.2.lib;vtksqlite-8.2.lib;vtksys-8.2.lib;vtktheora-8.2.lib;vtktiff-8.2.lib;vtkverdict-8.2.lib;vtkViewsContext2D-8.2.lib;vtkViewsCore-8.2.lib;vtkViewsInfovis-8.2.lib;vtkzlib-8.2.lib;%(AdditionalDependencies)
/8.2.0*****/

2019年12月31日10:03:21
1.
几何结构:描述了对象的空间位置关系(比如,要画一个三角形,首先需要指定三角形的三个顶点坐标P1,P2,P3,在VTK中指定点用PointData)
拓扑结构:描述了对象的构成形式(比如,上面所说的三个顶点P1,P2,P3在不指定拓扑关系的时候,有很多种组织形式,
比如,三个孤立的点,比如一条直线加一个孤立的点,或者是一段折线,但是指定了拓扑结构,比如说按照P1-P2-P3的顺序用直线连接起来,
那么他就是一个三角形,vtk用单元数据来描述拓扑结构)

2020年1月2日11:43:55
1.VTK的渲染引擎和可视化管线
(Visualization pipeline) ( Rendering Engine)
Source->filter->mapper ->actor-> render->renderwindow

SetInputConnection() -> GetOutPort()
数据并没有真正的在管线里流动,只有在目标的Update()函数
数据才会流动
但是通常不显式调用Update(),因为在Rendering Engine最后,
当调用Render()函数时,会一层一层地向下请求Update。如果
中间需要某些信息,则需显式地调用该方法

两种交互方式:
1、vtkInteractorStyleTrackballCamera:相当于移动摄像头,按键,屏幕上的所有内容都会动起来。
2、vtkInteractorStyleTrackballActor:相当于实体对象,当鼠标在某一个对象上按键时,只有这个对象会动。

以文本文件格式读取并存到一个vtkPoints( ),然后放入vtkPolyData( ),最后使用vtkVertexGlyphFilter( )显示。
程序主要用到以下类:
vtkPoints( ) vtkPolyData( ) vtkVertexGlyphFilter( )
vtkPoints( )负责点云数据的存储和操作,
vtkPolyData()可以用来保存点、线、面,
vtkVertexGlyphFilter()用来加快点云处理速度。

4.freopen(“CONOUT$”, “w+t”, stdout); //这段用于在MFC中显示控制台
5.
specular,镜面的
diffuse,漫射的
interact,交互 v
uniform,统一的
snippet,一小条
attenuation,衰减 n
animation,动画
attenuation,注解
eigen,本征的,固有的
symmetric,对称的
homogeneous,同种类的
perpendicular,垂直的
normalize,归一化

6.renderer可以add多个Actor
在render之前有一个需要显示,都需要重新建立管道

7.两种方式显示特殊图元:
1.通过polydata中转
auto planeSource = vtkSmartPointer::New();
planeSource->SetCenter(1.0,0.0,0.0)
planeSource->SetNormal(1.0,0.0,1.0);
planeSource->Update();//这个必须要update
auto polyData = planeSource->GetOutput();

auto mapper = vtkSmartPointer::New();
mapper->SetInputData(polyData);
2.通过管道
auto planeSource = vtkSmartPointer::New();
planeSource->SetCenter(1.0,0.0,0.0)
planeSource->SetNormal(1.0,0.0,1.0);
//不需要update()
auto mapper = vtkSmartPointer::New();
mapper->SetInputConnection(planeSource->GetOutput());

2020年2月11日23:30:17
1.
interactor->SetRenderWindow(renderWindow);和renderWindow->SetInteractor(interactor);的作用是一样的

2.可以渲染多次
即可以render多次

2020年3月9日08:47:42
1.
boost
Eigen
FLANN
VTK
Qt
QHull
OpenNI

2.程序数据库(PDB)   文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量  
  链接。当用/ZI   或/Zi   编译C/C++   程序时或用/debug   编译Visual   Basic/C#/JScript   .NET   程序  
时将创建PDB   文件。

安装PCL时候
warning : PATH too long to unable to create the path可以忽略
或者直接在前面不选择创建Path
但是要自己手动添加path
环境变量如下:
%PCL_ROOT:C:\Program Files\PCL 1.8.0
Path:
C:\Program Files\PCL 1.8.0\bin
C:\Program Files\PCL 1.8.0\3rdParty\VTK\bin
C:\Program Files\PCL 1.8.0\3rdParty\FLANN\bin
C:\Program Files\PCL 1.8.0\3rdParty\Qhull\bin
C:\Program Files\PCL 1.8.0\3rdParty\OpenNI2\Tools

4.问题一般由Debug版本下的宏定义引起。

调试版本中 MFC 定义一个将 new 运算符扩展到带两个额外参数的重载 新 运算符预处理器宏。 额外的参数是源代码文件名称和代码行版本号。MFC 可以使用此信息向程序员在调试模式下报告内存泄漏。 这适用于 MFC 类因为 MFC 提供的新接受额外的参数的重载。但是,因为此展开通过在预处理器,它会影响所有使用 new 运算符。 如果在项目中使用任何非MFC 类, 新的运算符也会扩展。这样会导致重载过new运算符的非MFC类无法正确创建。简单的解决办法的是添加#undef new。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSDN PCL学习教程是一个非常值得推荐的学习资源。PCL(Point Cloud Library)是一个开源的机器人视觉库,用于处理和分析点云数据。 CSDN PCL学习教程的内容丰富全面,适合初学者和有一定基础的人士。教程以通俗易懂的语言介绍了PCL库的基本知识和应用,包括点云数据的读取、滤波、特征提取、配准、分割等等。其中还包括了一些实际的案例,通过动手实践可以更好地理解和运用PCL库。 CSDN PCL学习教程的优点是它提供了详细的步骤和示例代码,使学习者能够快速入门和上手。教程中也附有一些常见问题的解答和错误排查的方法,方便遇到困难时进行参考和解决。 此外,CSDN是一个知名的IT技术社区,拥有众多活跃的技术博客和论坛。在学习教程过程中,学习者还能够参与讨论和交流,获取更多的帮助和指导。 总的来说,CSDN PCL学习教程是一个实用、可靠的学习资源,对于想要学习和应用PCL库的人来说是一个不错的选择。它提供了全面的学习内容和实例,能够满足不同层次的学习需求,并能够帮助学习者快速掌握PCL库的使用。 ### 回答2: CSDN PCL学习教程是一个针对计算机视觉领域的开源库Point Cloud Library(PCL)的学习资源。PCL是一个强大的开源点云处理框架,可以用于点云数据的处理、配准、分割、特征提取等多种任务。 该教程提供了丰富的学习内容和实践案例。首先,教程介绍了PCL的基础知识,包括点云数据的表示方式、常用的滤波方法等。接着,教程详细介绍了PCL的各种功能模块,如滤波器、配准、特征描述子等,通过实例演示了它们的使用方法和效果。 此外,教程也提供了一些高级主题的学习资料,如深度学习与点云处理的结合、三维重建等。这些内容可以帮助学习者进一步深入PCL的应用领域。 通过学习CSDN PCL学习教程,学习者能够掌握PCL的基本原理和使用方法,了解点云数据处理的常用技巧。通过实践案例的学习学习者能够将PCL应用到具体的项目中,并具备进行自主研究和开发的能力。 总之,CSDN PCL学习教程是一个全面而丰富的学习资源,对于想要进一步学习和应用点云处理的计算机视觉领域从业者和研究者来说是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值