点云技术相关产学研社区

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

扫一扫,访问微社区

查看: 6226|回复: 6

使用官网教程实现基于彩色的区域增长显示结果全是红色

[复制链接]
发表于 2015-3-26 15:37:07 | 显示全部楼层 |阅读模式
Color-based region growing segmentation   使用的是PCL1.7.2ALL_IN_ONE,在VS2012中运行的。
代码如下:// RegionGrowingANDRegionGrowingRGB.cpp : 定义控制台应用程序的入口点。//

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/search/search.h>
#include <pcl/search/kdtree.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/filters/passthrough.h>
#include <pcl/segmentation/region_growing_rgb.h>

#include <iostream>
#include <vector>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/search/search.h>
#include <pcl/search/kdtree.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/filters/passthrough.h>
#include <pcl/segmentation/region_growing_rgb.h>

int
    main (int argc, char** argv)
{
    pcl::search::Search <pcl::PointXYZRGB>::Ptr tree = boost::shared_ptr<pcl::search::Search<pcl::PointXYZRGB> > (new pcl::search::KdTree<pcl::PointXYZRGB>);

    pcl::PointCloud <pcl::PointXYZRGB>::Ptr cloud (new pcl::PointCloud <pcl::PointXYZRGB>);
    if ( pcl::io::loadPCDFile <pcl::PointXYZRGB> ("region_growing_rgb_tutorial.pcd", *cloud) == -1 )
    {
        std::cout << "Cloud reading failed." << std::endl;
        return (-1);
    }

    pcl::IndicesPtr indices (new std::vector <int>);
    pcl::PassThrough<pcl::PointXYZRGB> pass;
    pass.setInputCloud (cloud);
    pass.setFilterFieldName ("z");
    pass.setFilterLimits (0.0, 1.0);
    pass.filter (*indices);

    pcl::RegionGrowingRGB<pcl::PointXYZRGB> reg;
    reg.setInputCloud (cloud);
    reg.setIndices (indices);
    reg.setSearchMethod (tree);
    reg.setDistanceThreshold (10);
    reg.setPointColorThreshold (6);
    reg.setRegionColorThreshold (5);
    reg.setMinClusterSize (600);

    std::vector <pcl::PointIndices> clusters;
    reg.extract (clusters);

    pcl::PointCloud <pcl::PointXYZRGB>::Ptr colored_cloud = reg.getColoredCloud ();
    pcl::visualization::CloudViewer viewer ("Cluster viewer");
    viewer.showCloud (colored_cloud);
    while (!viewer.wasStopped ())
    {
        boost::this_thread::sleep (boost::posix_time::microseconds (100));
    }

    return (0);
}



本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-3-26 23:21:49 | 显示全部楼层
主要是因为reg算法处理的数据只对于indices的点。所以可以试一试下面的方案:
  pcl::IndicesPtr indices (new std::vector <int>);
    pcl::PassThrough<pcl::PointXYZRGB> pass;
    pass.setInputCloud (cloud);
    pass.setFilterFieldName ("z");
    pass.setFilterLimits (0.0, 1.0);//最简单的该法就是把1.0改为100之类的
    pass.filter (*indices);

    pcl::RegionGrowingRGB<pcl::PointXYZRGB> reg;
    reg.setInputCloud (cloud);
    reg.setIndices (indices);//或者直接把这句给注释掉。。。

把你最终的测试的结果分享下啊,thanks
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-30 09:29:16 | 显示全部楼层
mypcl 发表于 2015-3-26 23:21
主要是因为reg算法处理的数据只对于indices的点。所以可以试一试下面的方案:
  pcl::IndicesPtr indices ( ...

首先非常感谢@[size=12.380952835083008px]mypcl帮助
(1)pass.setFilterLimits (0.0, 1.0);//最简单的该法就是把1.0改为100之类的        可以实现,但是为什么改成100就可以了呢?????求指点
(2) reg.setIndices (indices);//或者直接把这句给注释掉。。。  
注释后编译没问题,调试失败,不知原因

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2015-3-30 10:25:44 | 显示全部楼层
xx__hu 发表于 2015-3-30 09:29
首先非常感谢@mypcl帮助
(1)pass.setFilterLimits (0.0, 1.0);//最简单的该法就是把1.0改 ...

pass的功能就是把z轴上距离较远的数据过滤掉不进行处理。kinect获取的数据最远也就6m吧,你随便设置一个大于这个数值 的都可以的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-30 10:35:28 | 显示全部楼层
mypcl 发表于 2015-3-30 10:25
pass的功能就是把z轴上距离较远的数据过滤掉不进行处理。kinect获取的数据最远也就6m吧,你随便设置一个大 ...

好的,非常感谢!
回复 支持 反对

使用道具 举报

发表于 2015-6-17 10:34:44 | 显示全部楼层
xx__hu 发表于 2015-3-30 09:29
首先非常感谢@mypcl帮助
(1)pass.setFilterLimits (0.0, 1.0);//最简单的该法就是把1.0改 ...

楼主!能不能请假您一下,我按照网页上的教程安装始终出现问题 http://www.pclcn.org/bbs/forum.p ... &extra=page%3D1,总是提醒无法打开包括文件:“kinect.h”  ,我也尝试在电脑上装kinect V2.0,但是kinect V2.0这个软件只能在win8以上的系统运行,您的PCL1.7.2是在什么系统下运行了,需要安装win8吗
回复 支持 反对

使用道具 举报

发表于 2015-11-15 18:10:30 | 显示全部楼层
请问一下您的PCL1.7.2ALL_IN_ONE在哪里下载的啊?可以发一份给我嘛?我的邮箱kuili1219whut@163.com 谢谢!
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2024-4-29 07:17 , Processed in 1.667267 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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