2012-09-06 4 views
0

나는 VTK (Qt on ubuntu 10.04)에서 일하고 있습니다.
3D 이미지가있는 .vtk 파일을 읽으려고합니다. 내가 이해할 수있는 바와 같이,이.vtk 파일 읽기

http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/GenericDataObjectReader

은 가능한 모든 VTK 파일을 읽을 수 있습니다. 그러나 작동하지 않습니다. 내가 할 모든은 다음과 같습니다

Starting /home/taha/Downloads/VTK/Examples/qtcreator-build/GenericDataObjectReader... 
Usage: /home/taha/Downloads/VTK/Examples/qtcreator-build/GenericDataObjectReader InputFilename 
/home/taha/Downloads/VTK/Examples/qtcreator-build/GenericDataObjectReader exited with code 1 

1) 내가 제대로 일을 코드를 사용하고 있습니까? 뭔가 바꿔야 하나?

인수로 파일 이름을 전달해야한다는 것을 알고 있지만 명령 프롬프트에서 파일 이름을 전달하는 방법을 모를 수 있습니다. 나는 이것을 인터넷에서 상세히 조사했는데, 내가 뒤따른 방식이 틀릴 수도있다.

2) 어떻게 C++에서 프로그램의 인수로 파일 이름을 전달할 수 있습니까? 당신은 단순히 쉘/DOS 창 입력 열 VTK - 위키에서 주어진 예에서 컴파일을 programm 전화를 원하는 경우

답변

1

: 위에서 언급 한 출력으로

yourExecutable.exe path-to-file.vtk 

을, 당신은 요구 사항과 일치하지 않습니다 예제를 실행하려면 (2 개의 매개 변수).

하나의 매개 변수 (첫 번째 매개 변수)는 사용하려는 프로그램에 대한 사용법이고 두 번째 매개 변수는 읽고 자하는 vtk 파일에 대한 경로입니다.

당신이에 주어진 예를 변경할 수있는 매개 변수를 호출하지 않으려면 :

int main (int argc, char *argv[]) 
{ 

    // simply set filename here (oh static joy) 
    std::string inputFilename = "setYourPathToVtkFileHere"; 

    // Get all data from the file 
    vtkSmartPointer<vtkGenericDataObjectReader> reader = 
     vtkSmartPointer<vtkGenericDataObjectReader>::New(); 
    reader->SetFileName(inputFilename.c_str()); 
    reader->Update(); 

    // All of the standard data types can be checked and obtained like this: 
    if(reader->IsFilePolyData()) 
    { 
    std::cout << "output is a polydata" << std::endl; 
    vtkPolyData* output = reader->GetPolyDataOutput(); 
    std::cout << "output has " << output->GetNumberOfPoints() << " points." << std::endl; 
    } 

    return EXIT_SUCCESS; 
} 

을 단순히 교체는 (바람직하게는 절대) 경로와을 setYourPathToVtkFileHere.

+0

먼저 GenericDataObjectReader.exe /home/taha/Downloads/VTK/Examples/so/output.vtk를 사용하여 실행하려고했습니다. 그러나 이것은 GenericDataObjectReader.exe를 제공합니다 : 명령을 찾을 수 없습니다. 이 방법으로 나를 도울 수 없을 때, 나는 두 번째 제안을했다. 이 명령 줄 std :: string을 추가했습니다. inputFilename = "/home/taha/Downloads/VTK/Examples/so/output.vtk"; GenericDataObjectReader.cxx에 추가하십시오. 결과는 "지정된 대상이없고 makefile을 찾을 수 없습니다. 중지하십시오."입니다. 내가 뭘 잘못 했니? 다르게해야 할 일은 무엇입니까? – TahaYusuf

+0

리눅스와 같은 비 Windows 시스템의 경우 실행 파일에는 .exe 확장자가 없습니다. – drescherjm

+0

@ TahaYusuf : 저는 CMake에 관해 똑똑한 사람은 아니지만, 먼저 cmake에게 전화를 걸어서 만드셨습니까? cmake를 사용하여 프로젝트를 빌드하지 않은 것처럼 보입니다 (vtk가 심하게 cmake를 사용함) – Najzero