現在、ITKライブラリで画像登録を行っています。OpenCV でソース イメージを読み取り、ITKImage に変換します。登録後、結果を CVMat に変換し、imwrite を使用して保存します。
ただし、ITKOmageToCVMat は常に白い画像 (imshow で表示) を提供し、imwrite の後、結果はフォルダーに保存されません。それはとても奇妙です...
以下は私のコードです:
cv::Mat img1 = imread(argv[1], IMREAD_GRAYSCALE);
cv::Mat img2 = imread(argv[2], IMREAD_GRAYSCALE);
typedef float PixelType;
const unsigned int Dimension = 2;
typedef itk::Image< PixelType, Dimension > FixedImageType;
typedef itk::Image< PixelType, Dimension > MovingImageType;
typedef itk::OpenCVImageBridge BridgeType;
FixedImageType::Pointer fixedImage = BridgeType::CVMatToITKImage<FixedImageType>(img1);
MovingImageType::Pointer movingImage = BridgeType::CVMatToITKImage<MovingImageType>(img2);
Mat img3 = itk::OpenCVImageBridge::ITKImageToCVMat<MovingImageType>(movingImage);
display("moving image", img3);
string filename3 = "img3";
imwrite(filename3, img3);
登録しなくても、画像を CVMat から ITKImage に変換してから元に戻すだけでは、うまくいきません.... 心当たりはありますか? ありがとうございました :)