请选择 进入手机版 | 继续访问电脑版

点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 49522|回复: 85

如何实现基于MFC对话框的PCL显示(2)

[复制链接]
发表于 2013-5-17 15:37:24 | 显示全部楼层 |阅读模式
本帖最后由 tyzaizl 于 2013-5-21 15:56 编辑

如何实现基于MFC对话框的PCL显示(2)

田玉珍(CIOMP)


2.3.4 在工程属性字符集中选择UseMulti-Byte Character Set,如果用Unicode PCL源文件有太多要改,后面编译通不过。(总之我试着解决了,总是出错,后来就放弃了,请高手指点)
2.3.5在对话框中插入picture control控件IDIDC_PCDVIEWER
2.3.6 PCLDialog.h中添加
头文件
  1. #include "pcl\point_cloud.h"
  2. #include "pcl\point_types.h"
  3. #include "pclvisualization_mfc\include\pcl_mfc_visualizer.h"
  4. #include "vtkRenderer.h"
  5. #include <pcl/io/pcd_io.h>
复制代码
新建私有变量
  1. private:
  2.         //视图窗口
  3.         pcl::mfc_visualization::PCLVisualizer *viewer;
  4.         //vtkRenderer *pvtkRenderer;
  5.         POINT  ptBorder;
  6.         //数据点
  7.         sensor_msgs::PointCloud2::Ptr binary_blob;
  8.         //数据点句柄
  9.         pcl::mfc_visualization::PointCloudGeometryHandlerXYZ<sensor_msgs::PointCloud2>::Ptr xyz_Handler;
  10.         pcl::mfc_visualization::PointCloudColorHandlerRGBField<sensor_msgs::PointCloud2>::Ptr color_Handler;
  11.         //传感器位置方向矩阵
  12.         Eigen::Vector4f sensor_origin;
  13.         Eigen::Quaternion<float> sensor_orientation;
复制代码
2.3.7 初始化
  1. CPCLDialogDlg::CPCLDialogDlg(CWnd* pParent /*=NULL*/): CDialogEx(CPCLDialogDlg::IDD, pParent)
  2. {
  3.         m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  4.         ///////////////////////////////////////////////////////////////////////////////////////////////////
  5.         //begin tyz
  6.         //初始化
  7.         this->viewer = NULL;
  8.     sensor_origin = Eigen::Vector4f::Zero();
  9.         sensor_orientation = Eigen::Quaternionf::Identity ();
  10. }
复制代码
2.3.8 在BOOL CPCLDialogDlg::OnInitDialog()函数中添加
  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2.         //利用PictControl控件加载PCD窗口
  3.         CWnd *viewer_pcWnd;
  4.         viewer_pcWnd = this->GetDlgItem(IDC_PCDVIWER);
  5.         this->viewer = new pcl::mfc_visualization::PCLVisualizer(viewer_pcWnd);

  6.         CRect cRectPCL;
  7.         this->viewer->GetClientRect(&cRectPCL);

  8.         CRect cRectClient;
  9.         GetClientRect(&cRectClient);

  10.         this->ptBorder.x = cRectClient.Width()  - cRectPCL.Width();
  11.         this->ptBorder.y = cRectClient.Height() - cRectPCL.Height();
  12.         ////////////////////////////////////////////////////////////////////////////////////////////////////////////
复制代码
如何实现基于MFC对话框的PCL显示(3)
http://www.pclcn.org/bbs/forum.php?mod=viewthread&tid=225&page=1&extra=#pid752

(如有需要相关修改源代码的,请回复留下邮箱,我发给大家)
回复

使用道具 举报

 楼主| 发表于 2013-5-17 16:36:19 | 显示全部楼层

第一次发帖,请大家多多指教:)
回复 支持 反对

使用道具 举报

发表于 2013-5-18 00:22:21 | 显示全部楼层
赞一个!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-18 09:34:04 | 显示全部楼层
wangguo0123 发表于 2013-5-18 00:22
赞一个!

哈哈,3Q!
回复 支持 反对

使用道具 举报

发表于 2013-5-20 16:17:00 | 显示全部楼层
我的环境是PC1.5.1,vs2008, 编译的时候出现错误,PCL库中的Correspondence.h文件出现错误,你有没有遇到啊!
回复 支持 反对

使用道具 举报

发表于 2013-5-20 16:38:51 | 显示全部楼层

出现错误的截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x

点评

这里是MFC中的MAX MIN的宏定义和std中的max min冲突了。 correspondence.h里面开始加一句就可以不用在里面一行行改了 #ifdef max #undef max #endif  发表于 2013-8-25 18:22
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 18:09:00 | 显示全部楼层
明基奶茶 发表于 2013-5-20 16:38
出现错误的截图

哦,这个错误太多啦,你要慢慢改(反正我试了好多方法,最后还是手动改的),把类似的错误位置的
  1. std::***::max()
复制代码
替换为
  1. (std::***::max) ()
复制代码
就可以啦,会有很多文件出现类似错误,min也有,加“()”就可以了

还有,VTK要自己编译才好用,因为PCL官方提供的VTK缺东西
回复 支持 反对

使用道具 举报

发表于 2013-5-20 20:00:36 | 显示全部楼层
pcl::mfc_pclvisualization。是你们修改的源码?没有的话,你发布的这个帖子,别人没法参考了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 21:42:49 | 显示全部楼层
冰雪压不服 发表于 2013-5-20 20:00
pcl::mfc_pclvisualization。是你们修改的源码?没有的话,你发布的这个帖子,别人没法参考了。 ...

呵呵,是我修改的,我已经发你邮箱啦。

点评

可以发我一份吗pclvisualization_mfc文件夹(修改过的源代码),1558028936@qq.com  发表于 2017-3-9 10:39
回复 支持 反对

使用道具 举报

发表于 2013-5-20 22:49:17 | 显示全部楼层
tyzaizl 发表于 2013-5-20 21:42
呵呵,是我修改的,我已经发你邮箱啦。

你太强悍了。你的MFC功底很深厚。以后可多多交流MFC方面的东西哈
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-3-28 22:35 , Processed in 2.146578 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表