C ++에서 PCL을 사용하여 동일한 창에서 여러 포인트 클라우드보기

라비 조시

동일한 창에서 시각화하려는 두 개의 포인트 클라우드가 있습니다.

#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/cloud_viewer.h>

int main ()
{
    pcl::visualization::CloudViewer viewer("Cloud Viewer");

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("body.pcd", *body);

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr head (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("head.pcd", *head);

    viewer.showCloud (body);
    viewer.showCloud (head);
    while (!viewer.wasStopped ())
    {
    }
    return 0;
}

마지막 PCD 파일 만 볼 수 있습니다.

이 데이터에 대해 다른 처리를해야하므로 pcd_viewer 도구를 사용하고 싶지 않습니다.

아 팔로 머

댓글에 대해

"좋아요. 곧 확인하겠습니다. cloud_viewer API를 사용하여 카메라 매개 변수와 배경색을 설정하도록 말씀해 주시겠습니까?"

을 사용하여이 작업을 수행 할 수 있는지 100 % 확실하지 않습니다 pcl::visualization::CloudViewer. 그러나 코드를 이동 pcl::visualization::PCLVisualizer하면 할 수 있습니다 viewer.setBackgroundColor(double red,double green,double blue)(값 범위 0..1. 카메라를 설정하려면). 카메라의 경우 pcl::visualization::PCLVisualizer::setCameraPosition. CloudViewer에서 PCLVisualizer로 코드를 옮기는 것은 매우 쉽습니다.

#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>

int main ()
{
    pcl::visualization::PCLVisualizer viewer("Cloud Viewer");

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("body.pcd", *body);

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr head (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("head.pcd", *head);

    viewer.addPointCloud (body,"body");// note that before it was showCloud
    viewer.addPointCloud (head,"head");// note that before it was showCloud
    viewer.spin();
    return 0;
}

편집 Ther는 이것을 수행하는 방법입니다. 여기 를 살펴보면 또는 함수를 pcl::visualization::PCLVisualizer사용하여의 모든 기능을 실행할 수 있음을 알 수 있습니다 . 이를 위해 사용하는 모든 부분 을 수행하고 또는에 전달 하는 함수를 만들어야합니다 .pcl::visualization::CloudViewer::runOnVisualizationThreadOncepcl::visualization::CloudViewer::runOnVisualizationThreadpcl::visualization::PCLVisualizerCloudViewer::runOnVisualizationThreadOnceCloudViewer::runOnVisualizationThread

예를 들면

#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/cloud_viewer.h>

void 
setBackground (pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor (1.0, 0.5, 1.0);    
}

int main ()
{
    pcl::visualization::PCLVisualizer viewer("Cloud Viewer");

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("body.pcd", *body);

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr head (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("head.pcd", *head);

    viewer.showCloud (body,"body");
    viewer.showCloud (head,"head");

    viewer.runOnVisualizationThreadOnce(setBackground);

    while (!viewer.wasStopped ())
    {
    }
    return 0;
}

유일한 문제는 pcl::visualization::PCLVisualizer우리가 만든 함수에서 사용하려는 함수에 잠재적으로 인수를 전달할 수있는 방법을 알지 못한다는 것입니다 (이전 예제 pcl::visualization::PCLVisualizer::setBackgroundColor에서 setBackground.이를 위해 직접 사용하는 pcl::visualization::PCLVisualizer것이 훨씬 낫다고 생각 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

(NUnit) 동일한 브라우저 창을 사용하여 동일한 클래스 내에서 테스트 실행

분류에서Dev

PCL (포인트 클라우드 라이브러리)을 사용하여 객체 정보 배열 얻기

분류에서Dev

동일한 파일에서 여러 사용자 로그인을 테스트하기 위해 Robot Framework 사용

분류에서Dev

Google 클라우드 엔드 포인트에서 SendGrid를 사용하여 이메일을 보내는 방법은 무엇입니까?

분류에서Dev

여러 하위 도메인에서 동일한 기능 사용

분류에서Dev

서로 다른 조인 기준을 사용하여 동일한 테이블에서 여러 조인

분류에서Dev

AngularJS를 사용하여 여러 창에서 동일한 데이터 바인딩

분류에서Dev

Postgres에서 json 배열을 사용하여 동일한 테이블에 여러 선택적 조인 만들기

분류에서Dev

템플릿을 사용하여 여러 인수에 동일한 메서드 적용

분류에서Dev

C #을 사용하여 Google 클라우드 엔드 포인트에 json을 게시 할 수 없습니다.

분류에서Dev

Capistrano는 동일한 클라우드 서비스의 여러 노드에 배포

분류에서Dev

window.open을 사용하여 mvc의 jquery에서 동일한 창에서 컨트롤러 작업을 여는 방법은 무엇입니까?

분류에서Dev

다른 클라이언트가 xmpp 여러 클라이언트에서 메시지를 보낸 것을 표시하는 방법 동일한 사용자

분류에서Dev

C ++를 사용하여 포인트 클라우드 .bin 파일 읽기

분류에서Dev

ASP.NET MVC에서 여러 URL을 동일한보기로 라우팅

분류에서Dev

Google Cloud Endpoints (게이트웨이)를 사용하여 단일 API 엔드 포인트의 여러 마이크로 서비스 (클라우드 실행 컨테이너)에서 결합 된 응답을 만드는 방법은 무엇입니까?

분류에서Dev

c에서 여러 스레드를 사용하여 여러 파일 읽기

분류에서Dev

주석을 사용하여 동일한 컨트롤러에서 두 개의 서로 다른 'Action'기능으로 라우팅하는 방법-Symfony2

분류에서Dev

angularJS에서 동일한 컨트롤러 기능을 사용하여 GET 및 POST 요청 수행

분류에서Dev

동일한 방법을 공유하는 여러 스레드에서 Random 사용

분류에서Dev

AngularJS를 사용하여 동일한 페이지에서 여러보기 사용

분류에서Dev

그리드보기 기능으로 동일한 페이지에서 동일한 사용자 컨트롤을 여러 번 사용

분류에서Dev

인라인 그리드 내에서 가능한 한 많은 열을 사용하여 CSS 자동 채우기

분류에서Dev

PCL에서 포인트가 속한 뷰포트 ID 또는 포인트 클라우드 가져 오기

분류에서Dev

동일한 IP에서 서비스를 사용하여 여러 포드를 제공하는 Azure AKS Loadbalancer

분류에서Dev

''이 API 사용해보기 '에 지원되지 않는 인증 유형-api_key : apiKey'문제 Nodejs를 사용하여 Google 클라우드 엔드 포인트에서 작업하는 동안

분류에서Dev

C #에서 Linq 메서드 구문을 사용하여 동일한 외래 키 ID로 여러 열 값을 검색하는 방법은 무엇입니까?

분류에서Dev

Jolokia를 사용하여 동일한 Tomcat 서버에서 webapp의 JMX 엔드 포인트 모니터링

분류에서Dev

Java를 사용하여 동일한 cmd.exe 창에서 여러 명령을 실행하십시오.

Related 관련 기사

  1. 1

    (NUnit) 동일한 브라우저 창을 사용하여 동일한 클래스 내에서 테스트 실행

  2. 2

    PCL (포인트 클라우드 라이브러리)을 사용하여 객체 정보 배열 얻기

  3. 3

    동일한 파일에서 여러 사용자 로그인을 테스트하기 위해 Robot Framework 사용

  4. 4

    Google 클라우드 엔드 포인트에서 SendGrid를 사용하여 이메일을 보내는 방법은 무엇입니까?

  5. 5

    여러 하위 도메인에서 동일한 기능 사용

  6. 6

    서로 다른 조인 기준을 사용하여 동일한 테이블에서 여러 조인

  7. 7

    AngularJS를 사용하여 여러 창에서 동일한 데이터 바인딩

  8. 8

    Postgres에서 json 배열을 사용하여 동일한 테이블에 여러 선택적 조인 만들기

  9. 9

    템플릿을 사용하여 여러 인수에 동일한 메서드 적용

  10. 10

    C #을 사용하여 Google 클라우드 엔드 포인트에 json을 게시 할 수 없습니다.

  11. 11

    Capistrano는 동일한 클라우드 서비스의 여러 노드에 배포

  12. 12

    window.open을 사용하여 mvc의 jquery에서 동일한 창에서 컨트롤러 작업을 여는 방법은 무엇입니까?

  13. 13

    다른 클라이언트가 xmpp 여러 클라이언트에서 메시지를 보낸 것을 표시하는 방법 동일한 사용자

  14. 14

    C ++를 사용하여 포인트 클라우드 .bin 파일 읽기

  15. 15

    ASP.NET MVC에서 여러 URL을 동일한보기로 라우팅

  16. 16

    Google Cloud Endpoints (게이트웨이)를 사용하여 단일 API 엔드 포인트의 여러 마이크로 서비스 (클라우드 실행 컨테이너)에서 결합 된 응답을 만드는 방법은 무엇입니까?

  17. 17

    c에서 여러 스레드를 사용하여 여러 파일 읽기

  18. 18

    주석을 사용하여 동일한 컨트롤러에서 두 개의 서로 다른 'Action'기능으로 라우팅하는 방법-Symfony2

  19. 19

    angularJS에서 동일한 컨트롤러 기능을 사용하여 GET 및 POST 요청 수행

  20. 20

    동일한 방법을 공유하는 여러 스레드에서 Random 사용

  21. 21

    AngularJS를 사용하여 동일한 페이지에서 여러보기 사용

  22. 22

    그리드보기 기능으로 동일한 페이지에서 동일한 사용자 컨트롤을 여러 번 사용

  23. 23

    인라인 그리드 내에서 가능한 한 많은 열을 사용하여 CSS 자동 채우기

  24. 24

    PCL에서 포인트가 속한 뷰포트 ID 또는 포인트 클라우드 가져 오기

  25. 25

    동일한 IP에서 서비스를 사용하여 여러 포드를 제공하는 Azure AKS Loadbalancer

  26. 26

    ''이 API 사용해보기 '에 지원되지 않는 인증 유형-api_key : apiKey'문제 Nodejs를 사용하여 Google 클라우드 엔드 포인트에서 작업하는 동안

  27. 27

    C #에서 Linq 메서드 구문을 사용하여 동일한 외래 키 ID로 여러 열 값을 검색하는 방법은 무엇입니까?

  28. 28

    Jolokia를 사용하여 동일한 Tomcat 서버에서 webapp의 JMX 엔드 포인트 모니터링

  29. 29

    Java를 사용하여 동일한 cmd.exe 창에서 여러 명령을 실행하십시오.

뜨겁다태그

보관