- こちらのitkの連番ファイル名発生クラスを使って
- 「ファイルの前半」+「数字」+「ファイルの後半」という連番ファイル名を書き出してみる
- /home/ryamada/ITK-buildに ITKが入っているものとして
- /home/ryamada/ITK_Projects_RY/Example_Utilities/src/ に、
- NumericSeriesFile_RY.cxxというファイルを以下のように作り
#include "itkNumericSeriesFileNames.h"
int main(int argc, char *argv[] )
{
itk::NumericSeriesFileNames::Pointer numericSeriesFileNames = itk::NumericSeriesFileNames::New();
numericSeriesFileNames->SetStartIndex(atoi( argv[2] ) );
numericSeriesFileNames->SetEndIndex(atoi( argv[3] ) );
numericSeriesFileNames->SetIncrementIndex(1);
numericSeriesFileNames->SetSeriesFormat(argv[1]);
std::vector< std::string > fileNames = numericSeriesFileNames->GetFileNames();
for(unsigned int i = 0; i < fileNames.size(); ++i)
{
std::cout << fileNames[i] << std::endl;
}
return EXIT_SUCCESS;
}
cmake_minimum_required(VERSION 2.8)
project(NumericSeriesFileNames)
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
if (ITKVtkGlue_LOADED)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
endif()
add_executable(NumericSeriesFileNames_RY MACOSX_BUNDLE NumericSeriesFileNames_RY.cxx)
if( "${ITK_VERSION_MAJOR}" LESS 4 )
target_link_libraries(NumericSeriesFileNames_RY ITKReview ${ITK_LIBRARIES})
else( "${ITK_VERSION_MAJOR}" LESS 4 )
target_link_libraries(NumericSeriesFileNames_RY ${ITK_LIBRARIES})
endif( "${ITK_VERSION_MAJOR}" LESS 4 )
- その上で/home/ryamada/ITK_Projects_RY/NumericSeriesFile_RY/以下に、srcというディレクトリと buildディレクトリを作り、上記の2ファイルをsrc/下に入れ、build/ディレクトリの中から
$ ccmake ../src
- とすれば、ITKを置き場と訊かれるので、それを与えてconfigure → generate、とし、その結果としてできるMakefileに対して、makeすると、実行可能ファイルNumericSeriesFileNames_RY ができるので
./NumericSeriesFileNames_RY hoge_%d.tif 3 12
- として実行すれば、以下ののように連番ファイル名ができる
[ryamada@Linux2 build]$ ./NumericSeriesFileNames_RY hoge_%d.tif 3 12
hoge_3.tif
hoge_4.tif
hoge_5.tif
hoge_6.tif
hoge_7.tif
hoge_8.tif
hoge_9.tif
hoge_10.tif
hoge_11.tif
hoge_12.tif