[Insight-users] help needed please! Affine transform
lydia coin
lydia_coin3d@yahoo.fr
Wed, 18 Dec 2002 17:35:47 +0100 (CET)
--0-670928743-1040229347=:31201
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
I used importImageFilter instead of ImportImageContainer. It worked but still when I set up the ConnectedThresholdImageFilter and update it , there is an error saying it stops at Rebuildtransfom() of the file itkImage.txx because the transform of the image is not affine. I don't need a transform for the image. am I obliged to set an affine transform and why?
"Miller, James V (Research)" <millerjv@crd.ge.com> wrote:Lydia, You can use the ImportImageFilter to set up the "imported" for ITK. This is easier than creating theITK image and ImportImageContainer. itk::ImportImageFilter<unsigned char, 2>::Pointer import = itk::ImportImageFilter<unsigned char, 2>::New();import->SetImportPointer(label_image2, size[0]*size[1], false);import->SetRegion( region );import->SetSpacing( spacing );import->SetOrigin( origin );
typedef itk::ConnectedThresholdImageFilter<ImageType,ImageType> FilterType;
FilterType::Pointer filter = FilterType::New();
filter->SetInput( import->GetOutput() ); // SET THE INPUT TO THE FILTER TO THE OUTPUT OF THE IMPORT
FilterType::IndexType seed; seed[0] = 165; seed[1] = 90;
filter->SetSeed(seed);
filter->SetLower(0);
filter->SetUpper(255);
filter->SetReplaceValue(255);
filter-> Update();
-----Original Message-----
From: lydia coin [mailto:lydia_coin3d@yahoo.fr]
Sent: Wednesday, December 18, 2002 10:08 AM
To: insight-users@public.kitware.com
Subject: [Insight-users] help needed please!
Could anyone tell what's wrong with these lines. I'm stagnating since yesterday and no solution is suggested to my problem. Please it is urgent
/*** this is for importing pixel values from an unsigned char type pointer **/
itk::ImportImageContainer<long unsigned int, unsigned char>::Pointer import;
import = itk::ImportImageContainer<long unsigned int, unsigned char>::New();
import->Initialize();
import->Reserve(size[0]*size[1]);
import->SetImportPointer(labeled_image2,size[0]*size[1],false);
/****setting the pixel values in the itkimage****/
typedef itk::Image<unsigned char, 2> ImageType;
ImageType:: Pointer img = ImageType::New();
double values[]={2,2};
double origin_x= 0;
double origin_y=0;
double origin[] = {origin_x, origin_y};
ImageType::IndexType index;
img->SetOrigin(origin);
img->SetSpacing(values); // here I have already a problem at RebuildTransform() method
ImageType::SizeType imagesize;
imagesize[0] = 256;
imagesize[1] = 256;
ImageType::RegionType region;
region.SetSize( imagesize );
img->SetLargestPossibleRegion( region );
img->SetBufferedRegion( region );
img->SetRequestedRegion(region);
img->Allocate();
img->SetPixelContainer(import);
img->Update();
/******** connectedThresholdImageFilter***********/
typedef itk::ConnectedThresholdImageFilter<ImageType,ImageType> FilterType;
FilterType::Pointer filter = FilterType::New();
filter->SetInput(img);
FilterType::IndexType seed; seed[0] = 165; seed[1] = 90;
filter->SetSeed(seed);
filter->SetLower(0);
filter->SetUpper(255);
filter->SetReplaceValue(255);
filter-> Update();// here iot doesn't work because of the dynamic-cast of copyInformation method.
---------------------------------
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Testez le nouveau Yahoo! Mail
---------------------------------
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Testez le nouveau Yahoo! Mail
--0-670928743-1040229347=:31201
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
<P>I used importImageFilter instead of ImportImageContainer. It worked but still when I set up the <FONT color=#0000ff>ConnectedThresholdImageFilter and update it , there is an error saying it stops at Rebuildtransfom() of the file itkImage.txx because the transform of the image is not affine. I don't need a transform for the image. am I obliged to set an affine transform and why?</FONT>
<P> <B><I>"Miller, James V (Research)" <millerjv@crd.ge.com></I></B> wrote:
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">
<META content="MSHTML 6.00.2715.400" name=GENERATOR>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>Lydia, </FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>You can use the ImportImageFilter to set up the "imported" for ITK. This is easier than creating the</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>ITK image and ImportImageContainer.</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>itk::ImportImageFilter<unsigned char, 2>::Pointer import = itk::ImportImageFilter<unsigned char, 2>::New();</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>import->SetImportPointer(label_image2, size[0]*size[1], false);</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>import->SetRegion( region );</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>import->SetSpacing( spacing );</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2>import->SetOrigin( origin );</FONT></SPAN></DIV>
<DIV><SPAN class=453305015-18122002>
<P><FONT color=#0000ff size=2>typedef itk::ConnectedThresholdImageFilter<ImageType,ImageType> FilterType; </FONT>
<P><FONT color=#0000ff size=2> FilterType::Pointer filter = FilterType::New();<BR> filter->SetInput(<SPAN class=453305015-18122002> </SPAN>i<SPAN class=453305015-18122002>mport->GetOutput() </SPAN>);<SPAN class=453305015-18122002> // SET THE INPUT TO THE FILTER TO THE OUTPUT OF THE IMPORT </SPAN></FONT></P>
<P><FONT color=#0000ff size=2><SPAN class=453305015-18122002></SPAN><BR> FilterType::IndexType seed; seed[0] = 165; seed[1] = 90;<BR> filter->SetSeed(seed);<BR> filter->SetLower(0);<BR> filter->SetUpper(255);<BR> filter->SetReplaceValue(255);<BR> <SPAN class=453305015-18122002> </SPAN><SPAN class=453305015-18122002> </SPAN>filter-> Update();</FONT></P></SPAN></DIV>
<DIV><SPAN class=453305015-18122002><FONT color=#0000ff size=2></FONT></SPAN> </DIV>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid">
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma size=2>-----Original Message-----<BR><B>From:</B> lydia coin [mailto:lydia_coin3d@yahoo.fr]<BR><B>Sent:</B> Wednesday, December 18, 2002 10:08 AM<BR><B>To:</B> insight-users@public.kitware.com<BR><B>Subject:</B> [Insight-users] help needed please!<BR><BR></FONT></DIV>
<P>Could anyone tell what's wrong with these lines. I'm stagnating since yesterday and no solution is suggested to my problem. Please it is urgent
<P> /*** this is for importing pixel values from an unsigned char type pointer **/
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">
<P>itk::ImportImageContainer<long unsigned int, unsigned char>::Pointer import;<BR> import = itk::ImportImageContainer<long unsigned int, unsigned char>::New();<BR> import->Initialize();<BR> import->Reserve(size[0]*size[1]);<BR> import->SetImportPointer(labeled_image2,size[0]*size[1],false);</P>
<P>/****setting the pixel values in the itkimage****/
<P>typedef itk::Image<unsigned char, 2> ImageType;<BR> ImageType:: Pointer img = ImageType::New();
<P> double values[]={2,2};<BR> double origin_x= 0;<BR> double origin_y=0;<BR> double origin[] = {origin_x, origin_y};<BR> ImageType::IndexType index;<BR> img->SetOrigin(origin);<BR> img->SetSpacing(values); // here I have already a problem at RebuildTransform() method
<P> ImageType::SizeType imagesize;<BR> imagesize[0] = 256;<BR> imagesize[1] = 256;<BR> <BR> ImageType::RegionType region;<BR> region.SetSize( imagesize );<BR> <BR> img->SetLargestPossibleRegion( region );<BR> img->SetBufferedRegion( region );<BR> img->SetRequestedRegion(region);<BR> img->Allocate();<BR> img->SetPixelContainer(import);<BR> img->Update();
<P>/******** connectedThresholdImageFilter***********/
<P>typedef itk::ConnectedThresholdImageFilter<ImageType,ImageType> FilterType;
<P> FilterType::Pointer filter = FilterType::New();<BR> filter->SetInput(img);<BR> FilterType::IndexType seed; seed[0] = 165; seed[1] = 90;<BR> filter->SetSeed(seed);<BR> filter->SetLower(0);<BR> filter->SetUpper(255);<BR> filter->SetReplaceValue(255);<BR> filter-> Update();// here iot doesn't work because of the dynamic-cast of copyInformation method. </P></BLOCKQUOTE>
<P><BR>
<HR SIZE=1>
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !<BR><A href="http://fr.mail.yahoo.com/">Testez le nouveau Yahoo! Mail</A></BLOCKQUOTE></BLOCKQUOTE><p><br><hr size=1>Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !<br>
<a href=http://fr.mail.yahoo.com>Testez le nouveau Yahoo! Mail</a>
--0-670928743-1040229347=:31201--