Чтение .vtk файла

Я работаю на VTK (Qt on ubuntu 10.04),
Я пытаюсь прочитать .vtk файл с 3D изображением. Как я мог понять, это

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 ++?

1

Решение

Если вы хотите вызвать скомпилированную программу из примера, данного в vtk-wiki, просто откройте окно shell / dos и введите:

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 с (желательно абсолютным) вашим путем.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]