1

私は取り組んでいVTK (Qt on ubuntu 10.04)ます。3D画像
のファイルを読み込もうとしています。.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 ++のプログラムに引数としてファイル名を渡すにはどうすればよいですか?

4

1 に答える 1

3

vtk-wikiから与えられた例からコンパイルされたプログラムを呼び出したい場合は、単にshell/dosウィンドウを開いて次のように入力します。

yourExecutable.exe path-to-file.vtk

上記の出力のように、実行する例の要件(2つのパラメーター)に一致しませんでした。

1つのパラメーター(最初のパラメーター)は使用法(呼び出すプログラムへの)であり、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を(できれば絶対的な)パスに置き換えるだけです。

于 2012-09-06T14:00:55.193 に答える