Brict

Contents

VCAT5

User

Tutorial: Create a new VCAT5 Plugin.

概要

データ入出力

サンプルプラグインの作成

実際のプラグイン作成手順を説明します.
ソースコード全体はこちらからダウンロードしてください.
ユーザ入力の閾値による単純な2値化を行うプラグインを作成します.

実際の処理を行うプログラムを作成

int main(int argc, char* argv[])
{
  // 引数の処理
  std::string input_file  = argv[1];
  std::string output_file = argv[2];
  int threshold = atoi(argv[3]);

  // 入力ファイルからボクセルデータの読み込み
  bool ret;
  TifIO tif;
  Image3D image;
  tif.setFilename(input_file.c_str());
  ret = tif.getImage(&image);

  // 閾値での2値化処理
  for(int z=0;z<image.sz;++z){
    for(int y=0;y<image.sy;++y){
      for(int x=0;x<image.sx;++x){
        if(image.img[z][y][x]>=threshold){
          image.img[z][y][x]=UCHAR_MAX;
        } else {
          image.img[z][y][x]=0;
        }
      }
    }
  }

  // ファイル出力
  tif.setFilename(output_file.c_str());
  tif.saveImage(&image);

  return EXIT_SUCCESS;
}

単純化の為に,エラー処理等は省略しています.
ファイルの読み込み,ボクセル毎に2値化の処理,ファイル出力を行っています.
VCAT5とプラグインの間の画像データの受け渡しは,TIFFを用いたファイル渡しで行いますので, TIFFの入出力を行うようにしてください.

コンパイル

プログラムをコンパイルしVCAT5と同じOSで動作するバイナリを作成します.
Visual C++ のコンパイラを利用する場合は

 cl /EHsc sample-plugin.cpp TifIO.cpp 

でコンパイルできます.

設定ファイルの作成

上で作成したプログラムをVCAT5 pluginとして動作させるための設定ファイルを作成します.

<?xml version="1.0" ?>
<config>
  <param name="filter_name" value="sample-plugin.exe" />
  <param name="dimension" value="3" />
  <elem name="arguments">
    <param dtype="path" type="input" provider="system" extension=".tif" />
    <param dtype="path" type="output" provider="system" extension=".tif" />
    <param name="threshold" dtype="int" value="1" />
  </elem>
</config>

filter_name にプログラムのファイル名を,
3D画像を処理するプログラムなので dimension には3を指定します.
arguments には,引数の指定順に,入力ファイル,出力ファイル,閾値を設定します.

VCAT5へのインストール

ここまでで作成した実行プログラムと設定ファイルの組を,VCAT5のインストールフォルダにあるpluginsフォルダ以下の適当なフォルダにコピーします.

実行確認

VCAT5から実際にプラグインを呼び出し,動作確認します.
メニューのprocess以下から作成したプラグインを選択すると,設定ファイルの内容に従ってパラメータ入力のダイアログが生成されます.

このまま実行した場合の入力と出力の例は次のようになります.


Last modified: 2015-Mar-20 01:14:10 +0900 (JST).