[Insight-users] Pixel difference between two images
Bill Lorensen
bill.lorensen at gmail.com
Mon Oct 10 13:19:51 EDT 2011
Here is a wiki example:
http://itk.org/Wiki/ITK/Examples/Metrics/MeanSquaresImageToImageMetric
On Mon, Oct 10, 2011 at 12:11 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> You needed to specify the region and interpolator.
>
> This should work. I'll add it as a wiki example. Supply two images on
> the command line. If you repeat the same image, the results should be
> 0.
>
> Bill
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkMeanSquaresImageToImageMetric.h"
> #include "itkLinearInterpolateImageFunction.h"
> #include "itkIdentityTransform.h"
>
> int main(int argc, char *argv[])
> {
> typedef itk::Image< double, 2 > ImageType;
> typedef itk::ImageFileReader<ImageType> ReaderType;
>
> if (argc < 3)
> {
> std::cout << "Usage: " << argv[0] << " imageFile1 imageFile2" << std::endl;
> return EXIT_FAILURE;
> }
> ReaderType::Pointer fixedReader = ReaderType::New();
> fixedReader->SetFileName(argv[1]);
> fixedReader->Update();
>
> ReaderType::Pointer movingReader = ReaderType::New();
> movingReader->SetFileName(argv[2]);
> movingReader->Update();
>
> ImageType::Pointer fixedImage = fixedReader->GetOutput();
> ImageType::Pointer movingImage = movingReader->GetOutput();
>
> typedef itk::MeanSquaresImageToImageMetric < ImageType , ImageType >
> MetricType;
> typedef itk::LinearInterpolateImageFunction<ImageType, double >
> InterpolatorType;
> typedef itk::IdentityTransform < double , 2 > TransformType;
>
> MetricType::Pointer metric = MetricType::New();
> TransformType::Pointer transform = TransformType::New();
>
> InterpolatorType::Pointer interpolator = InterpolatorType::New();
> interpolator->SetInputImage( fixedImage );
>
> metric->SetFixedImage( fixedImage );
> metric->SetMovingImage( movingImage );
> metric->SetFixedImageRegion( fixedImage->GetLargestPossibleRegion() );
> metric->SetInterpolator( interpolator.GetPointer() );
> metric->SetTransform( transform );
> metric->SetInterpolator( interpolator );
>
> TransformType::ParametersType params;
>
> metric->Initialize();
> std::cout << metric->GetValue( params ) << std::endl ;
>
> return EXIT_SUCCESS;
> }
>
>
> On Wed, Oct 5, 2011 at 5:46 PM, soheilghafurian
> <soheilghafurian at yahoo.com> wrote:
>> Hi Cori. I made the changes you said, but I still get the same error:
>>
>> Debug Error!
>> This application has requested the Runtime to terminate it in an unusal way.
>>
>> here is the code ( the previous one + two new corrections you made) :
>>
>> #include "itkImage.h"
>> #include "itkImageFileReader.h"
>> #include <itkMeanSquaresImageToImageMetric.h>
>> #include <itkIdentityTransform.h>
>>
>> #include "QuickView.h"
>>
>> using namespace std ;
>>
>> int main()
>> {
>> typedef itk::Image< double, 2 > ImageType;
>> typedef itk::ImageFileReader<ImageType> ReaderType;
>>
>> ReaderType::Pointer reader = ReaderType::New();
>> reader->SetFileName("Image.png");
>> reader->Update() ;
>>
>> QuickView viewer;
>> viewer.AddImage<ImageType>(reader->GetOutput());
>>
>>
>> ImageType::Pointer FixedImage = reader->GetOutput() ;
>> ImageType::Pointer MovingImage = reader->GetOutput() ;
>>
>> typedef itk::MeanSquaresImageToImageMetric < ImageType , ImageType >
>> MetricType ;
>> typedef itk::IdentityTransform < double , 2 > TransformType ;
>>
>> MetricType::Pointer metric = MetricType::New() ;
>> TransformType::Pointer transform = TransformType::New() ;
>>
>> metric->SetFixedImage( FixedImage ) ;
>> metric->SetMovingImage( MovingImage ) ;
>> metric->SetTransform( transform ) ;
>>
>> TransformType::ParametersType params ;
>>
>> metric->Initialize() ;
>> cout<<endl<< metric->GetValue( params ) << endl ;
>>
>> // viewer.Visualize();
>>
>> return EXIT_SUCCESS;
>> }
>>
>> --
>> View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Pixel-difference-between-two-images-tp6832343p6863968.html
>> Sent from the ITK Insight Users mailing list archive at Nabble.com.
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>
More information about the Insight-users
mailing list