[ITK-users] Multiply two .img or .hdr images in ITK
Pansam Changmi
pansam5green at gmail.com
Sun Apr 27 12:47:35 EDT 2014
Maybe I forgot to mention. I am trying to read given two volume images(.hdr
and .img files) and multiply them. Then write the resultant image into one
single image file(.hdr and .img)
On Sun, Apr 27, 2014 at 10:04 PM, Pansam Changmi <pansam5green at gmail.com>wrote:
> Error 27 error C2027: use of undefined type
> 'itk::Concept::MultiplyOperator'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 98 1 MultiplyImageFilter
> Error 1 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 73 1 MultiplyImageFilter
> Error 4 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 74 1 MultiplyImageFilter
> Error 7 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 75 1 MultiplyImageFilter
> Error 13 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 82 1 MultiplyImageFilter
> Error 16 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 83 1 MultiplyImageFilter
> Error 19 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 84 1 MultiplyImageFilter
> Error 24 error C2039: 'PixelType' : is not a member of
> 'itk::ImageFileReader<TOutputImage>'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 98 1 MultiplyImageFilter
> Error 3 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 73 1 MultiplyImageFilter
> Error 6 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 74 1 MultiplyImageFilter
> Error 9 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 75 1 MultiplyImageFilter
> Error 15 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 82 1 MultiplyImageFilter
> Error 18 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 83 1 MultiplyImageFilter
> Error 21 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 84 1 MultiplyImageFilter
> Error 26 error C2065: 'PixelType' : undeclared identifier
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 98 1 MultiplyImageFilter
> Error 2 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 73 1 MultiplyImageFilter
> Error 5 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 74 1 MultiplyImageFilter
> Error 8 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 75 1 MultiplyImageFilter
> Error 14 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 82 1 MultiplyImageFilter
> Error 17 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 83 1 MultiplyImageFilter
> Error 20 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 84 1 MultiplyImageFilter
> Error 25 error C2146: syntax error : missing ',' before identifier
> 'PixelType'
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 98 1 MultiplyImageFilter
> Error 28 error C2663:
> 'itk::BinaryFunctorImageFilter<TInputImage1,TInputImage2,TOutputImage,TFunction>::SetInput1'
> : 3 overloads have no legal conversion for 'this' pointer
> D:\Academics\Course\Semester 12\Design of Surgical
> Devices\Project\TestProject\MultiplyImageFilter\src\MultiplyImageFilter.cxx
> 37 1 MultiplyImageFilter
> Error 29 error C2663:
> 'itk::BinaryFunctorImageFilter<TInputImage1,TInputImage2,TOutputImage,TFunction>::SetInput2'
> : 3 overloads have no legal conversion for 'this' pointer
> D:\Academics\Course\Semester 12\Design of Surgical
> Devices\Project\TestProject\MultiplyImageFilter\src\MultiplyImageFilter.cxx
> 38 1 MultiplyImageFilter
> Error 12 error C2955: 'itk::BinaryFunctorImageFilter' : use of class
> template requires template argument list
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 76 1 MultiplyImageFilter
> Error 11 error C2955: 'itk::Functor::Mult' : use of class template
> requires template argument list
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 75 1 MultiplyImageFilter
> Error 23 error C2955: 'itk::Functor::Mult' : use of class template
> requires template argument list
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 85 1 MultiplyImageFilter
> Error 10 error C3203: 'Mult' : unspecialized class template can't be
> used as a template argument for template parameter 'TFunction', expected a
> real type
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 75 1 MultiplyImageFilter
> Error 22 error C3203: 'Mult' : unspecialized class template can't be
> used as a template argument for template parameter 'TFunction', expected a
> real type
> D:\ITK\src\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h
> 85 1 MultiplyImageFilter
> 30 IntelliSense: no instance of overloaded function
> "itk::ImageFileWriter<TInputImage>::SetInput [with
> TInputImage=itk::Image<unsigned char, 3U>]" matches the argument list
> argument types are: (itk::ImageFileReader<itk::Image<unsigned
> char, 3U>, itk::DefaultConvertPixelTraits<unsigned char>> *)
> object type is: itk::ImageFileWriter<itk::Image<unsigned char,
> 3U>> d:\Academics\Course\Semester 12\Design of Surgical
> Devices\Project\TestProject\MultiplyImageFilter\src\MultiplyImageFilter.cxx
> 43 9 MultiplyImageFilter
>
>
>
> On Sun, Apr 27, 2014 at 8:29 PM, Bill Lorensen <bill.lorensen at gmail.com>wrote:
>
>> What are the errors?
>>
>> On Sun, Apr 27, 2014 at 10:48 AM, Pansam Changmi <pansam5green at gmail.com>
>> wrote:
>> > Thanks guys. My requirement is kind of just using ITK. It is an
>> assignment
>> > actually.
>> > Can you guys help me out what am I doing wrong here. I have busted my
>> head
>> > over this for the whole day. I am getting like 30 errors :'(
>> >
>> > The code:
>> >
>> >
>> > #include "itkImage.h"
>> > #include "itkImageFileReader.h"
>> > #include "itkImageFileWriter.h"
>> > #include "itkRescaleIntensityImageFilter.h"
>> > #include "itkMultiplyImageFilter.h"
>> >
>> > int main( int argc, char * argv[] )
>> > {
>> > if( argc < 4 )
>> > {
>> > std::cerr << "Usage: " << argv[0];
>> > std::cerr << " image1 image2 ";
>> >
>> > std::cerr << "outputImagefile " << std::endl;
>> > return EXIT_FAILURE;
>> > }
>> >
>> > typedef unsigned char PixelType;
>> >
>> > const unsigned int Dimension = 3;
>> > typedef itk::Image< PixelType, Dimension > Image1Type;
>> > typedef itk::Image< PixelType, Dimension > Image2Type;
>> >
>> > typedef itk::ImageFileReader< Image1Type > Image1ReaderType;
>> > typedef itk::ImageFileReader< Image2Type > Image2ReaderType;
>> >
>> >
>> > Image1ReaderType::Pointer Image1Reader = Image1ReaderType::New();
>> > Image2ReaderType::Pointer Image2Reader = Image2ReaderType::New();
>> >
>> > Image1Reader->SetFileName( argv[1] );
>> > Image2Reader->SetFileName( argv[2] );
>> >
>> > typedef itk::MultiplyImageFilter <Image1ReaderType, Image2ReaderType >
>> > MultiplyImageFilterType;
>> >
>> > MultiplyImageFilterType::Pointer multiplyFilter =
>> > MultiplyImageFilterType::New ();
>> > multiplyFilter->SetInput1(Image1Reader);
>> > multiplyFilter->SetInput2(Image2Reader);
>> >
>> > typedef itk::Image< PixelType, Dimension > OutputImageType;
>> > typedef itk::ImageFileWriter< OutputImageType > WriterType;
>> > WriterType::Pointer writer = WriterType::New();
>> > writer->SetFileName( argv[3] );
>> > writer->SetInput( multiplyFilter->GetOutput() );
>> > writer->Update();
>> >
>> > return EXIT_SUCCESS;
>> > }
>> >
>> >
>> >
>> >
>> > On Sun, Apr 27, 2014 at 7:00 PM, Bradley Lowekamp <
>> blowekamp at mail.nih.gov>
>> > wrote:
>> >>
>> >> Hello,
>> >>
>> >> You may be interested in the SimpleITK bindings for ITK. SimpleITK
>> >> provides an easy to use interface on top of ITK which excels
>> facilitation
>> >> quick image manipulation with ITK, and enables interactive
>> manipulations
>> >> with tools such as IPython[1]
>> >>
>> >> SimpleITK for python is readily available as a binary download[2].
>> What
>> >> you are looking for can be done in SimpleITK like this:
>> >>
>> >> import SimpleITK as sitk
>> >> img1 = sitk.ReadImage("head.img")
>> >> img2 = sitk.ReadImage("BrainMask.img")
>> >> out = img1*img2
>> >> sitk.WriteImage("out.img")
>> >>
>> >> This assumes that the two images occupy the same physical space and are
>> >> the same pixel type. The binary operators in SimpleITK require that the
>> >> pixel types are the same, so a cast may be needed.
>> >>
>> >> However, if you are multiplying a mask by the grayscale you may be
>> >> interested in the MaskImageFilter[3]. This filter will support most
>> >> combinations and can be used:
>> >>
>> >> sitk.Mask(img1, img2).
>> >>
>> >> Enjoy,
>> >> Brad
>> >>
>> >> [1] http://simpleitk.github.io/SimpleITK-Notebooks/
>> >> [2]
>> >>
>> http://www.itk.org/Wiki/SimpleITK/GettingStarted#Downloading_the_binaries
>> >> [3]
>> >>
>> http://www.itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1MaskImageFilter.html
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> On Apr 27, 2014, at 1:39 AM, Pansam Changmi <pansam5green at gmail.com>
>> >> wrote:
>> >>
>> >> > Hi,
>> >> >
>> >> > Can anyone tell me how to multiply two .img or .hdr images (for
>> example
>> >> > head.img and BrainMask.img) in ITK? Do I need VTK? ITK-Snap? C3d
>> tool?
>> >> >
>> >> > Regards,
>> >> > Pansam
>> >> > _____________________________________
>> >> > 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.php
>> >> >
>> >> > 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
>> >>
>> >
>> >
>> > _____________________________________
>> > 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.php
>> >
>> > 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
>> >
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20140427/af107af3/attachment.html>
More information about the Insight-users
mailing list