From zjzhang@ee.cuhk.edu.hk Sat Jun 1 04:24:33 2002 From: zjzhang@ee.cuhk.edu.hk (zhangzhijun) Date: Sat, 1 Jun 2002 11:24:33 +0800 Subject: [Insight-users] how to run imageregistration in itk? Message-ID: <001101c2091b$d9816ca0$1223bd89@ee.cuhk.edu.hk> This is a multi-part message in MIME format. ------=_NextPart_000_000E_01C2095E.E76AB0E0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Dear all: Can anyone tell me how to run the project of image registration? I have = loaded in two 3D image, and then I=20 press the start registration button, there is an exception happens. How = to use this correctly? regards, zhang zhijun=20 ------=_NextPart_000_000E_01C2095E.E76AB0E0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Dear all:
 
Can anyone tell me how to run the = project of image=20 registration? I have loaded in two 3D image, and then I =
press the start registration button, = there is=20 an exception happens. How to use this correctly?
 
regards,
zhang = zhijun 
------=_NextPart_000_000E_01C2095E.E76AB0E0-- From luis.ibanez@kitware.com Sat Jun 1 16:04:32 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sat, 01 Jun 2002 11:04:32 -0400 Subject: [Insight-users] Help References: <003f01c207de$e67ab210$01000001@macinfo.net> <3CF62D34.90207@kitware.com> <000f01c20868$2fd870d0$01000001@macinfo.net> <3CF770A5.6000805@kitware.com> <000801c2092b$c520cca0$01000001@macinfo.net> Message-ID: <3CF8E280.2040809@kitware.com> Hi cspl, you can give the filename to the ImageFileReader by calling : SetFileName(); See the man page for details: http://www.itk.org/Insight/Doxygen/html/classitk_1_1ImageFileReader.html For example: typedef itk::Image ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; ReaderType::Pointer reader = ReaderType::New(); reader->SetFileName("/home/cspl/data/myImage.raw"); // this line registers a Factory of readers // capable of reading RAW image files itk::RawImageIOFactory::RegisterOneFactory(); // Here: actually read the file reader->Update(); NOTE that the raw readers requires you to provide the image size and spacing since they cannot figure it out from the file. See the following man page for details: http://www.itk.org/Insight/Doxygen/html/classitk_1_1RawImageIO.html After that you can connect the reader's output as input to any number of filters, for example: typedef itk::LaplacianImageFilter LaplacianFilterType; LaplacianFilterType::Pointer filterA = LaplacianFilterType::New(); filterA->SetInput( reader->GetOutput() ); NOTE: in the code in you email, you are using Iterators to pass the output of the reader to an input image. You *don't* need to do that. The ITK pipeline mechanisms will do all that for you ! Just plug the output of the reader as input of the filter. ---- If you get an Exception during execution, Please post the exception message to the mailing-list, that could be useful to figure out the problem. Please let us know if you find any problems Luis ================================ cspl wrote: > Dear Mr.Luis, > > Now I can able to run the application.Actually I want to give the input to > the Laplician filter and get the output.How to give the filename to > ImageFilereader.I have written code as follows.It is giving memory > exception.Please tell me that how to give the input's and get output's. > > > > int main() > { > > UnsignedImageType::RegionType requestedRegion; > UnsignedImageType::SizeType size; > UnsignedImageType::IndexType index; > > > size of the image region > //If you want to try a 2D image, you need to change the dimension. > size[0] = 256; > size[1] = 128; > size[2] = 10; > > index[0] = 0; > index[1] = 0; > index[2] = 0; > > requestedRegion.SetSize(size); > requestedRegion.SetIndex(index); > > > itk22::ImageFileReader::Pointer reader; > > reader->SetFileName("c:\\dicomfiles\\download\\xyz\\1.raw"); > > ///commented > ing *pfname=new std::string; > strcpy(pfname,"1.raw"); > reader->SetFileName(fname);*/ > > // reader->SetPixelSize(4); > // reader->SetRegion(requestedRegion); > //cout<<"coming here"< reader->Update(); > // reader->GenerateData(); > > > // UnsignedImageType::Pointer inPtr = reader->GetOutput(); > ImageType::Pointer input = ImageType::New(); > input->SetLargestPossibleRegion(requestedRegion); > input->SetRequestedRegion(requestedRegion); > input->SetBufferedRegion(requestedRegion); > input->Allocate(); > > ImageType::Pointer output = ImageType::New(); > ///commented > > geRegionIterator uit(inPtr, > inPtr->GetRequestedRegion()); > itk::ImageRegionIterator it(input, > input->GetRequestedRegion()); > > uit.GoToBegin(); > it.GoToBegin(); > > while(!uit.IsAtEnd()) > { > it.Value() = (float)uit.Value(); > ++uit; > ++it; > } > > > ImageType::Pointer output; > > //itk::ImageFileReader::Pointer reader; > //reader = itk::ImageFileReader::New(); > //reader->SetFileName(in); > //reader->Update(); > //ImageType::Pointer input = reader->GetOutput(); > > float value[3]; > value[0] = 2.0f; > value[1] = 2.0f; > value[2] = 2.0f;*/ > > > cout<<"Laplacian filter test"< itk12::DiscreteGaussianImageFilter::Pointer > gaussianFilter = itk12::DiscreteGaussianImageFilter ImageType>::New(); > > gaussianFilter->SetInput(input); > // gaussianFilter->SetVariance(value); > > > itk::LaplacianImageFilter::Pointer > lapFilter = itk::LaplacianImageFilter::New(); > > > lapFilter->SetInput(gaussianFilter->GetOutput()); > > > lapFilter->Update(); > > output = lapFilter->GetOutput(); > cout<GetLargestPossibleRegion(); > > return 0; > } > > I am passing raw file as input.I want it's o/p.Please in which way I have to > follow.I have copied required name spaces to my cpp file to run this > application.But it is giving memory exception when it is at runtime.Please > tell me how to approach the correct flow of syntax. > > > Thanking you, > Regards, > Ramakrishna > > > From bhs@pvv.org Sat Jun 1 23:10:29 2002 From: bhs@pvv.org (Bjorn Hanch Sollie) Date: Sun, 2 Jun 2002 00:10:29 +0200 (CEST) Subject: [Insight-users] Questions about the fast marching and level set filters Message-ID: I have some questions I will really, really appreciate to get some answers to: I have been doing some level set filtering using the ShapeDetectionLevelSetFilter. The filter works fine and has given me great results so far, except I haven't quite figured out how to properly use narrow-banding yet (code below), so the filter takes very long to run. How can I do, say, 5-10 iterations with a narrow band of 5 each time, rather than a single iteration with a narrow band of 35? Do I use the ReinitializeLevelSetImageFilter for this, and if so how? Also, do you recommend that I rather switch to the more recent(?) code instead (SparseFieldLevelSetImageFilter/LevelSet3DFunction for example)? I'm slightly confused by the different level set filters present in ITK, I'm unsure of which one is preferable to use, and I'll be happy for some advice here. Finally, a question about the FastMarchingImageFilter: I have been using this for shape detection as well, growing a shape from a user selected seed point. The problem I have here is that if the potential image has pixel values zero (if only infinitesimally), the region doesn't expand (even over time) to include these pixels in the region. This means that if I have a well defined region, with sharp edges around it, and some very small variations in the (practically) monotonous region inside, the fast marching filter fails to detect the entire region. Is there a remedy for this, or is a limitation of this filter? Here is my current (working) ShapeDetectionLevelSetFilter code: // Begin level set shape detection std::cout << "Shape Detection filtering..." << std::endl; typedef itk::ShapeDetectionLevelSetFilter ShapeDetectorType; ShapeDetectorType::Pointer shaper = ShapeDetectorType::New(); shaper->SetInput(initiallevelset); shaper->SetEdgeImage(edgepotentialimage); shaper->SetLengthPenaltyStrength(0.01); shaper->SetNumberOfIterations(175); shaper->SetNarrowBanding(true); shaper->SetNarrowBandwidth(35.0); shaper->SetTimeStepSize(3.0); shaper->Update(); // End level set shape detection -Bjorn -- The History of the Universe Chapter 1: Bang! Chapter 2: Sss... Chapter 3: Crunch! The End From luis.ibanez@kitware.com Mon Jun 3 14:50:38 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Mon, 03 Jun 2002 09:50:38 -0400 Subject: [Insight-users] Registering ImageIO factories References: <003f01c207de$e67ab210$01000001@macinfo.net> <3CF62D34.90207@kitware.com> <000f01c20868$2fd870d0$01000001@macinfo.net> <3CF770A5.6000805@kitware.com> <000801c2092b$c520cca0$01000001@macinfo.net> <3CF8E280.2040809@kitware.com> <000801c20ae3$83257800$01000001@macinfo.net> Message-ID: <3CFB742E.1070307@kitware.com> Hi cspl, You do have to register an IO factory in order to be able to read an image file. ImageFileReader<> is only a front end that provides a uniform interface to the data pipeline. The actual file reading is done by the ImageIO objects. This structure allows you to modularly add as many image format readers as you wish, without having to change your code. Please add the line: itk::RawImageIOFactory::RegisterOneFactory(); If you don't register any ImageIO factory, the ImageFileReader will just report that it cannot read the .raw file. The 'report' is sent in the form of an Exception ! You may also want to put the reading code in a try/catch block, like: try { reader->Update(); } catch( itk::ExceptionObject & except ) { std::cerr << except << std::endl; } ITK exceptions print a description of the error and the location where it was originated. This will help you to identify the reasons for the failure. Luis ====================================== cspl wrote: > Dear Mr.Luis, > > I have written code as follows.I am getting exception when run time.Actually > I am not registring the RawImageIOfactory.How to make it register in code.I > have added the line to my code.It is giving errors.How to register and get > the o/p .If you don't mind please follow through my code and tell me in > which way I have to follow. > > int main(int argc, char* argv[]) > { > > > UnsignedImageType::RegionType requestedRegion; > UnsignedImageType::SizeType size; > UnsignedImageType::IndexType index; > > > //Set the size of the image region > //If you want to try a 2D image, you need to change the dimension. > size[0] = 256; > size[1] = 128; > size[2] = 10; > > index[0] = 0; > index[1] = 0; > index[2] = 0; > > requestedRegion.SetSize(size); > requestedRegion.SetIndex(index); > typedef itk::Image ImageType; > typedef itk::ImageFileReader< ImageType > ReaderType; > ReaderType::Pointer reader = ReaderType::New(); > reader->SetFileName("c:\\dicomfiles\\download\\xyz\\1.raw"); > //itk::RawImageIOFactory::RegisterOneFactory(); > reader->Update(); > cout<<"Laplacian filter test"< itk::LaplacianImageFilter::Pointer > lapFilter = itk::LaplacianImageFilter::New(); > lapFilter->SetInput(reader->GetOutput()); > cout<GetOutput(); > > return EXIT_SUCCESS; > } > Now If I am calling reader->Update(),it is showing message box abnormal > termination.If commented on both update and RawImageIOfactory,I am getting > properties and exception like follows. > The instruction at "0x10217a50"referenced memory at "0x000000000".The memory > could not be "read". > And how to set image size and spacing .There is no functions to call setsize > and setdataspacing. > Please give me suggestion. > > Thanking you, > > > Regards, > Ramakrishna > > > > From luis.ibanez@kitware.com Tue Jun 4 06:40:19 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Tue, 04 Jun 2002 01:40:19 -0400 Subject: [Insight-users] RE: how to run imageregistration in itk? Message-ID: <3CFC52C3.2070809@kitware.com> Hi Zhang, The ImageRegistration example is intended to be a demo of a simple validation experiment. 1) You load two images 2) You intentionally misregister one of them 3) You run the registration and should recover the original image A typical example is two load the same image as Fixed and Moving. Then you apply a rotation of 5 degress and a translation of 10 pixels in X to the moving image. (The "A" parameters means angle in the "Rotation" section of the GUI). You can see the input images in slice by slice format by clicking on the buttons: "Fixed Image" and "Moving Image". Note that it will take some seconds for the image viewer to appear since the image intensities have to be normalized for display. Once you set the values in the transformation, you click on the "Moving Image" button located in front of the "Resample Filter". The progress bar will indicate you how the resampling advances. When the Resampling is done, the "misregistered" image will appear. Then you are ready to start the registration process. Do the following: 1) click on the "Metric" choice button and select a metric: options are: MeanSquares MutualInformation NormalizedCorrelation PatternIntensity 2) click on the "Transform" choice button and select a transform options are: Translation Scale Rigid Affine 3) click on the "Interpolator" choice button and select an interpolation method. Options are: NearestNeighbor LinearInterpolation 4) click on the "Optimizer" choice button and select an optimizer. Options are: GradientDescent RegularStepGradientDescentt ConjugateGradient 5) Get some coffee !! and click on the "Start" button. That will initiate the registration process using the components that you just selected. When the registration process is done, you may click on the "Registered Image" button in order to resample the "misregistered image" using the Transform that is the solution of the registration process. The corrected image should be appear in a viewer and it should look pretty much the same as the input "Moving image" before missregistration. Please let us know if you encounter any problem. Thanks Luis ==================================== zhang zhijun wrote > > Dear all: > > Can anyone tell me how to run the project of image registration? > I have loaded in two 3D image, and then I press the start registration > button, there is an exception happens. How = > to use this correctly? > From affable@hd2.dot.net.in Tue Jun 4 12:59:06 2002 From: affable@hd2.dot.net.in (cspl) Date: Tue, 4 Jun 2002 17:29:06 +0530 Subject: [Insight-users] problems while working with itk::laplacianfilter Message-ID: <003c01c20bcc$b360e1a0$01000001@macinfo.net> This is a multi-part message in MIME format. ------=_NextPart_000_001C_01C20BED.53F49DD0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable June,4,2002 Dear Luis, I am SrinivaJ, I am trying to load a raw file and apply laplacian effect on it, and get the result in a different raw file. And, I was getting some exceptions during the runtime( while calling Update() method of ImageFileReader, and Write() method of ImageFileWriter ). I am listing my source code here, /////////////SOURCE CODE///////////////////// int main(int argc, char* argv[]) { =20 itk::ImageFileReader::Pointer reader; reader =3D itk::ImageFileReader::New(); reader->SetFileName("1.raw"); itk::RawImageIO::Pointer io; io =3D itk::RawImageIO::New(); io->SetFileName ("1.raw"); io->SetFilePrefix ("*.raw"); io->ReadImageInformation();=20 reader->SetImageIO(io); //reader->Update(); ImageType::Pointer input =3D reader->GetOutput(); =20 cout<<"Laplacian filter test"<::Pointer gaussianFilter =3D itk12::DiscreteGaussianImageFilter::New(); gaussianFilter->SetInput(input); //gaussianFilter->Update(); itk::LaplacianImageFilter::Pointer lapFilter =3D itk::LaplacianImageFilter::New(); lapFilter->SetInput(gaussianFilter->GetOutput()); // lapFilter->Update(); cout<GetOutput(); //writing the output itk::ImageFileWriter::Pointer writer; writer =3D itk::ImageFileWriter::New(); writer->SetInput(lapFilter->GetOutput()); writer->SetFileName("junk2.raw"); writer->SetInput(lapFilter->GetOutput()); writer->SetImageIO(io); writer->Write(); cout<<"Writing is completed"<
June,4,2002
 
Dear Luis,
I am SrinivaJ, I am = trying to load a=20 raw file
and apply laplacian effect on it, and get the result
in a = different raw file.
And, I was getting some exceptions during = the
runtime(=20 while calling Update() method of ImageFileReader,
and Write() method = of=20 ImageFileWriter ).
 
I am listing my source code = here,
 
/////////////SOURCE=20 CODE/////////////////////
int main(int argc, char*=20 argv[])
{
 
 =20 itk::ImageFileReader<ImageType>::Pointer  reader;
  = reader=20 =3D  itk::ImageFileReader<ImageType>::New();
 =20 reader->SetFileName("1.raw");
 
  itk::RawImageIO<unsigned=20 short,2>::Pointer io;
  io =3D itk::RawImageIO<unsigned=20 short,2>::New();
  io->SetFileName ("1.raw");
 =20 io->SetFilePrefix ("*.raw");
  io->ReadImageInformation(); =
  reader->SetImageIO(io);
 =20 //reader->Update();
 
  ImageType::Pointer input =3D=20 reader->GetOutput();
 
  cout<<"Laplacian = filter=20 test"<<endl;
  = itk12::DiscreteGaussianImageFilter<ImageType,=20 ImageType>::Pointer
    gaussianFilter =3D=20 itk12::DiscreteGaussianImageFilter<ImageType, = ImageType>::New();
 =20 gaussianFilter->SetInput(input);
 =20 //gaussianFilter->Update();
 
 
 
  = itk::LaplacianImageFilter<ImageType,=20 ImageType>::Pointer
    lapFilter =3D=20 itk::LaplacianImageFilter<ImageType, ImageType>::New();
 =20 lapFilter->SetInput(gaussianFilter->GetOutput());
// =20 lapFilter->Update();
 =20 cout<<lapFilter->GetOutput();
 
//writing the=20 output
itk::ImageFileWriter<ImageType>::Pointer = writer;
 =20 writer =3D itk::ImageFileWriter<ImageType>::New();
 
writer->SetInput(lapFilter->GetOutput());
 =20 writer->SetFileName("junk2.raw");
 =20 writer->SetInput(lapFilter->GetOutput());
 =20 writer->SetImageIO(io);
 =20 writer->Write();
 cout<<"Writing is=20 completed"<<endl;
  return 0;
}
 
/////////////END OF THE SOURCE=20 CODE/////////////////
 

Appreciating your help.
 
Regards
Srinivas jalataru
(CSPL, Hyderabad,=20 India)
------=_NextPart_000_001C_01C20BED.53F49DD0-- From luis.ibanez@kitware.com Tue Jun 4 16:19:03 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Tue, 04 Jun 2002 11:19:03 -0400 Subject: [Insight-users] Registering ImageIO factories References: <003f01c207de$e67ab210$01000001@macinfo.net> <3CF62D34.90207@kitware.com> <000f01c20868$2fd870d0$01000001@macinfo.net> <3CF770A5.6000805@kitware.com> <000801c2092b$c520cca0$01000001@macinfo.net> <3CF8E280.2040809@kitware.com> <000801c20ae3$83257800$01000001@macinfo.net> <3CFB742E.1070307@kitware.com> <001201c20bbb$300b6c00$01000001@macinfo.net> Message-ID: <3CFCDA67.7000205@kitware.com> Hi cspl, In order to get the latest version of the IO classes you will have to get the cvs checkout (instead of the Beta release) Please follow the instructions in the Download Page from: http://www.itk.org You will find an example of ITK + VTK pipeline connection under the directory: Insight/Auxiliary/vtk/itkVTKtoITKtoVTK.cxx Please let us know if you encounter any problems. Thanks Luis ================================================ cspl wrote: > Dear Mr.Luis, > > > > > itk::RawImageIOFactory::RegisterOneFactory(); > Actually RawImageIOFactory.h,.txx or .cxx is not available in dump of > ITKWinSourcecode. Please send latest copy of RawImageIoFactory.h,.txx or > .cxx. > > > > I have added this line to my code,I am getting errors. > > > > 1) F:\firstitk\firstitk.cpp(1903) : error C2955: 'RawImageIOFactory' : > use of class template requires template argument list > F:\ITK\Insight\Code\IO\itkRawImageIO.h(161) : see declaration of > 'RawImageIOFactory' > > > 2) F:\firstitk\firstitk.cpp(1903) : error C2039: 'RegisterOneFactory' : > is not a member of 'RawImageIOFactory' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(161) : see declaration of > 'RawImageIOFactory' > > > 3) F:\firstitk\firstitk.cpp(1903) : error C2065: 'RegisterOneFactory' : > undeclared identifier > > Error executing cl.exe. > > > > firstitk.exe - 3 error(s), 0 warning(s) > > > > So what do I need to do? How to link properly wihout errors. I want > pipeline for ITK like in VTK . > After that I want to know how to call vtk in itk? I have to give my > laplacian filter output as a image and should display it. > > > > > > Thanking you, > > > > > Regards, > Ramakrishna > From galicjan@yahoo.com Wed Jun 5 15:31:21 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Wed, 5 Jun 2002 07:31:21 -0700 (PDT) Subject: [Insight-users] Streaming and memory allocation Message-ID: <20020605143121.72848.qmail@web20909.mail.yahoo.com> I am trying to figure out how streaming works in ITK and write some streaming applications. I see how a 'RequestedRegion' can be pulled through a pipeline during processing (StreamingImageFilter). I have problem figuring out, however, what is the process of allocating the memory for streaming. Memory allocation is critical since in most streaming applications you want to do processing using amount of memory that is a fraction of the size of the image that is being process. For instance, I want to do processing on an image that is 6GB while my RAM is only 1GB. Here are some issues that I see as roadblocks of proper memory allocation or as my lack of understanding what is going on: 1) Image objects tend to allocate memory for the LargestPossibleRegion rather then BufferedRegion, see ImageBase< >::UpdateOutputInformation() 2) ImageFileReader<>::GenerateOutputInformation() forces allocation of memory buffer equal to input image size. 3) Allocation is performed during GenerateOutputInformation, which is before information about RequestedRegion is pushed up the pipeline 4) StreamingImage filter does not overwrite GetInputRequestedRegion, rather this method is called from ImageToImageFilter and in turn from ProcessObject that calls an all inputs SetRequestedRegionToLargestPossibleRegion() Could somebody give me some clues how memory allocation for streaming works? Jarek __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From will.schroeder@kitware.com Wed Jun 5 16:48:17 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Wed, 05 Jun 2002 11:48:17 -0400 Subject: [Insight-users] Streaming and memory allocation In-Reply-To: <20020605143121.72848.qmail@web20909.mail.yahoo.com> Message-ID: <5.1.0.14.0.20020605114748.026ef3f0@pop.nycap.rr.com> I have sent a preliminary pdf document; let me know if anyone else wants a peek. Will At 07:31 AM 6/5/2002 -0700, Jarek Sacha wrote: >I am trying to figure out how streaming works in ITK and write some >streaming applications. I see how a 'RequestedRegion' can be pulled >through a pipeline during processing (StreamingImageFilter). > >I have problem figuring out, however, what is the process of allocating >the memory for streaming. Memory allocation is critical since in most >streaming applications you want to do processing using amount of memory >that is a fraction of the size of the image that is being process. For >instance, I want to do processing on an image that is 6GB while my RAM is >only 1GB. > >Here are some issues that I see as roadblocks of proper memory allocation >or as my lack of understanding what is going on: > >1) Image objects tend to allocate memory for the LargestPossibleRegion >rather then BufferedRegion, see ImageBase< >::UpdateOutputInformation() > >2) ImageFileReader<>::GenerateOutputInformation() forces allocation of >memory buffer equal to input image size. > >3) Allocation is performed during GenerateOutputInformation, which is >before information about RequestedRegion is pushed up the pipeline > >4) StreamingImage filter does not overwrite GetInputRequestedRegion, >rather this method is called from ImageToImageFilter and in turn from >ProcessObject that calls an all inputs >SetRequestedRegionToLargestPossibleRegion() > >Could somebody give me some clues how memory allocation for streaming >works? > >Jarek > >__________________________________________________ >Do You Yahoo!? >Yahoo! - Official partner of 2002 FIFA World Cup >http://fifaworldcup.yahoo.com >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users From galicjan@yahoo.com Wed Jun 5 17:25:45 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Wed, 5 Jun 2002 09:25:45 -0700 (PDT) Subject: [Insight-users] Streaming and memory allocation In-Reply-To: <5.1.0.14.0.20020605114748.026ef3f0@pop.nycap.rr.com> Message-ID: <20020605162545.13430.qmail@web20901.mail.yahoo.com> Will: Thanks for the document. It was quite helpful in understanding the basics of how streaming in ITK works. I am trying to create a very simple application that reads an image and just writes it out, since this a basis for anything else to work. Looks that I need to start from the end of the pipeline. First implement a StreamingImageFileWriter (extend ImageFileWriter using StreamingImageFilter as an example) and add streaming support to concrete ImageIO class that is used for writing. Then go up the pipeline and verify proper streaming support. StreamingImageFilter, as an object, seems to be of limited help since it does not stream down the pipeline. Thanks for you help, Jarek --- Will Schroeder wrote: > I have sent a preliminary pdf document; let me know if anyone else wants > a > peek. > Will > > At 07:31 AM 6/5/2002 -0700, Jarek Sacha wrote: > >I am trying to figure out how streaming works in ITK and write some > >streaming applications. I see how a 'RequestedRegion' can be pulled > >through a pipeline during processing (StreamingImageFilter). > > > >I have problem figuring out, however, what is the process of allocating > >the memory for streaming. Memory allocation is critical since in most > >streaming applications you want to do processing using amount of memory > >that is a fraction of the size of the image that is being process. For > >instance, I want to do processing on an image that is 6GB while my RAM > is > >only 1GB. > > > >Here are some issues that I see as roadblocks of proper memory > allocation > >or as my lack of understanding what is going on: > > > >1) Image objects tend to allocate memory for the LargestPossibleRegion > >rather then BufferedRegion, see ImageBase< >::UpdateOutputInformation() > > > >2) ImageFileReader<>::GenerateOutputInformation() forces allocation of > >memory buffer equal to input image size. > > > >3) Allocation is performed during GenerateOutputInformation, which is > >before information about RequestedRegion is pushed up the pipeline > > > >4) StreamingImage filter does not overwrite GetInputRequestedRegion, > >rather this method is called from ImageToImageFilter and in turn from > >ProcessObject that calls an all inputs > >SetRequestedRegionToLargestPossibleRegion() > > > >Could somebody give me some clues how memory allocation for streaming > >works? > > > >Jarek > > > >__________________________________________________ > >Do You Yahoo!? > >Yahoo! - Official partner of 2002 FIFA World Cup > >http://fifaworldcup.yahoo.com > >_______________________________________________ > >Insight-users mailing list > >Insight-users@public.kitware.com > >http://public.kitware.com/mailman/listinfo/insight-users > __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From lng@insightful.com Wed Jun 5 22:41:46 2002 From: lng@insightful.com (Lydia Ng) Date: Wed, 5 Jun 2002 14:41:46 -0700 Subject: [Insight-users] RE: Quaternion transformation Message-ID: <635ADAEFC2399148BCCBB4193B6BF3A00AA6A2@se2kexch01.insightful.com> Buu, > - the fourth parameter is 0.996219. This means cos(t/2) =3D=20 > 0.996219, then I > can find the rotation angle t. Am I right? How do we know=20 > the rotation > axis? > - the last three parameters are about the translation. How do=20 > we compute the > translation vector? Let the final parameters be p =3D array of 7 numbers counting from 0. Let rotation angle =3D t, then=20 t =3D 2 * acos(p[3]) Let rotation axis =3D n (array of 3 numbers), then =20 n[0] =3D p[0] / sin(t/2) n[1] =3D p[1] / sin(t/2) n[2] =3D p[2] / sin(t/2) Let translation vector =3D t (array of 3 numbers), then t[0] =3D p[4]; t[1] =3D p[5]; t[2] =3D p[6]; If you want a rotation matrix M instead of axis and angle you can ask the transform for it. Presuming you are using the Beta and not the latest cvs code add the following lines after line 123 of MIRegistrationApp.cxx std::cout << "Rotation matrix: " << std::endl; std::cout <<=20 = m_Registrator->GetInternalRegistrationMethod()->GetMetric()->GetMapper()-= > GetTransform()->GetRotationMatrix() << std::endl << std::endl; std::cout << "Translation vector: " << std::endl; std::cout <<=20 = m_Registrator->GetInternalRegistrationMethod()->GetMetric()->GetMapper()-= > GetTransform()->GetOffset() << std::endl << std::endl; Once you have M and t the relationship between points=20 in the *fixed/target* image and the *moving/reference* image is (a - a_c) =3D M * ( b - b_c ) + t where=20 b =3D point in the *fixed* image b_c =3D is the center point of the *fixed/target* image a =3D point in the *moving* image a_c =3D is the center point of the *moving/reference* image M =3D rotation matrix t =3D translation NOTE:=20 A point is different to an index.=20 Points take into spacing into account i.e. point[i] =3D spacing[i] * index[i] Hope this helps. BTW: have you resolve your previous issue with setting the pixel type? -Lydia =20 > -----Original Message----- > From: Buu Tien Phan [mailto:bphan@mail.uh.edu] > Sent: Saturday, June 01, 2002 3:29 PM > To: Lydia Ng > Subject: Quaternion transformation >=20 >=20 > Hello Lydia, >=20 > Thank you for your explanation about the output. I am still not quite > understanding. Correct me if I am wrong. > Suppose I need to find the rotation parameters ( the angle=20 > and the axis) and > the translation vector in MultiResMIRegistration example. > >From the "Final parameters" line I have: >=20 > "Final parameters: 0.000319651 8.89633e-005 0.0868807 0.996219 > 2.39833 -17.2735 -0.044853" >=20 > - the fourth parameter is 0.996219. This means cos(t/2) =3D=20 > 0.996219, then I > can find the rotation angle t. Am I right? How do we know=20 > the rotation > axis? > - the last three parameters are about the translation. How do=20 > we compute the > translation vector? >=20 > Thank you very much for your help. >=20 > Buu Phan >=20 >=20 >=20 >=20 >=20 >=20 From hjohnson@engineering.uiowa.edu Thu Jun 6 17:46:30 2002 From: hjohnson@engineering.uiowa.edu (Hans J. Johnson) Date: Thu, 06 Jun 2002 11:46:30 -0500 Subject: [Insight-users] FLTK link problems. Message-ID: <3CFF91E6.5090004@engineering.uiowa.edu> Hello, I am trying to build the examples for ITK, and I am having a problem during the link phase with all programs that require FLTK. If I manually edit the Makefiles and add "-lfltk -lfltk_forms.a -lfltk_gl.a" before the locations where "-lGL" appears, then the compilation will work. To me it seems like the ${FLTK_LIBRARY} from CMakeLists.txt is not being filled or processed correctly. During the configuration stage, I do not know what to put into the FLTK_LIBRARY option to make this work properly. FLTK_FLUID_EXE /home/hjohnson/src/buildhome/athlon/DEBUG/bin/fluid FLTK_INCLUDE_PATH /home/hjohnson/src/buildhome/athlon/DEBUG/include FLTK_LIBRARY /home/hjohnson/src/buildhome/athlon/DEBUG/lib but this is wrong because FLTK_LIBRARY should be the full path to a single library file. I have also tried FLTK_LIBRARY /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk.a but this results in unresolved symbols from libfltk_forms.a FLTK_LIBRARY /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk.a /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_forms.a /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_gl.a but this results in an error during the generation of the Makefile from within ccmake (something like "can not extract filename from /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_gl.aCMakeLists.txt") Thanks in advance for your help. Thanks, Hans J. Johnson hans-johnson@uiowa.edu PS: I am building against fltk-1.1.0rc2 From luis.ibanez@kitware.com Thu Jun 6 18:14:09 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Thu, 06 Jun 2002 13:14:09 -0400 Subject: [Insight-users] FLTK link problems. References: <3CFF91E6.5090004@engineering.uiowa.edu> Message-ID: <3CFF9861.2030702@kitware.com> Hi Hans, The recomended version of FLTK is 1.0.11 FLTK 1.1 added two extra libraries: fltkgl,fltkforms (for OpenGL and for XForms compatibility) that have to be added to the link command line. The current ITK projects don't take these extra libraries into account. We are working right now on adding the option of using FLTK 1.1 so that will be included in the next Beta release (to be release soon, very soon). Luis ====================================================== Hans J. Johnson wrote: > Hello, > > I am trying to build the examples for ITK, and I am having a problem > during the link phase with all programs that require FLTK. If I > manually edit the Makefiles and add "-lfltk -lfltk_forms.a -lfltk_gl.a" > before the locations where "-lGL" appears, then the compilation will work. > > To me it seems like the ${FLTK_LIBRARY} from CMakeLists.txt is not being > filled or processed correctly. > > During the configuration stage, I do not know what to put into the > FLTK_LIBRARY option to make this work properly. > > FLTK_FLUID_EXE > /home/hjohnson/src/buildhome/athlon/DEBUG/bin/fluid > FLTK_INCLUDE_PATH /home/hjohnson/src/buildhome/athlon/DEBUG/include > FLTK_LIBRARY > /home/hjohnson/src/buildhome/athlon/DEBUG/lib > but this is wrong because FLTK_LIBRARY should be the full path to a > single library file. > > I have also tried > > FLTK_LIBRARY > /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk.a > but this results in unresolved symbols from libfltk_forms.a > > FLTK_LIBRARY > /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk.a > /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_forms.a > /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_gl.a > but this results in an error during the generation of the Makefile from > within ccmake (something like "can not extract filename from > /home/hjohnson/src/buildhome/athlon/DEBUG/lib/libfltk_gl.aCMakeLists.txt") > > Thanks in advance for your help. > > > Thanks, > Hans J. Johnson > hans-johnson@uiowa.edu > > PS: I am building against fltk-1.1.0rc2 > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > From bhs@pvv.org Thu Jun 6 18:29:35 2002 From: bhs@pvv.org (Bjorn Hanch Sollie) Date: Thu, 6 Jun 2002 19:29:35 +0200 (CEST) Subject: [Insight-users] Questions about the fast marching and level set filters In-Reply-To: Message-ID: On Tue, 4 Jun 2002, Joshua Cates wrote: > You can use the SparseFieldLevelSetImageFilter for applications that only > care about a single level set (and you will almost certainly get some > speed advantage by doing so). I Thanks for answering some questions. I've been looking at the SparseFieldLevelSet filter examples, and as far as I can see, it requires the potential map (or target image) to have positive values on the inside of the region and negative values on the outside. This is in contrast to the potential map for the ShapeDetectionLevelSet filter which wants values between 0 and 1. My queston then is: What is the best way of making a potential map for the SparseFieldLevelSet filter from an edge image? Just do a simple positive/negative threshold on some grey value? Are there any recommended (better?) ways? -Bjorn -- The History of the Universe Chapter 1: Bang! Chapter 2: Sss... Chapter 3: Crunch! The End From lng@insightful.com Thu Jun 6 19:09:46 2002 From: lng@insightful.com (Lydia Ng) Date: Thu, 6 Jun 2002 11:09:46 -0700 Subject: [Insight-users] Questions about the fast marching and level set filters Message-ID: <635ADAEFC2399148BCCBB4193B6BF3A00AA6A5@se2kexch01.insightful.com> Dear Bjorn, > Finally, a question about the FastMarchingImageFilter: I have been > using this for shape detection as well, growing a shape from a user > selected seed point. The problem I have here is that if the potential > image has pixel values zero (if only infinitesimally), the region > doesn't expand (even over time) to include these pixels in the region. > This means that if I have a well defined region, with sharp edges > around it, and some very small variations in the (practically) > monotonous region inside, the fast marching filter fails to detect the > entire region. Is there a remedy for this, or is a limitation of this > filter? I think the FastMarchingImageFilter is doing exactly what is suppose to in this case. Options I can suggest are: [1] Preprocessing: denoise or smooth the image before taking the = gradient. [2] Postprocessing: use morphology to close the holes. ------------------------------- What the ShapeDetectionLevelSetFilter buys you is the ability to do incorporate some smoothing into the process - that is what the LengthPenaltyStrength term is about. It will try to limit the length of the contour forces small holes to close up. > How can I do, say, 5-10 iterations with a narrow band of > 5 each time, rather than a single iteration with a narrow band of 35 A narrowband width defines the range around the zero level set which is updated at each iteration. So running 5-10 iterations with narrowband of 5 is not equivalent to running a single iteration with narrow band of = 35. If you have a edge potential map of all ones then in the first case the zero level set has moved 5-10 pixels out but in the second case it has moved only one pixel out. Typically a narrowband of 10-12 should be sufficient. NB: Fast marching returns you a time-crossing map - i.e. it returns the solution for all time. You then threshold the map at times you want to inspect. The ShapeDetectionLevelSetFilter returns you the state of the levelset at time =3D timestep * no. of iteration.=20 You will need to threshold the levelset at zero. Negative values =3D inside the contour, positive values =3D outside the contour -------------------------------- > Also, do you recommend that I rather switch to the more recent(?) code > instead (SparseFieldLevelSetImageFilter/LevelSet3DFunction for > example)? I'm slightly confused by the different level set filters > present in ITK, I'm unsure of which one is preferable to use, and I'll > be happy for some advice here. Sorry about the confusion there. The narrowband stuff was implemented very early in this project and has not yet be ported over to the same framework as the sparse field stuff. This is on my list of things to do towards end of the year. -Lydia > -----Original Message----- > From: Bjorn Hanch Sollie [mailto:bhs@pvv.org] > Sent: Saturday, June 01, 2002 3:10 PM > To: insight-users > Subject: [Insight-users] Questions about the fast marching=20 > and level set > filters >=20 >=20 > I have some questions I will really, really appreciate to get some > answers to: >=20 > I have been doing some level set filtering using the > ShapeDetectionLevelSetFilter. The filter works fine and has given me > great results so far, except I haven't quite figured out how to > properly use narrow-banding yet (code below), so the filter takes very > long to run. How can I do, say, 5-10 iterations with a narrow band of > 5 each time, rather than a single iteration with a narrow band of 35? > Do I use the ReinitializeLevelSetImageFilter for this, and if so how? >=20 > Also, do you recommend that I rather switch to the more recent(?) code > instead (SparseFieldLevelSetImageFilter/LevelSet3DFunction for > example)? I'm slightly confused by the different level set filters > present in ITK, I'm unsure of which one is preferable to use, and I'll > be happy for some advice here. >=20 > Finally, a question about the FastMarchingImageFilter: I have been > using this for shape detection as well, growing a shape from a user > selected seed point. The problem I have here is that if the potential > image has pixel values zero (if only infinitesimally), the region > doesn't expand (even over time) to include these pixels in the region. > This means that if I have a well defined region, with sharp edges > around it, and some very small variations in the (practically) > monotonous region inside, the fast marching filter fails to detect the > entire region. Is there a remedy for this, or is a limitation of this > filter? >=20 > Here is my current (working) ShapeDetectionLevelSetFilter code: >=20 > // Begin level set shape detection > std::cout << "Shape Detection filtering..." << std::endl; > typedef itk::ShapeDetectionLevelSetFilter ImageType> ShapeDetectorType; > ShapeDetectorType::Pointer shaper =3D ShapeDetectorType::New(); > shaper->SetInput(initiallevelset); > shaper->SetEdgeImage(edgepotentialimage); > shaper->SetLengthPenaltyStrength(0.01); > shaper->SetNumberOfIterations(175); > shaper->SetNarrowBanding(true); > shaper->SetNarrowBandwidth(35.0); > shaper->SetTimeStepSize(3.0); > shaper->Update(); > // End level set shape detection >=20 > -Bjorn > --=20 > The History of the Universe > Chapter 1: Bang! Chapter 2: Sss... Chapter 3: Crunch! > The End >=20 > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users >=20 >=20 From smithj@nlm.nih.gov Thu Jun 6 21:25:33 2002 From: smithj@nlm.nih.gov (john joe) Date: Thu, 06 Jun 2002 15:25:33 -0500 Subject: [Insight-users] Attempting to unzip ITKDoxygenBeta Message-ID: <3CFFC53D.DDC670F7@nlm.nih.gov> In attempting to unzip the downloaded version of ITKDoxygenBeta for windows there were two files that were unable to be unzipped with messages as follows: warning: filename too long--truncating. [ Doxygen/html/classImageToImageFilter_3_01TInputImage1_00_01Image_3_01ITK__TYPENAME _01Functor_1_1JoinFunctor_3_01ITK__TYPENAME_01TInputImage1_1_1PixelType_00_01ITK __TYPENAME_01TInputImage2_1_1PixelType_01_4_1_1JoinType_00_01TInputImage1_1_1 ImageDimension_01_4_4 ] warning: filename too long--truncating. [ Doxygen/latex/classImageToImageFilter_3_01TInputImage1_00_01Image_3_01ITK__TYPENAME _01Functor_1_1JoinFunctor_3_01ITK__TYPENAME_01TInputImage1_1_1PixelType_00_01ITK __TYPENAME_01TInputImage2_1_1PixelType_01_4_1_1JoinType_00_01TInputImage1_1_1 ImageDimension_01_4_ ] From lucantiga@hotmail.com Fri Jun 7 08:57:30 2002 From: lucantiga@hotmail.com (Luca Antiga) Date: Fri, 07 Jun 2002 09:57:30 +0200 Subject: [Insight-users] Questions about the fast marching and level set filters Message-ID: Dear users, dealing with sparse field and narrow band level sets. I know that sparse field method (at least in the implementation given by Whitaker in his library) ensures sub-voxel accuracy even with first order upwinding, by estimating level set position according to \phi and \nabla(\phi) and evaluating there all the quantities involved with evolution. Is this feature included in narrow band version? Thanks Luca >From: Bjorn Hanch Sollie >To: insight-users , Joshua Cates > >Subject: Re: [Insight-users] Questions about the fast marching and level >set filters >Date: Thu, 6 Jun 2002 19:29:35 +0200 (CEST) > >On Tue, 4 Jun 2002, Joshua Cates wrote: > > > You can use the SparseFieldLevelSetImageFilter for applications that >only > > care about a single level set (and you will almost certainly get some > > speed advantage by doing so). I > >Thanks for answering some questions. I've been looking at the >SparseFieldLevelSet filter examples, and as far as I can see, it >requires the potential map (or target image) to have positive values >on the inside of the region and negative values on the outside. This >is in contrast to the potential map for the ShapeDetectionLevelSet >filter which wants values between 0 and 1. My queston then is: What >is the best way of making a potential map for the SparseFieldLevelSet >filter from an edge image? Just do a simple positive/negative >threshold on some grey value? Are there any recommended (better?) >ways? > >-Bjorn >-- >The History of the Universe >Chapter 1: Bang! Chapter 2: Sss... Chapter 3: Crunch! >The End > >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp. From luis.ibanez@kitware.com Fri Jun 7 13:27:01 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Fri, 07 Jun 2002 08:27:01 -0400 Subject: [Insight-users] Re: Problem with ITKrawImageIOFactory References: <0af201c20e1a$3e2eaca0$01000001@macinfo.net> Message-ID: <3D00A695.8060006@kitware.com> Hi cspl, We just added two examples to better illustrate the use of the Raw Image reader. You can find them under: Insight/Examples/RawImageReadWrite and Insight/Examples/RawImageReaderViewer The first will read a Raw image file and save it in raw format again. The secon is intended to be a RawViever. (it requires FLTK to be installed in order to support the GUI). The interface will ask for the image size, (this has to be filled before you hit the "Load" button, or the "Show" button) Please let us know if you find any problems using these two new examples. Thanks Luis ======================================= cspl wrote: > Dear Mr.Luis, > > > > I downloaded the new version of ItkRawImageIO.h and .txx.But Still I am > facing problem with RawImageIOFactory.How to Register exactly > RawImageIofactory.It is showing error > "use of class template requires template argument list". > I am also getting exception when reading using ImageFileReader.I have > written code as follows.I attached herewith my exception also.Please > give me in which way I will get result of Laplician filter.When ever Iam > calling Update function of any object it is giving abnormal termination. > > > > int main(int argc, char* argv[]) > { > > > UnsignedImageType::RegionType requestedRegion; > UnsignedImageType::SizeType size; > UnsignedImageType::IndexType index; > > > > > //Set the size of the image region > //If you want to try a 2D image, you need to change the dimension. > size[0] = 512; > size[1] = 256; > size[2] = 10; > > index[0] = 0; > index[1] = 0; > index[2] = 0; > > > > requestedRegion.SetSize(size); > requestedRegion.SetIndex(index); > typedef itk::Image ImageType; > typedef itk::ImageFileReader< ImageType > ReaderType; > ReaderType::Pointer reader = ReaderType::New(); > reader->SetFileName("c:\\one.raw"); > > > > try > { > reader->Update(); > } > catch( itk::ExceptionObject & except ) > { > std::cerr << except << std::endl; > } > > > > cout<<"Laplacian filter test"< itk::LaplacianImageFilter::Pointer > lapFilter = itk::LaplacianImageFilter::New(); > lapFilter->SetInput(reader->GetOutput()); > lapFilter->Update(); > std::cerr << lapFilter->GetOutput() << std::endl; > return EXIT_SUCCESS; > } > > > > exception : > > > > itk::ImageFileReaderException (0012F924) > Location: "Unknown" > File: F:\ITK\Insight\Code\IO\itkImageFileReader.txx > Line: 85 > Description: Could not create IO object for file name > > > > > > > > Thanking you, > Regards, > Ramakrishna > From hjohnson@engineering.uiowa.edu Fri Jun 7 21:00:05 2002 From: hjohnson@engineering.uiowa.edu (Hans J. Johnson) Date: Fri, 07 Jun 2002 15:00:05 -0500 Subject: [Insight-users] Is the bug tracking page dead? Message-ID: <3D0110C5.2020200@engineering.uiowa.edu> Hello, I have submitted a bug to the http://www.itk.org/cgi-bin/gnatsweb.pl bug tracking page, but it looks like that is not being used any longer (Last resolved issue was almost 4 months ago, yet this news group is quite active). In case the bug page is not being maintained, I have replicated the bug report here. Regards, Hans J. Johnson hans-johnson@uiowa.edu PS: I am just getting started with ITK, so if there is any else I can do to help resolve this issue, please let me know. PPS: ITK is GREAT! *Category:* Source *Synopsis:* MetaImageIO::CanReadFile Segfaults when checking non-MetaImage File *Confidential:* no *Severity:* serious *Priority:* high *Responsible:* *State:* open *Quarter:* *Keywords:* *Date-Required:* *Class:* bug *Submitter-Id:* developers *Arrival-Date:* Fri Jun 07 15:50:05 -0400 2002 *Closed-Date:* *Cases:* *Last-Modified:* *Originator:* Hans J. Johnson *Release:* 1.19 *Organization:* The University of Iowa Mental Health Clinical Research Center Image Processing Lab *Environment:* Athlon, Redhat 7.3, ITK IO *Description:* Module: $RCSfile: itkMetaImageIO.cxx,v $ Version: $Revision: 1.19 $ I have written an Analyze v7.5 file reader. When MetaImageIOFactory::RegisterOne() is not included, the reader works just fine, but when MetaImageIOFactory::RegisterOne() is included, a segmentation fault occurs in MetaImageIO::CanReadFile. The problem is a buffer overrun of the variable key[8000] when the 80MB analyze file is streamed into that variable. The fix that I propose below has been tested, and works, but if a binary file with more than 8000 bytes and a .mh[da] extension were passed to this file, it would likely segfault, instead of throwing an exception. Just random thoughts on better fixes: A more thorough solution would be to ensure that no more than the number of bytes were streamed into a variable, or to change key[8000] into a variable length structure (i.e. std::string). maxLineLength and restOfTheLine will have similar problems if the first line is OK, but the rest is broken. *File Attachments:* *How-To-Repeat:* Try to determine the type of a binary file greater than 8000 bytes long when MetaImageIOFactory is the first one registered. *Fix:* Replace: bool MetaImageIO::CanReadFile( const char* filename ) { WITH: bool MetaImageIO::CanReadFile( const char* filename )· { //MetaImage files must have an mha or mhd extension! { const std::string tempfilename=filename; if( tempfilename == "" || !( tempfilename.find(".mha") < tempfilename.length() || tempfilename.find(".mhd") < tempfilename.length() ) ) { return false; } } From wlorens1@nycap.rr.com Fri Jun 7 21:35:01 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Fri, 07 Jun 2002 16:35:01 -0400 Subject: [Insight-users] Is the bug tracking page dead? In-Reply-To: <3D0110C5.2020200@engineering.uiowa.edu> Message-ID: <5.1.0.14.2.20020607163314.025f90b0@pop.nycap.rr.com> Hans, We still use the bug tracker, but the activity ebbs and flows with our= quarterly contractor meetings. We have one coming up so there will be more= activity in the next week or so. As a user, you are better off for now to post to the list. Bill At 03:00 PM 6/7/02 -0500, Hans J. Johnson wrote: >Hello, > >I have submitted a bug to the http://www.itk.org/cgi-bin/gnatsweb.pl bug= tracking page, but it looks like that is not being used any longer (Last= resolved issue was almost 4 months ago, yet this news group is quite= active). > >In case the bug page is not being maintained, I have replicated the bug= report here. > >Regards, >Hans J. Johnson >hans-johnson@uiowa.edu > >PS: I am just getting started with ITK, so if there is any else I can do to= help resolve this issue, please let me know. >PPS: ITK is GREAT! > > >*Category:* Source >*Synopsis:* MetaImageIO::CanReadFile Segfaults when checking non-MetaImage= File >*Confidential:* no >*Severity:* serious >*Priority:* high >*Responsible:* >*State:* open >*Quarter:* >*Keywords:* >*Date-Required:* >*Class:* bug >*Submitter-Id:* developers >*Arrival-Date:* Fri Jun 07 15:50:05 -0400 2002 >*Closed-Date:* >*Cases:* >*Last-Modified:* >*Originator:* Hans J. Johnson >*Release:* 1.19 >*Organization:* The University of Iowa >Mental Health Clinical Research Center >Image Processing Lab >*Environment:* Athlon, Redhat 7.3, ITK IO >*Description:* Module: $RCSfile: itkMetaImageIO.cxx,v $ >Version: $Revision: 1.19 $ > >I have written an Analyze v7.5 file reader. When= MetaImageIOFactory::RegisterOne() is not included, the reader works just= fine, but when MetaImageIOFactory::RegisterOne() is included, a= segmentation fault occurs in MetaImageIO::CanReadFile. The problem is a= buffer overrun of the variable key[8000] when the 80MB analyze file is= streamed into that variable. > >The fix that I propose below has been tested, and works, but if a binary= file with more than 8000 bytes and a .mh[da] extension were passed to this= file, it would likely segfault, instead of throwing an exception. > >Just random thoughts on better fixes: >A more thorough solution would be to ensure that no more than the number of= bytes were streamed into a variable, or to change key[8000] into a variable= length structure (i.e. std::string). > >maxLineLength and restOfTheLine will have similar problems if the first= line is OK, but the rest is broken. >*File Attachments:* >*How-To-Repeat:* Try to determine the type of a binary file greater than= 8000 bytes long when MetaImageIOFactory is the first one registered. >*Fix:* Replace: >bool MetaImageIO::CanReadFile( const char* filename ) >{ >WITH: >bool MetaImageIO::CanReadFile( const char* filename )=B7 >{ >//MetaImage files must have an mha or mhd extension! >{ >const std::string tempfilename=3Dfilename; >if( tempfilename =3D=3D "" || >!( tempfilename.find(".mha") < tempfilename.length() || >tempfilename.find(".mhd") < tempfilename.length() ) ) >{ >return false; >} >} > > > > > > >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users From wlorens1@nycap.rr.com Fri Jun 7 21:38:31 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Fri, 07 Jun 2002 16:38:31 -0400 Subject: [Insight-users] itk Seminar in Boston, Thursday, June 13 In-Reply-To: <3D0110C5.2020200@engineering.uiowa.edu> Message-ID: <5.1.0.14.2.20020607163508.025fb5e0@pop.nycap.rr.com> ANNOUNCING ITK: The Insight Segmentation and Registration Toolkit When: Thursday, June 13, 2002 2:00-5:00pm Where: Auditorium 250, Second Floor Tosteson Medical Education Center Info: www.itk.org The Insight Segmentation and Registration Toolkit (ITK) is an open source software system supporting the Visible Human Project. ITK was developed by six principal firms (three academic-UNC,U. of Pennsylvania, U. of Utah; and three commercial-GE Research, Insightful, Kitware) and funded through The National Library of Medicine at NIH. ITK employs a variety of leading edge segmentation and registration algorithms in 2D, 3D, and more dimensions, and is being developed using advanced, distributed software processes. This presentation marks the first formal introduction of ITK to the public. We will provide a brief history of and motivation for the software, a survey of available registration and segmentation algorithms, live demonstrations, and an overview of the development environment. We will also discuss some early reviews from the ITK community and plans for the future. Developers, Principal Investigators, and NLM project officers will be available for questions after the presentation. Thursday June 13, 2002 Schedule of Presentations ========================= 2:00 - 3:00 An Introduction to ITK + Introduction Goals, objectives, team, relationship to VHP (Visible Human Project) Validation Effort + Overview Architecture, major design decisions, major subsystems Use of templates/generic programming Image representation Mesh Representation + Registration Algorithms & Framework Various algorithms and results + Segmentation Algorithms & Framework Various algorithms and results + Future Upcoming releases, etc. Annoucement of the Beta2. 3:00 - 4:20 Demonstrations + Live demos 4:00 - 5:00 Developing with ITK + Development Environment + Architectural Features Memory management (smart pointers, object factories, etc.) Events (command/observer) Image Processing (Image, iterators, etc.) Mesh Data flow Image IO 5:00 - Informal Meetings Directions The address is: Tosteson Medical Medical Education Center (T-MEC) 260 Longwood Ave Boston, MA 02115 General map and direction information about Harvard Medical School can be found at http://www.hms.harvard.edu/about/mapsdir.html . T-MEC is located in Harvard Medical School Quadrangle (http://www.hms.harvard.edu/about/maps/quadmap.html) at the intersection of Longwood Ave and Ave Louis Pasteur, at Longwood Medical Area (http://www.hms.harvard.edu/about/maps/lmamap.html). By MBTA subway or bus or by car: Subway Green Line (E line Longwood Medical Area stop or D line Longwood stop), bus routes 47, CT2 and 8A will all take you there. For more information on public transportation, and for DRIVING DIRECTIONS, please check http://www.hms.harvard.edu/about/direction.html . By M2 shuttle M2 shuttle bus runs between Harvard Yard (Quincy Street outside Lamont Library Gate) and Longwood Medical Area (T-MEC is right across the street from shuttle stop). Harvard GSAS students can take M2 for free. The shuttle also makes stops on the way, including one at MBTA bus stop of MIT's main entrance. The shuttle leaving at 7pm from Harvard Yard will take you there on time. For more information, please check http://www.masco.org/transit/ptsM2.htm . From ander833@student.liu.se Fri Jun 7 21:38:39 2002 From: ander833@student.liu.se (=?iso-8859-1?Q?Andr=E9as_Eriksson?=) Date: Fri, 7 Jun 2002 22:38:39 +0200 Subject: [Insight-users] ITK on HP-UX Message-ID: <000d01c20e63$4e788e70$1d00a8c0@PCFURALLE> Has anyone tried compiling ITK on HP-UX? Regards Andreas Eriksson From will.schroeder@kitware.com Fri Jun 7 21:55:28 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Fri, 07 Jun 2002 16:55:28 -0400 Subject: [Insight-users] Announcement: ITK Public Meeting Message-ID: <5.0.2.1.0.20020607165222.02795780@pop.nycap.rr.com> ANNOUNCING ITK: The Insight Segmentation and Registration Toolkit Public Presentation When: Thursday, June 13, 2002 2:00-5:00pm Where: Auditorium 250, Second Floor Tosteson Medical Education Center Harvard Medical School, Boston, MA, USA Info: www.itk.org The Insight Segmentation and Registration Toolkit (ITK) is an open source software system supporting the Visible Human Project. ITK was developed by six principal firms (three academic-UNC,U. of Pennsylvania, U. of Utah; and three commercial-GE Research, Insightful, Kitware) and funded through The National Library of Medicine at NIH. ITK employs a variety of leading edge segmentation and registration algorithms in 2D, 3D, and more dimensions, and is being developed using advanced, distributed software processes. This presentation marks the first formal introduction of ITK to the public. We will provide a brief history of and motivation for the software, a survey of available registration and segmentation algorithms, live demonstrations, and an overview of the development environment. We will also discuss some early reviews from the ITK community and plans for the future. Developers, Principal Investigators, and NLM project officers will be available for questions after the presentation. Thursday June 13, 2002 Schedule of Presentations ========================= 2:00 - 3:00 An Introduction to ITK + Introduction Goals, objectives, team, relationship to VHP (Visible Human Project) Validation Effort + Overview Architecture, major design decisions, major subsystems Use of templates/generic programming Image representation Mesh Representation + Registration Algorithms & Framework Various algorithms and results + Segmentation Algorithms & Framework Various algorithms and results + Future Upcoming releases, etc. Annoucement of the Beta2. 3:00 - 4:20 Demonstrations + Live demos 4:00 - 5:00 Developing with ITK + Development Environment + Architectural Features Memory management (smart pointers, object factories, etc.) Events (command/observer) Image Processing (Image, iterators, etc.) Mesh Data flow Image IO 5:00 - Informal Meetings Directions The address is: Tosteson Medical Medical Education Center (T-MEC) 260 Longwood Ave Boston, MA 02115 General map and direction information about Harvard Medical School can be found at http://www.hms.harvard.edu/about/mapsdir.html . T-MEC is located in Harvard Medical School Quadrangle (http://www.hms.harvard.edu/about/maps/quadmap.html) at the intersection of Longwood Ave and Ave Louis Pasteur, at Longwood Medical Area (http://www.hms.harvard.edu/about/maps/lmamap.html). By MBTA subway or bus or by car: Subway Green Line (E line Longwood Medical Area stop or D line Longwood stop), bus routes 47, CT2 and 8A will all take you there. For more information on public transportation, and for DRIVING DIRECTIONS, please check http://www.hms.harvard.edu/about/direction.html . By M2 shuttle M2 shuttle bus runs between Harvard Yard (Quincy Street outside Lamont Library Gate) and Longwood Medical Area (T-MEC is right across the street from shuttle stop). Harvard GSAS students can take M2 for free. The shuttle also makes stops on the way, including one at MBTA bus stop of MIT's main entrance. The shuttle leaving at 7pm from Harvard Yard will take you there on time. For more information, please check http://www.masco.org/transit/ptsM2.htm . From rrp@imm.dtu.dk Sat Jun 8 10:14:34 2002 From: rrp@imm.dtu.dk (Rasmus Reinhold Paulsen) Date: Sat, 8 Jun 2002 11:14:34 +0200 (METDST) Subject: [Insight-users] Re: [vtkusers] itk Seminar in Boston, Thursday, June 13 In-Reply-To: <5.1.0.14.2.20020607163508.025fb5e0@pop.nycap.rr.com> Message-ID: Hi Bill, Sounds very good. Hard to go to Boston for a single event though ;) Do you know if there will be any ITK related events at MICCAI 2002 in Tokyo, Japan ? Regards, Rasmus From tarifa@rpi.edu Sat Jun 8 22:20:25 2002 From: tarifa@rpi.edu (Asad A. Abu-Tarif) Date: Sat, 8 Jun 2002 17:20:25 -0400 Subject: [Insight-users] Announcement: ITK Public Meeting References: <5.0.2.1.0.20020607165222.02795780@pop.nycap.rr.com> Message-ID: <007301c20f32$4e51cb80$0201a8c0@nycap.rr.com> Hi, Is there any registration or fees? I might be able to go but don't want to drive to Boston and not be able to get in :-) Thanks, Asad *************************************************************************** * Asad A. Abu-Tarif * Computer Engineering. * PhD Candidate, Rensselaer Polytechnic Institute (RPI). * Web-site: http://asad.ods.org/Professional/ * Registration Toolkit: http://asad.ods.org/RegMagicTKDoc/ * tarifa@rpi.edu *************************************************************************** ----- Original Message ----- From: "Will Schroeder" To: Sent: Friday, June 07, 2002 4:55 PM Subject: [Insight-users] Announcement: ITK Public Meeting > > ANNOUNCING > > ITK: The Insight Segmentation and Registration Toolkit Public Presentation > When: Thursday, June 13, 2002 2:00-5:00pm > Where: Auditorium 250, Second Floor Tosteson Medical Education Center > Harvard Medical School, Boston, MA, USA > Info: www.itk.org > > The Insight Segmentation and Registration Toolkit (ITK) is an open source > software system supporting the Visible Human Project. ITK was developed by > six principal firms (three academic-UNC,U. of Pennsylvania, U. of Utah; and > three commercial-GE Research, Insightful, Kitware) and funded through The > National Library of Medicine at NIH. ITK employs a variety of leading edge > segmentation and registration algorithms in 2D, 3D, and more dimensions, and > is being developed using advanced, distributed software processes. This > presentation marks the first formal introduction of ITK to the public. We > will provide a brief history of and motivation for the software, a survey of > available registration and segmentation algorithms, live demonstrations, and > an overview of the development environment. We will also discuss some early > reviews from the ITK community and plans for the future. Developers, > Principal Investigators, and NLM project officers will be available for > questions after the presentation. > > > Thursday June 13, 2002 > Schedule of Presentations > ========================= > > 2:00 - 3:00 An Introduction to ITK > + Introduction > Goals, objectives, team, relationship to VHP (Visible Human > Project) > Validation Effort > > + Overview > Architecture, major design decisions, major subsystems > Use of templates/generic programming > Image representation > Mesh Representation > > + Registration Algorithms & Framework > Various algorithms and results > > + Segmentation Algorithms & Framework > Various algorithms and results > > + Future > Upcoming releases, etc. > Annoucement of the Beta2. > > 3:00 - 4:20 Demonstrations > + Live demos > > 4:00 - 5:00 Developing with ITK > + Development Environment > > + Architectural Features > Memory management (smart pointers, object factories, etc.) > Events (command/observer) > Image Processing (Image, iterators, etc.) > Mesh > Data flow > Image IO > > 5:00 - Informal Meetings > > Directions > > The address is: > > Tosteson Medical Medical Education Center (T-MEC) > 260 Longwood Ave > Boston, MA 02115 > > General map and direction information about Harvard Medical School can > be found at http://www.hms.harvard.edu/about/mapsdir.html . > > T-MEC is located in Harvard Medical School Quadrangle > (http://www.hms.harvard.edu/about/maps/quadmap.html) at the intersection > of Longwood Ave and Ave Louis Pasteur, at Longwood Medical Area > (http://www.hms.harvard.edu/about/maps/lmamap.html). > > By MBTA subway or bus or by car: > > Subway Green Line (E line Longwood Medical Area stop or D line Longwood > stop), bus routes 47, CT2 and 8A will all take you there. For more > information on public transportation, and for DRIVING DIRECTIONS, please > check http://www.hms.harvard.edu/about/direction.html . > > By M2 shuttle > > M2 shuttle bus runs between Harvard Yard (Quincy Street outside Lamont > Library Gate) and Longwood Medical Area (T-MEC is right across the street > from shuttle stop). Harvard GSAS students can take M2 for free. The > shuttle also makes stops on the way, including one at MBTA bus stop of > MIT's main entrance. The shuttle leaving at 7pm from Harvard Yard will > take you there on time. For more information, please check > http://www.masco.org/transit/ptsM2.htm . > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > From luis.ibanez@kitware.com Sat Jun 8 22:24:10 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sat, 08 Jun 2002 17:24:10 -0400 Subject: [Insight-users] Re: Regarding Examples References: <002601c20ed3$8ca69190$01000001@macinfo.net> Message-ID: <3D0275FA.1060506@kitware.com> Hi cspl, Did you make a "cvs update" ? or just downloaded the examples directories ? From the error message that you posted, it looks like you have two unsynchronized versions of the ImageIOBase and RawImageIO classes. RawImageIO derives from ImageIOBase ImageIOBase has a pure virtual method "Write()", that has to be overloaded by any writer. The signature of "Write()" in your version of RawImageIO doesn't match the signature of "Write()" on your version of ImageIOBase. You have: void ImageIOBase::Write( void * ); void RawImageIO::Write( const void * ); We have put a lot of effort on making ITK const-correct, the version that you have of ImageIOBase should be relatively old. All the ImageIO objects implementing the reading and writing of specific file formats derive from ImageIOBase and therefore have to implement the "Write()" method. (among others...) http://www.itk.org/Insight/Doxygen/html/classitk_1_1ImageIOBase.html Please make sure that you have a consistent checkout of ITK. Let us know if you still find any problems after updating your cvs checkout. Thanks Luis PS: If you would like to have some guidelines about how to use cvs we will be happy to point you to some URLs. ================================================================= cspl wrote: > Dear Mr.Luis, > > > > I have downloaded ur examples and tried to make it run. I have compiled > the total project once again and got new lib files after downloading > the newversion of RawImageIO.h and RawImageIO.txx. > > But I am getting the following errors. > > > :\ITK\Insight\Code\IO\itkRawImageIO.h(56) : error C2259: > 'RawImageIO' : cannot instantiate abstract class due to > following members: > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : while compiling > class-template member function 'class itk::SmartPointer itk::RawImageIO > __cdecl itk::RawImageIO char,3>::New(void)' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : warning C4259: 'void > __thiscall itk::ImageIOBase::Write(void *)' : pure virtual function was > not defined > F:\ITK\Insight\Code\IO\itkImageIOBase.h(201) : see declaration > of 'Write' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : while compiling > class-template member function 'class itk::SmartPointer itk::RawImageIO > __cdecl itk::RawImageIO char,3>::New(void)' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : error C2259: > 'RawImageIO' : cannot instantiate abstract class due to > following members: > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : while compiling > class-template member function 'class itk::SmartPointer itk::RawImageIO > __cdecl itk::RawImageIO char,3>::New(void)' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : warning C4259: 'void > __thiscall itk::ImageIOBase::Write(void *)' : pure virtual function was > not defined > F:\ITK\Insight\Code\IO\itkImageIOBase.h(201) : see declaration > of 'Write' > F:\ITK\Insight\Code\IO\itkRawImageIO.h(56) : while compiling > class-template member function 'class itk::SmartPointer itk::RawImageIO > __cdecl itk::RawImageIO char,3>::New(void)' > Error executing cl.exe. > > > > ALL_BUILD - 2 error(s), 2 warning(s) > > > > > > > When I used the old version of lib files and rawimageio.h , I got the > exception.This is as follows. > > > > Exception caught during Raw file reading > itk::ExceptionObject (0012F1AC) > Location: "Unknown" > File: F:\ITK\Insight\Code\IO\itkRawImageIO.txx > Line: 117 > Description: itk::ERROR: RawImageIO(00301640): Could not open file: > c:\diocmfile > s\download\xyz\1.raw > > > > I will try second example which is using FLTK. Actually I have 2D Image > raw files.(i.e.from CT scanner Images) . I want to read and show it's > o/p in vtk. > > > > Please help me in getting the output. > > > > > > Thanking you, > Reagards, > Ramakrishna > From will.schroeder@kitware.com Sun Jun 9 00:18:17 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Sat, 08 Jun 2002 19:18:17 -0400 Subject: [Insight-users] Announcement: ITK Public Meeting In-Reply-To: <007301c20f32$4e51cb80$0201a8c0@nycap.rr.com> References: <5.0.2.1.0.20020607165222.02795780@pop.nycap.rr.com> Message-ID: <5.0.2.1.0.20020608191706.036e1360@pop.nycap.rr.com> Hi Asad- No fees, just the cost of getting there. I have no idea if it will be crowded. I'll vouch for you if you come and make sure that you get a seat :-) Will At 05:20 PM 6/8/2002 -0400, Asad A. Abu-Tarif wrote: >Hi, >Is there any registration or fees? I might be able to go but >don't want to drive to Boston and not be able to get in :-) > >Thanks, >Asad >*************************************************************************** >* Asad A. Abu-Tarif >* Computer Engineering. >* PhD Candidate, Rensselaer Polytechnic Institute (RPI). >* Web-site: http://asad.ods.org/Professional/ >* Registration Toolkit: http://asad.ods.org/RegMagicTKDoc/ >* tarifa@rpi.edu >*************************************************************************** > >----- Original Message ----- >From: "Will Schroeder" >To: >Sent: Friday, June 07, 2002 4:55 PM >Subject: [Insight-users] Announcement: ITK Public Meeting > > > > > > ANNOUNCING > > > > ITK: The Insight Segmentation and Registration Toolkit Public Presentation > > When: Thursday, June 13, 2002 2:00-5:00pm > > Where: Auditorium 250, Second Floor Tosteson Medical Education Center > > Harvard Medical School, Boston, MA, USA > > Info: www.itk.org > > > > The Insight Segmentation and Registration Toolkit (ITK) is an open source > > software system supporting the Visible Human Project. ITK was developed by > > six principal firms (three academic-UNC,U. of Pennsylvania, U. of Utah; >and > > three commercial-GE Research, Insightful, Kitware) and funded through The > > National Library of Medicine at NIH. ITK employs a variety of leading edge > > segmentation and registration algorithms in 2D, 3D, and more dimensions, >and > > is being developed using advanced, distributed software processes. This > > presentation marks the first formal introduction of ITK to the public. We > > will provide a brief history of and motivation for the software, a survey >of > > available registration and segmentation algorithms, live demonstrations, >and > > an overview of the development environment. We will also discuss some >early > > reviews from the ITK community and plans for the future. Developers, > > Principal Investigators, and NLM project officers will be available for > > questions after the presentation. > > > > > > Thursday June 13, 2002 > > Schedule of Presentations > > ========================= > > > > 2:00 - 3:00 An Introduction to ITK > > + Introduction > > Goals, objectives, team, relationship to VHP (Visible Human > > Project) > > Validation Effort > > > > + Overview > > Architecture, major design decisions, major subsystems > > Use of templates/generic programming > > Image representation > > Mesh Representation > > > > + Registration Algorithms & Framework > > Various algorithms and results > > > > + Segmentation Algorithms & Framework > > Various algorithms and results > > > > + Future > > Upcoming releases, etc. > > Annoucement of the Beta2. > > > > 3:00 - 4:20 Demonstrations > > + Live demos > > > > 4:00 - 5:00 Developing with ITK > > + Development Environment > > > > + Architectural Features > > Memory management (smart pointers, object factories, etc.) > > Events (command/observer) > > Image Processing (Image, iterators, etc.) > > Mesh > > Data flow > > Image IO > > > > 5:00 - Informal Meetings > > > > Directions > > > > The address is: > > > > Tosteson Medical Medical Education Center (T-MEC) > > 260 Longwood Ave > > Boston, MA 02115 > > > > General map and direction information about Harvard Medical School can > > be found at http://www.hms.harvard.edu/about/mapsdir.html . > > > > T-MEC is located in Harvard Medical School Quadrangle > > (http://www.hms.harvard.edu/about/maps/quadmap.html) at the intersection > > of Longwood Ave and Ave Louis Pasteur, at Longwood Medical Area > > (http://www.hms.harvard.edu/about/maps/lmamap.html). > > > > By MBTA subway or bus or by car: > > > > Subway Green Line (E line Longwood Medical Area stop or D line Longwood > > stop), bus routes 47, CT2 and 8A will all take you there. For more > > information on public transportation, and for DRIVING DIRECTIONS, please > > check http://www.hms.harvard.edu/about/direction.html . > > > > By M2 shuttle > > > > M2 shuttle bus runs between Harvard Yard (Quincy Street outside Lamont > > Library Gate) and Longwood Medical Area (T-MEC is right across the street > > from shuttle stop). Harvard GSAS students can take M2 for free. The > > shuttle also makes stops on the way, including one at MBTA bus stop of > > MIT's main entrance. The shuttle leaving at 7pm from Harvard Yard will > > take you there on time. For more information, please check > > http://www.masco.org/transit/ptsM2.htm . > > > > _______________________________________________ > > Insight-users mailing list > > Insight-users@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-users > > From wlorens1@nycap.rr.com Sun Jun 9 13:24:25 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Sun, 09 Jun 2002 08:24:25 -0400 Subject: [Insight-users] Re: [vtkusers] itk Seminar in Boston, Thursday, June 13 In-Reply-To: References: <5.1.0.14.2.20020607163508.025fb5e0@pop.nycap.rr.com> Message-ID: <5.1.0.14.2.20020609082335.04188820@pop.nycap.rr.com> None at MICCAI this year. However, there will be a tutorial at IEEE Visualization 2002. Bill At 11:14 AM 6/8/02 +0200, Rasmus Reinhold Paulsen wrote: >Hi Bill, > >Sounds very good. Hard to go to Boston for a single event though ;) > >Do you know if there will be any ITK related events at MICCAI 2002 in >Tokyo, Japan ? > >Regards, >Rasmus > > >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users From luis.ibanez@kitware.com Mon Jun 10 17:19:57 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Mon, 10 Jun 2002 12:19:57 -0400 Subject: [Insight-users] Re: problem with the new version Message-ID: <3D04D1AD.7050901@kitware.com> Hi cspl, Looking closely at your error messages, you can notice that you are mixing two directories of ITK code: 1) F:\10.06.2002ITK 2) F:\ITK You should be doing an incorrect setup that is mixing the header files of one version with the other. Note that once you run CMake, you should *not* modifiy the VC++ project settings for any reason. Any need for doing so, will only indicate that the configuration was done incorrectly, and in that case you should correct the problem by using CMake. If you are doing something like adding include directories in VC++ with the Build/Custom options, this will certainly confuse the build please don't use any of these options. Those things were only necesary in the "Dark Ages" when CMake didn't exist :-) Please do the following: 1) erase all the previous directories where you have put ITK source code and binary code 2) do a fresh checkout using cvs 3) restart the configuration. 4) Make sure that you DONT have any ITK directories in "Tools->Options->Directories" in VC++ Please let us know if you find any problem. Thanks Luis =================================================== cspl wrote: I have downloaded the new version of itk through wincvs.But I am getting somany errors while building the project to get lib files. The errors are as follows. I could compile the Basic filters, common, vxl and FEM and get the corresponding lib files. Could not compile Numeric and IO source code.. Please help us compiling... itkAmoebaOptimizer.cxx F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(54) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(62) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(96) : error C2079: 'm_InitialPosition' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(97) : error C2079: 'm_CurrentPosition' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(98) : error C2079: 'm_Scales' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkCostFunction.h(51) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkSingleValuedCostFunction.h(54) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkAmoebaOptimizer.cxx(73) : error C2079: 'scales' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkAmoebaOptimizer.cxx(74) : error C2228: left of '.Fill' must have class/struct/union type F:\10.06.2002ITK\Code\Numerics\itkAmoebaOptimizer.cxx(75) : fatal error C1903: unable to recover from previous error(s); stopping compilation itkCacheableScalarFunction.cxx F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.h(66) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.h(114) : error C2079: 'm_CacheTable' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.cxx(37) : error C2440: 'type cast' : cannot convert from 'long' to 'class itk::Array' Source or target has incomplete type F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.cxx(47) : error C2109: subscript requires array or pointer type F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.cxx(47) : error C2106: '=' : left operand must be l-value itkCompositeValleyFunction.cxx F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.h(66) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkCacheableScalarFunction.h(114) : error C2079: 'm_CacheTable' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(24) : error C2027: use of undefined type 'Array' F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(24) : error C2228: left of '.size' must have class/struct/union type F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(26) : error C2027: use of undefined type 'Array' F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(26) : error C2228: left of '.size' must have class/struct/union type F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(44) : error C2676: binary '[' : 'const class itk::Array' does not define this operator or a conversion to a type acceptable to the predefined operator F:\10.06.2002ITK\Code\Numerics\itkCompositeValleyFunction.cxx(44) : error C2676: binary '[' : 'const class itk::Array' does not define this operator or a conversion to a type acceptable to the predefined operator itkConjugateGradientOptimizer.cxx F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(54) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(62) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code\Common\itkArray.h(435) : see declaration of 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(96) : error C2079: 'm_InitialPosition' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(97) : error C2079: 'm_CurrentPosition' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkOptimizer.h(98) : error C2079: 'm_Scales' uses undefined class 'Array' F:\10.06.2002ITK\Code\Numerics\itkCostFunction.h(51) : error C2976: 'Array' : too few template arguments F:\ITK\Insight\Code From cates@sci.utah.edu Mon Jun 10 21:35:23 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Mon, 10 Jun 2002 14:35:23 -0600 (MDT) Subject: [Insight-users] Questions about the fast marching and level set filters In-Reply-To: Message-ID: Hi Luca, Yes the level set is calculated to subvoxel accuracy as in Whitaker's implementation. The implementation in Insight is based on that described in "A Level-Set Approach to 3D Reconstruction from Range Data" Whitaker, International Journal of Computer Vision 29(3), 203-231, 1998. Josh. ______________________________ Josh Cates School of Computer Science University of Utah Email: cates@sci.utah.edu Phone: (801) 587-7697 URL: www.cs.utk.edu/~cates On Fri, 7 Jun 2002, Luca Antiga wrote: > Dear users, > dealing with sparse field and narrow band level sets. I know that sparse > field method (at least in the implementation given by Whitaker in his > library) ensures sub-voxel accuracy even with first order upwinding, by > estimating level set position according to \phi and \nabla(\phi) and > evaluating there all the quantities involved with evolution. Is this feature > included in narrow band version? > Thanks > > Luca > > > >From: Bjorn Hanch Sollie > >To: insight-users , Joshua Cates > > > >Subject: Re: [Insight-users] Questions about the fast marching and level > >set filters > >Date: Thu, 6 Jun 2002 19:29:35 +0200 (CEST) > > > >On Tue, 4 Jun 2002, Joshua Cates wrote: > > > > > You can use the SparseFieldLevelSetImageFilter for applications that > >only > > > care about a single level set (and you will almost certainly get some > > > speed advantage by doing so). I > > > >Thanks for answering some questions. I've been looking at the > >SparseFieldLevelSet filter examples, and as far as I can see, it > >requires the potential map (or target image) to have positive values > >on the inside of the region and negative values on the outside. This > >is in contrast to the potential map for the ShapeDetectionLevelSet > >filter which wants values between 0 and 1. My queston then is: What > >is the best way of making a potential map for the SparseFieldLevelSet > >filter from an edge image? Just do a simple positive/negative > >threshold on some grey value? Are there any recommended (better?) > >ways? > > > >-Bjorn > >-- > >The History of the Universe > >Chapter 1: Bang! Chapter 2: Sss... Chapter 3: Crunch! > >The End > > > >_______________________________________________ > >Insight-users mailing list > >Insight-users@public.kitware.com > >http://public.kitware.com/mailman/listinfo/insight-users > > > _________________________________________________________________ > Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp. > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > From galicjan@yahoo.com Tue Jun 11 16:42:45 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Tue, 11 Jun 2002 08:42:45 -0700 (PDT) Subject: [Insight-users] Roadblocks of using ITK in practice Message-ID: <20020611154245.51611.qmail@web20907.mail.yahoo.com> ITK is has a very good potential of being a great image analysis package. * Multi-platform support * Large number of already available imaging algorithms * Parametric algorithms and data representation * Pipeline architecture * Potential for streaming and multi-threading support * Last but not least, great community of users and developers However, in the current stage, ITK is very difficult to be used for many practical application. There are number of issues a developer stumbles upon. To keep discussion focused, I want to single out one that is the most critical: difficulty, or stating it more directly, practical inability to handle image types at runtime. Many data representation objects in ITK, an image in particular, are parametric (template classes) without a related non-parametric base class. Consider image representation, purely parametric representation means that exact image type has to be known at compile time. Fixing image type at compile time drastically limits application's usability to handle images with different pixel types (or dimension). In medical application, forcing type conversion, in praticulat automatic type conversion, is undesirable. Conversions that involve shifting and scaling distort data. Converting to a 'larger' type to avoid scaling, e.g. 'short' to 'int' increases memory requirement that is unacceptable for processing of large images. ITK is missing a base non-parametric image class. This class should allow querying information about an image like its pixel type, dimension, size, etc. This information could be used to execute a version of a pipeline that matches image typew without need of conversion. The solution to this problem is relatively simple: add a base non-parametric image class for ImageBase<> (or even better make ImageBase non-parametric by dropping dimension as a template parameter). I do not suggest removing templates all together, there are important for creation of generic and robust code. I do suggest extending ITK architecture by adding non-parametric base classes for existing data representation classes. This extension would facilitate run-time type handling that enable writing code that can directly handle various image types (without) need for conversion. I would strongly advocate addition of non-parametric base classes to ITK. This would help in creation of practical medical image analysis applications. It would also help to resolve some of other ITKs issues like wrapping in other languages or creation of more robust image I/O module. Jarek P.S.: Note that, in a limited sense, writing run-time type independent code using ITK is possible. It is possible only in the case when input to a pipeline is an image file. One can query image pixel type and dimension before declaring and initializing processing pipeline. Here is a sample code, for simplicity image dimension is ignored: MetaImageIO::Pointer io = MetaImageIO::New(); io->SetFileName(inputFileName); io->ReadImageInformation(); if(io->GetPixelType() == std::typeid(unsigned char) ) { MyPipeline myPipeline; myPipeline.SetFileName(inputFileName); myPipeline.Update(); } else if(io->GetPixelType() == std::typeid(unsigned short) ) { MyPipeline myPipeline; myPipeline.SetFileName(inputFileName); myPipeline.Update(); } ... // and so on __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From lorensen@crd.ge.com Tue Jun 11 16:48:05 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Tue, 11 Jun 2002 11:48:05 -0400 Subject: [Insight-users] Roadblocks of using ITK in practice Message-ID: Jarek, Thanks for your comments. They are timely since our development team is meeting this week to assess progress and address issues. As a team we have struggled with this run-time issue from the start. It will be a topic of discussion this week. Bill -----Original Message----- From: Jarek Sacha [mailto:galicjan@yahoo.com] Sent: Tuesday, June 11, 2002 11:43 AM To: Insight-users Subject: [Insight-users] Roadblocks of using ITK in practice ITK is has a very good potential of being a great image analysis package. * Multi-platform support * Large number of already available imaging algorithms * Parametric algorithms and data representation * Pipeline architecture * Potential for streaming and multi-threading support * Last but not least, great community of users and developers However, in the current stage, ITK is very difficult to be used for many practical application. There are number of issues a developer stumbles upon. To keep discussion focused, I want to single out one that is the most critical: difficulty, or stating it more directly, practical inability to handle image types at runtime. Many data representation objects in ITK, an image in particular, are parametric (template classes) without a related non-parametric base class. Consider image representation, purely parametric representation means that exact image type has to be known at compile time. Fixing image type at compile time drastically limits application's usability to handle images with different pixel types (or dimension). In medical application, forcing type conversion, in praticulat automatic type conversion, is undesirable. Conversions that involve shifting and scaling distort data. Converting to a 'larger' type to avoid scaling, e.g. 'short' to 'int' increases memory requirement that is unacceptable for processing of large images. ITK is missing a base non-parametric image class. This class should allow querying information about an image like its pixel type, dimension, size, etc. This information could be used to execute a version of a pipeline that matches image typew without need of conversion. The solution to this problem is relatively simple: add a base non-parametric image class for ImageBase<> (or even better make ImageBase non-parametric by dropping dimension as a template parameter). I do not suggest removing templates all together, there are important for creation of generic and robust code. I do suggest extending ITK architecture by adding non-parametric base classes for existing data representation classes. This extension would facilitate run-time type handling that enable writing code that can directly handle various image types (without) need for conversion. I would strongly advocate addition of non-parametric base classes to ITK. This would help in creation of practical medical image analysis applications. It would also help to resolve some of other ITKs issues like wrapping in other languages or creation of more robust image I/O module. Jarek P.S.: Note that, in a limited sense, writing run-time type independent code using ITK is possible. It is possible only in the case when input to a pipeline is an image file. One can query image pixel type and dimension before declaring and initializing processing pipeline. Here is a sample code, for simplicity image dimension is ignored: MetaImageIO::Pointer io = MetaImageIO::New(); io->SetFileName(inputFileName); io->ReadImageInformation(); if(io->GetPixelType() == std::typeid(unsigned char) ) { MyPipeline myPipeline; myPipeline.SetFileName(inputFileName); myPipeline.Update(); } else if(io->GetPixelType() == std::typeid(unsigned short) ) { MyPipeline myPipeline; myPipeline.SetFileName(inputFileName); myPipeline.Update(); } ... // and so on __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com _______________________________________________ Insight-users mailing list Insight-users@public.kitware.com http://public.kitware.com/mailman/listinfo/insight-users From will.schroeder@kitware.com Wed Jun 12 11:51:20 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Wed, 12 Jun 2002 06:51:20 -0400 Subject: [Insight-users] Roadblocks of using ITK in practice In-Reply-To: <20020611154245.51611.qmail@web20907.mail.yahoo.com> Message-ID: <5.0.2.1.0.20020612064630.0278a580@pop.nycap.rr.com> Hi Jarek- Thanks for the feedback, as Bill says the timing is good. I have a question about your proposal: At 08:42 AM 6/11/2002 -0700, Jarek Sacha wrote: >. ITK is >missing a base non-parametric image class. This class should allow >querying information about an image like its pixel type, dimension, size, >etc. This information could be used to execute a version of a pipeline >that matches image typew without need of conversion. The solution to this >problem is relatively simple: add a base non-parametric image class for >ImageBase<> (or even better make ImageBase non-parametric by dropping >dimension as a template parameter). I >I would strongly advocate addition of non-parametric base classes to ITK. >This would help in creation of practical medical image analysis >applications. It would also help to resolve some of other ITKs issues like >wrapping in other languages or creation of more robust image I/O module. If a non-parametric image class is added, how do you see modifying the templated filters to process such a base class? I have some ideas but rather than taint yours, I'd like to hear what you have to say first. Thanks, Will From ander833@student.liu.se Wed Jun 12 16:16:21 2002 From: ander833@student.liu.se (Andreas Eriksson) Date: Wed, 12 Jun 2002 17:16:21 +0200 Subject: [Insight-users] vnl_quaternion::rotation_matrix_4() declared but not defined? Message-ID: <3144235510.3551031442@student.liu.se> vnl_matrix_fixed vnl_quaternion::rotation_matrix_4 () const seems to be declared but not defined, or am I wrong?? From lferrari@cci.fmrp.usp.br Wed Jun 12 19:27:38 2002 From: lferrari@cci.fmrp.usp.br (Lucas Ferrari de Oliveira) Date: Wed, 12 Jun 2002 15:27:38 -0300 Subject: [Insight-users] Problems in instalation Message-ID: <3D07929A.6050909@cci.fmrp.usp.br> Hi All, I am trying install Itk in my Debian GNU/Linux. But, appear the error: /home/lferrari/aplicativos/Insight/Auxiliary/FltkImageViewer/fltkClippingPlane3DDrawer.cxx: In method `void fltk::ClippingPlane3DDrawer::glDraw() const': /home/lferrari/aplicativos/Insight/Auxiliary/FltkImageViewer/fltkClippingPlane3DDrawer.cxx:154: conversion from `const unsigned int' to `enum GLenum' /home/lferrari/aplicativos/Insight/Auxiliary/FltkImageViewer/fltkClippingPlane3DDrawer.cxx:155: conversion from `const unsigned int' to `enum GLenum' /home/lferrari/aplicativos/Insight/Auxiliary/FltkImageViewer/fltkClippingPlane3DDrawer.cxx:159: conversion from `const unsigned int' to `enum GLenum' make[5]: *** [fltkClippingPlane3DDrawer.o] Error 1 make[4]: *** [default_target] Error 2 make[3]: *** [default_target_FltkImageViewer] Error 2 make[2]: *** [default_target] Error 2 make[1]: *** [default_target_Auxiliary] Error 2 make: *** [default_target] Error 2 What I have to do?? Thanks regards, -- |===================================================| | (*< , Lucas Ferrari de Oliveira | | //\c[] Doutorando USP | | V_/_ Ribeirao Preto - SP | | Seja Livre, e-mails: lferrari@cci.fmrp.usp.br | | use GNU/Linux! lferrari@quadrim.com.br | |===================================================| From galicjan@yahoo.com Wed Jun 12 20:41:14 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Wed, 12 Jun 2002 12:41:14 -0700 (PDT) Subject: [Insight-users] Roadblocks of using ITK in practice In-Reply-To: <5.0.2.1.0.20020612064630.0278a580@pop.nycap.rr.com> Message-ID: <20020612194114.23191.qmail@web20909.mail.yahoo.com> --- Will Schroeder wrote: > If a non-parametric image class is added, how do you see modifying the > templated filters to process such a base class? I have some ideas but > rather than taint yours, I'd like to hear what you have to say first. Will: I would see it as a two phase change. Initially only non-parametric classes for data representation objects are added. This already would help solve some issues. In the second phase data processing API is extended to actually support non-parametric data representation objects. The parametric filters should not need to handle non-parametric images. Rather there should be a non-parametric "selector" that would instantiate proper parametric filter based on information queried from a non-parametric image base class. How this is going to be actually done is a very good point for discussion. One possibility is to add a non-parametric base for each parametric filter. This class will act as a filter handle and as a dispatch for instantiating proper parametric filter. The point here would be to make life easy for the user. A sample program using this approach could look something like this: // Setup image file reader ImageFileReaderS::Pointer reader = ImageFileReaderS::New(); reader->SetImageIO(MyImageIO::New()); reader->SetFileName(inputFileName); // Setup median filter MedianImageFilterS::Pointer filter = MedianImageFilterS::New(); filter->SetInput(reader->GetOutput()); // Setup image file writer ImageFileWriterS::Pointer writer = ImageFileWriterS::New(); writer->SetImageIO(MyImageIO::New()); writer->SetFileName(outputFileName); writer->SetInput(filter->GetOutput()); // Execute pipeline writer->Write(); Selectors would support some known set of data types. That is, only a fixed number of parametric filters could be instantiated by a selector since each type must be known at compile time. To aid a library developer a right set of preprocessor macros could simplify writing instantiation code for selector classes. Possibly, filter selector classes could be automatically generated from filter templates. >From the library development and maintenance point of view, creating a "selector" for each filter may not be most desirable solution. A different approach could be to provide a mechanism for assembling parametric pipeline fragments, say using a parametric StaticPipelineChunk<> class and then generating a "selector" for each such chunk. A StaticPipelineChunk correspons to pipeline fragments where image type could not randomly change. As before, the selector would handle instantiating StaticPipelineChunk with proper data representation types at runtime. This could be a solution simpler to implement and maintain but may be more difficult to handle on the user side. In general, there should always be a possibility of directly using parametric filter. With same care parametric and non parametric code could be mixed. There may be a need to modify existing parametric filters and the pipeline in general. For instance, many filters take output image type as a parameter. In non-parametric pipeline, as in example above, the output image type is decided by the filter based on the input image type and type of processing. Another example, efficient streaming support may require addition of messages that would indicate beginning (before first piece is in) and end of streaming (after last piece is out) to prevent unneeded re-instantiations of template-filters. Just some thoughts, hope that you will find them helpful. I wonder what you were thinking about. Jarek __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From Sebastian Fiorentini Thu Jun 13 03:03:10 2002 From: Sebastian Fiorentini (Sebastian Fiorentini) Date: Wed, 12 Jun 2002 23:03:10 -0300 Subject: [Insight-users] Deformable3DMesh Message-ID: <371998744.20020612230310@yahoo.com.ar> Hi.. Can anyone give me a piece of code, or an example that uses GradientVectorFlow and Deformable3DMesh to do segmentation?? Thanks in advance... Saludos...Sebas.. sebasfiorent@yahoo.com.ar From Vincent.Daanen@imag.fr Thu Jun 13 11:15:50 2002 From: Vincent.Daanen@imag.fr (Vincent Daanen) Date: Thu, 13 Jun 2002 12:15:50 +0200 Subject: [Insight-users] Problem compiling cvs version of ITK on Win2000/VC6.0 Message-ID: <3D0870D6.5D9D26D9@mail-timc.imag.fr> Hi boys, I downloaded CVS release of ITK. but when compiling, compiler hangs with this error : " E:\Outils_Dev\Insight\Code\BasicFilters\itkDanielssonDistanceMapImageFilter.txx(287) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494) " does anybody know what to do ? Vince From bill.hoffman@kitware.com Thu Jun 13 14:24:40 2002 From: bill.hoffman@kitware.com (Bill Hoffman) Date: Thu, 13 Jun 2002 09:24:40 -0400 Subject: [Insight-users] Problem compiling cvs version of ITK on Win2000/VC6.0 In-Reply-To: <3D0870D6.5D9D26D9@mail-timc.imag.fr> Message-ID: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> You will need service pack 5 for visual studio. -Bill At 12:15 PM 6/13/2002 +0200, Vincent Daanen wrote: >Hi boys, > >I downloaded CVS release of ITK. > >but when compiling, compiler hangs with this error : >" >E:\Outils_Dev\Insight\Code\BasicFilters\itkDanielssonDistanceMapImageFilter.txx(287) >: fatal error C1001: INTERNAL COMPILER ERROR > (compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494) >" > >does anybody know what to do ? > > Vince > > >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users From Vincent.Daanen@imag.fr Fri Jun 14 13:59:16 2002 From: Vincent.Daanen@imag.fr (Vincent Daanen) Date: Fri, 14 Jun 2002 14:59:16 +0200 Subject: [Insight-users] Problem compiling cvs version of ITK onWin2000/VC6.0 References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> Message-ID: <3D09E8A4.368398E@mail-timc.imag.fr> OK I get service pack 5 for visual studio. More files are now compiled but again, compilation process breaks with these errors : Compiling... vtkITKConfidenceConnectedImageFilter.cxx D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : error C2039: 'seekdir' : is not a member of 'ios' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) : see declaration of 'ios' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : error C2061: syntax error : identifier 'seekdir' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : error C2039: 'openmode' : is not a member of 'ios' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) : see declaration of 'ios' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : error C2061: syntax error : identifier 'openmode' D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(91) : error C2629: unexpected 'class std::ostrstream (' Is this related to the ITK_USE_SYSTEM_STDLIB flag ?? Should I set it to On or OFF ?? Thanks Vince From Vincent.Daanen@imag.fr Fri Jun 14 14:31:35 2002 From: Vincent.Daanen@imag.fr (Vincent Daanen) Date: Fri, 14 Jun 2002 15:31:35 +0200 Subject: [Insight-users] Problem compiling cvs version of ITKonWin2000/VC6.0 References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> <5.0.2.1.0.20020614091658.043a7220@pop.nycap.rr.com> Message-ID: <3D09F037.A951026E@mail-timc.imag.fr> Sorry for ce precedent email, I didn't pay attention that I was sending it to you and not to the insight mailing list ! Bill Hoffman wrote: > It looks like you are using VTK with ITK, VTK has to be compiled with VTK_USE_ANSI_STDLIB set on. > > -Bill I recompiled VTK with the flag VTK_USE_ANSI_STDLIB set on. While cmakesetup processing ITK, I do not use VTK ! Is this an error ?? From mmalat@irus.rri.ca Fri Jun 14 21:03:01 2002 From: mmalat@irus.rri.ca (Mathieu Malaterre) Date: Fri, 14 Jun 2002 16:03:01 -0400 Subject: [Insight-users] ftlk + debian bug report Message-ID: <3D0A4BF5.8A6F2CC6@irus.rri.ca> This is a multi-part message in MIME format. --------------449F282EDE8D7B606B90B142 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, I had some problems making FltkImageViewer work with debian. I took a look to the gl.h file that comes with the debian and it is the Mesa 3.1 Lib version. There, they define GLenum as: #ifdef CENTERLINE_CLPP /* CenterLine C++ workaround: */ gl_enum; typedef int GLenum; #else /* all other compilers */ GLenum; #endif whereas in fltkClippingPlane3DDrawer.cxx, for instance, they assume that GLenum is 'unsigned int' So I replaced by GLenum each time I had compilation problem. HTH Mathieu --------------449F282EDE8D7B606B90B142 Content-Type: text/x-vcard; charset=us-ascii; name="mmalat.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Mathieu Malaterre Content-Disposition: attachment; filename="mmalat.vcf" begin:vcard n:Malaterre;Mathieu tel;cell:519-697-5045 tel;work:519-685-8300 x34096 x-mozilla-html:FALSE url:http://www.irus.rri.ca/~mmalat org:The John P. Robarts Research Institute;Imaging Research Laboratories adr:;;100 Perth Drive;London;Ontario;N6A 5K8;CANADA version:2.1 email;internet:mmalat@irus.rri.ca title:Visiting Graduate Student x-mozilla-cpt:;0 fn:Malaterre, Mathieu end:vcard --------------449F282EDE8D7B606B90B142-- From luis.ibanez@kitware.com Sat Jun 15 17:42:08 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sat, 15 Jun 2002 12:42:08 -0400 Subject: [Insight-users] Re: Help References: <000d01c2147f$2fb9e7f0$5033b801@macinfo.net> Message-ID: <3D0B6E60.9000203@kitware.com> Hi cspl, ITK applications can be build without the use of CMake, It will just be harder to setup the project file correctly Can you please add a try/catch block to you OLE application and printout the message of the caught exception ? Something like: try { laplacian->Update(); } catch( itk::ExceptionObject & e ) { std::cout << e << std::endl; } Then printed message could probably help to identify the source of the problem. Thanks Luis ============================================== cspl wrote: > Dear Mr. Luis, > > > > I got the laplician filter output and I can able to read and write raw > files.These functionalitie's are working fine when I am making projects > with the help of CMake.I tried another application which is a OLE > Automation > > server.In that application Laplician filter is not working .But Actually > Iam not creating project with the help of CMake.I tried using dll also > but Laplician filter ->Update() is giving exception in with out using > CMake projects.Please give me suggestion to solve our problem.Is it work > with only Cmake projects or it can be placed any where in the code in > other applications. > > > > > > Thanking you, > > Regards, > > Ramakrishna > > > From lorensen@crd.ge.com Mon Jun 17 12:05:25 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Mon, 17 Jun 2002 07:05:25 -0400 Subject: [Insight-users] Problem compiling cvs version of ITK onWin200 0/VC6.0 Message-ID: VTK 4 may be OK. As Bill Hoffman mentioned earlier, VTK has to be compiled with VTK_USE_ANSI_STDLIB set on. -----Original Message----- From: Vincent Daanen [mailto:Vincent.Daanen@imag.fr] Sent: Monday, June 17, 2002 2:17 AM To: Lorensen, William E (Research) Subject: Re: [Insight-users] Problem compiling cvs version of ITK onWin2000/VC6.0 VTK 4 it'is not the CVS version ! does-it mattter ? Vince "Lorensen, William E (Research)" wrote: > No, the stdlib flag should be left as is. > > I suspect you are building against an old version of vtk. What version do you have? > > Bill > > -----Original Message----- > From: Vincent Daanen [mailto:Vincent.Daanen@imag.fr] > Sent: Friday, June 14, 2002 8:59 AM > To: insight-users@public.kitware.com > Subject: Re: [Insight-users] Problem compiling cvs version of ITK > onWin2000/VC6.0 > > OK I get service pack 5 for visual studio. > > More files are now compiled but again, compilation process breaks with > these errors : > > Compiling... > vtkITKConfidenceConnectedImageFilter.cxx > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : > error C2039: > 'seekdir' : is not a member of 'ios' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) > : see > declaration of 'ios' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : > error C2061: syntax > error : identifier 'seekdir' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : > error C2039: > 'openmode' : is not a member of 'ios' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) > : see > declaration of 'ios' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : > error C2061: syntax > error : identifier 'openmode' > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(91) : > error C2629: > unexpected 'class std::ostrstream (' > > Is this related to the ITK_USE_SYSTEM_STDLIB flag ?? > Should I set it to On or OFF ?? > > Thanks > > Vince > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users -- Vincent Daanen, Research Engineer- Post Doctoral Position Laboratoire TIMC/IMAG Equipe GMCAO - Universite Joseph Fourier - CNRS UMR 5525 Faculte de Medecine - Domaine de la Merci - 38706 La Tronche cedex - France Tel: +33 (0)4 76 54 95 23 Vincent.Daanen@imag.fr From Vincent.Daanen@imag.fr Mon Jun 17 12:34:43 2002 From: Vincent.Daanen@imag.fr (Vincent Daanen) Date: Mon, 17 Jun 2002 13:34:43 +0200 Subject: [Insight-users] Problem compiling cvs version of ITK onWin2000/VC6.0 References: Message-ID: <3D0DC953.163DB83@mail-timc.imag.fr> I just verified : VTK_USE_ANSI_STDLIB is on. I just recompiled vtk and then try to recompile itk but still the sames errors ! Vince "Lorensen, William E (Research)" wrote: > VTK 4 may be OK. As Bill Hoffman mentioned earlier, VTK has to be compiled with VTK_USE_ANSI_STDLIB > set on. > > -----Original Message----- > From: Vincent Daanen [mailto:Vincent.Daanen@imag.fr] > Sent: Monday, June 17, 2002 2:17 AM > To: Lorensen, William E (Research) > Subject: Re: [Insight-users] Problem compiling cvs version of ITK > onWin2000/VC6.0 > > VTK 4 > it'is not the CVS version ! does-it mattter ? > > Vince > > "Lorensen, William E (Research)" wrote: > > > No, the stdlib flag should be left as is. > > > > I suspect you are building against an old version of vtk. What version do you have? > > > > Bill > > > > -----Original Message----- > > From: Vincent Daanen [mailto:Vincent.Daanen@imag.fr] > > Sent: Friday, June 14, 2002 8:59 AM > > To: insight-users@public.kitware.com > > Subject: Re: [Insight-users] Problem compiling cvs version of ITK > > onWin2000/VC6.0 > > > > OK I get service pack 5 for visual studio. > > > > More files are now compiled but again, compilation process breaks with > > these errors : > > > > Compiling... > > vtkITKConfidenceConnectedImageFilter.cxx > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : > > error C2039: > > 'seekdir' : is not a member of 'ios' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) > > : see > > declaration of 'ios' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(51) : > > error C2061: syntax > > error : identifier 'seekdir' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : > > error C2039: > > 'openmode' : is not a member of 'ios' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ios.h(106) > > : see > > declaration of 'ios' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(54) : > > error C2061: syntax > > error : identifier 'openmode' > > D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\strstream(91) : > > error C2629: > > unexpected 'class std::ostrstream (' > > > > Is this related to the ITK_USE_SYSTEM_STDLIB flag ?? > > Should I set it to On or OFF ?? > > > > Thanks > > > > Vince > > _______________________________________________ > > Insight-users mailing list > > Insight-users@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-users > > -- > Vincent Daanen, > Research Engineer- Post Doctoral Position > Laboratoire TIMC/IMAG Equipe GMCAO - Universite Joseph Fourier - CNRS UMR 5525 > Faculte de Medecine - Domaine de la Merci - 38706 La Tronche cedex - France > Tel: +33 (0)4 76 54 95 23 > Vincent.Daanen@imag.fr -- Vincent Daanen, Research Engineer- Post Doctoral Position Laboratoire TIMC/IMAG Equipe GMCAO - Université Joseph Fourier - CNRS UMR 5525 Faculté de Médecine - Domaine de la Merci - 38706 La Tronche cedex - France Tel: +33 (0)4 76 54 95 23 Vincent.Daanen@imag.fr From affable@hd2.dot.net.in Sat Jun 15 16:05:08 2002 From: affable@hd2.dot.net.in (cspl) Date: Sat, 15 Jun 2002 20:35:08 +0530 Subject: [Insight-users] Help Message-ID: <000d01c2147f$2fb9e7f0$5033b801@macinfo.net> This is a multi-part message in MIME format. ------=_NextPart_000_000A_01C214AC.2396EFE0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Dear Mr. Luis, I got the laplician filter output and I can able to read and write raw = files.These functionalitie's are working fine when I am making projects = with the help of CMake.I tried another application which is a OLE = Automation=20 server.In that application Laplician filter is not working .But Actually = Iam not creating project with the help of CMake.I tried using dll also = but Laplician filter ->Update() is giving exception in with out using = CMake projects.Please give me suggestion to solve our problem.Is it work = with only Cmake projects or it can be placed any where in the code in = other applications. Thanking you, Regards, Ramakrishna ------=_NextPart_000_000A_01C214AC.2396EFE0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Dear Mr. Luis,
 
I got the laplician filter output and I = can able to=20 read and write raw files.These functionalitie's are working fine when I = am=20 making projects with the help of CMake.I tried another application which = is a=20 OLE Automation
server.In that application Laplician = filter is not=20 working .But Actually Iam not creating project  with the help of = CMake.I=20 tried using dll also but Laplician filter ->Update() is giving = exception in=20 with out using CMake projects.Please give me suggestion to solve our = problem.Is=20 it work with only Cmake projects or it can be placed any where in the = code in=20 other applications.
 
 
Thanking you,
Regards,
Ramakrishna
 
------=_NextPart_000_000A_01C214AC.2396EFE0-- From galicjan@yahoo.com Mon Jun 17 14:43:00 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Mon, 17 Jun 2002 06:43:00 -0700 (PDT) Subject: [Insight-users] Non-parametric base classes for data representation Message-ID: <20020617134300.57251.qmail@web20908.mail.yahoo.com> Will: Did you had a chance to discuss non-parametric base classes for data representation classes during the Boston meeting? Jarek __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From synsk8boardingco@hotmail.com Tue Jun 18 01:15:45 2002 From: synsk8boardingco@hotmail.com (erin get ya hand off it =0) Date: Tue, 18 Jun 2002 10:15:45 +1000 Subject: [Insight-users] helps needed Message-ID:

Ahhhh hello

umm i found your addy at this site i went to when i was looking for a win 32 application for msn messenger  the site was     www.itk.org/pipermail/insight-users/2002-april/000196.html and you seemed you new a bit about computers and that so i thought i would ask you if you had any idea where i could get that win 32 application from cause i cant download msn with out it and its giving me the shits well my sisters mainly giving me the shits but i need it i spose

well hope you can help write back with any info

thanx l8a


 

http://www.geocities.com/gamecentral_online/home.html

I LOVE ERIN

 
 
 
 


MSN Photos is the easiest way to share and print your photos: Click Here
From Y.Rouillard@exeter.ac.uk Tue Jun 18 17:32:46 2002 From: Y.Rouillard@exeter.ac.uk (Yann Rouillard) Date: Tue, 18 Jun 2002 17:32:46 +0100 Subject: [Insight-users] Capturing progress info while loading file References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> <3D09E8A4.368398E@mail-timc.imag.fr> Message-ID: <017801c216e5$c760b1c0$2a2cad90@janus> Hi, I'd like to know how to set up a progress bar to monitor a loading file operation. Does anyone know how to do it with ITK ? Cheers, Yann Rouillard From ferrari@ucalgary.ca Tue Jun 18 17:31:54 2002 From: ferrari@ucalgary.ca (Ricardo J. Ferrari) Date: Tue, 18 Jun 2002 10:31:54 -0600 Subject: [Insight-users] ITK on MAC OS X 10 Message-ID: Hi all, If somebody has gotten ITK running on MAC OS X 10 could you please give me some hints about how to install it. I couldn't link the libraries. Thanks, Ricardo From luis.ibanez@kitware.com Tue Jun 18 19:44:10 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Tue, 18 Jun 2002 14:44:10 -0400 Subject: [Insight-users] Capturing progress info while loading file References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> <3D09E8A4.368398E@mail-timc.imag.fr> <017801c216e5$c760b1c0$2a2cad90@janus> Message-ID: <3D0F7F7A.3040702@kitware.com> Hi Yann, ITK uses the the Observer Design Pattern. Most ITK filters send "itk::Events", for example: itk::StartEvent itk::EndEvent itk::ProgressEvent ... ITK provide Observers that can be registered on a filter in order to "listen" to these events. You may be interested on the "itk::ProgressEvent" Basically you create an Observer, and register it with the filter for which you want to track the progress. myFilter->AddObserver( itk::ProgressEvent(), HxButton->GetRedrawCommand()); NOTE that the first argument is a newly constructed "ProgressEvent". Only the type of the event is used here, in an approach similar the one used for Exceptions. When the filter throws the particular event, the "Execute()" method of the observer is invoked. Then you can do whatever you want at this level. For example update a progress bar in a GUI, or just print a value on the standard output. There is a FLTK class that you can use right now. It derives from the fltkSlider and has built in an Observer. Insight/Auxiliary/FltkImageViewer/fltkProgressBar.cxx You may see an example of this on the GaussianFilter example: Insight/Examples/GaussianFilter/liFilterConsole2D.cxx progressSlider->Observe( myFilter.GetPointer() ); Please let us know if you encounter any problems setting up Observers. Thanks Luis ============================================================== Yann Rouillard wrote: > Hi, > > I'd like to know how to set up a progress bar to monitor a loading file > operation. > > Does anyone know how to do it with ITK ? > > Cheers, > > Yann Rouillard > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > > From hjohnson@engineering.uiowa.edu Tue Jun 18 20:16:53 2002 From: hjohnson@engineering.uiowa.edu (Hans J. Johnson) Date: Tue, 18 Jun 2002 14:16:53 -0500 Subject: [Insight-users] IO factory creation problem for writing Message-ID: <3D0F8725.7020906@engineering.uiowa.edu> This is a multi-part message in MIME format. --------------040601060808030202010207 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Hello, PROBLEM #1 ========== There is a possible design problem with the way automatic XXXImageIOFactory works for writing of images. If you want the ImageFileWriter to determine the output image type automatically, the current implementation may fail. The problem is that when itk::ImageFileWriter tries to Write the image, it fails to find a suitable derived class of ImageIOBase. The failure occurs because the write function calls CreateImageIO, which then calls CanReadFile to determine if it is an accepable derived ImageIOBase is found. For this to work properly, the CreateImageIO function needs to call CanWriteFile from the class derived from ImageIOBase when doing the Write operation, and CanReadFile when doing the Read operation. CALLTREE: itk::PNGImageIO::CanReadFile, itk::ImageIOFactory::CreateImageIO, itk::ImageFileWriter >::Write I have attached a simple test to demonstrate this. Notice that if you first create an image that can be read, then you can use the automatic mechanism to write the image. Example outputs from enclosed program: [hjohnson@robin FileWriteTest]$ FileWriteTest Determining file output type automatically (should be PNG) Problem found while writing image ./newtest.png Unknown itk::ERROR: ImageFileWriter(0x8107db0): No ImageIO set, or none could be created. [hjohnson@robin FileWriteTest]$ FileWriteTest "BeExplicit" Explicitly setting file output to PNG File: ./newtest.png Image ./newtest.png Written To Disk [hjohnson@robin FileWriteTest]$ FileWriteTest Determining file output type automatically (should be PNG) File: ./newtest.png Image ./newtest.png Written To Disk [hjohnson@robin FileWriteTest]$ rm newtest.png [hjohnson@robin FileWriteTest]$ FileWriteTest Determining file output type automatically (should be PNG) Problem found while writing image ./newtest.png Unknown itk::ERROR: ImageFileWriter(0x8107db0): No ImageIO set, or none could be created. SOLUTION: ========== Replace function called CreateImageIO with function called CreateImageIO Reader, then duplicate that function into one called CreateImageIOWriter that is exactly the same except that it uses CanWriteFile() call instead of CanReadFile() call. This change only affects the following four files (including all of the examples): ./Code/IO/itkImageIOFactory.h ./Code/IO/itkImageIOFactory.cxx ./Code/IO/itkImageFileReader.txx ./Code/IO/itkImageFileWriter.txx patches to implement the described changes are attached to this document. PROBLEM #2 =========== PNGImageIO::CanWriteFile(const char * filename) add one line ---> m_FileName=filename; SOLUTION ========= Apply patches attached to this e-mail. PROBLEM #3 =========== MetaImageIO::Write() not finished SOLUTION ========= Finish writing this. I can do this if it has not yet been done. Regards, Hans J. Johnson hans-johnson@uiowa.edu PS: Is there some other more efficient way to get changes committed to the CVS repository? Is it possible to get CVS write access? PPS: I have written a file reader for Analyze v7.5 file format. It has been tested for both reading and writing of images. If anybody else needs this, just send me an e-mail. --------------040601060808030202010207 Content-Type: text/plain; name="CMakeLists.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="CMakeLists.txt" PROJECT(FileWriteTest) # # Find ITK # FIND_PATH( ITK_BINARY_DIR itkConfigure.h ) # Load in the values from ITK if found IF ( ITK_BINARY_DIR ) LOAD_CACHE(${ITK_BINARY_DIR}) INCLUDE (${ITK_SOURCE_DIR}/itkCMakeOptions.cmake) ENDIF (ITK_BINARY_DIR ) INCLUDE_DIRECTORIES( ${ITK_SOURCE_DIR}/Code/BasicFilters ${ITK_SOURCE_DIR}/Code/Algorithms ${CMAKE_INSTALL_PREFIX}/include ) LINK_DIRECTORIES( ${ITK_BINARY_DIR}/Code/Common ${ITK_BINARY_DIR}/Code/IO ${CMAKE_INSTALL_PREFIX}/lib ) LINK_LIBRARIES ( VXLNumerics ITKCommon ITKIO ) ADD_EXECUTABLE(FileWriteTest FileWriteTest ) --------------040601060808030202010207 Content-Type: text/plain; name="FileWriteTest.cxx" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="FileWriteTest.cxx" /*========================================================================= Program: FileWriteTest Module: $RCSfile: FileWriteTest.cxx,v $ Language: C++ \author Hans J. Johnson // This project is designed to test if you write out an image file // based on the image extension alone. =========================================================================*/ #include "itkImage.h" #include "itkImageFileWriter.h" #include "itkImageIOFactory.h" #include "itkPNGImageIOFactory.h" #include "itkPNGImageIO.h" int main(int argc, char *argv[]) { //Allocate Images enum { ImageDimension = itk::Image::ImageDimension }; const itk::Image::SizeType size = {{100,100}}; const itk::Image::IndexType index = {{0,0}}; itk::Image::RegionType region; region.SetSize( size ); region.SetIndex( index ); itk::Image::Pointer img = itk::Image::New(); img->SetLargestPossibleRegion( region ); img->SetBufferedRegion( region ); img->SetRequestedRegion( region ); img->Allocate(); itk::PNGImageIOFactory::RegisterOneFactory(); itk::ImageFileWriter< itk::Image >::Pointer ImageWriterPointer = itk::ImageFileWriter< itk::Image > ::New(); //Set the output filename char outputFileName[] = "./newtest.png"; ImageWriterPointer->SetFileName(outputFileName); //Not Necessary if using file extensions to determine. ImageWriterPointer->SetImageIO( Analyzeio ); //Make a png image writer itk::PNGImageIO::Pointer pngio; if(argc>1) { std::cout << "Explicitly setting file output to PNG"<< std::endl; pngio= itk::PNGImageIO::New(); ImageWriterPointer->SetImageIO( pngio ); } else { std::cout << "Determining file output type automatically (should be PNG)"<< std::endl; } //Attach input image to the writer. ImageWriterPointer->SetInput( img ); //Determine file type and instantiate appropriate ImageIO class if not //explicitly stated with SetImageIO, then write to disk. try { ImageWriterPointer->Write(); std::cout <<" Image "<< outputFileName << " Written To Disk" << std::endl; } catch ( itk::ExceptionObject & ex ) { std::string message; message = "Problem found while writing image "; message += outputFileName; message += "\n"; message += ex.GetLocation(); message += "\n"; message += ex.GetDescription(); std::cerr << message << std::endl; } return 0; } --------------040601060808030202010207 Content-Type: text/plain; name="itkPNGImageIO.h.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkPNGImageIO.h.patch" --- itkPNGImageIO.h.old Tue Jun 18 14:04:42 2002 +++ itkPNGImageIO.h Tue Jun 18 14:05:20 2002 @@ -48,7 +48,7 @@ /** Determine the file type. Returns true if this ImageIO can read the * file specified. */ - virtual bool CanReadFile(const char*); + virtual bool CanReadFile(const char * FileNameToCheck); /** Set the spacing and diemention information for the set filename. */ virtual void ReadImageInformation(); @@ -68,7 +68,7 @@ /** Determine the file type. Returns true if this ImageIO can read the * file specified. */ - virtual bool CanWriteFile(const char*); + virtual bool CanWriteFile(const char* FileNameToCheck); /** Writes the spacing and dimentions of the image. * Assumes SetFileName has been called with a valid file name. */ --------------040601060808030202010207 Content-Type: text/plain; name="itkPNGImageIO.cxx.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkPNGImageIO.cxx.patch" --- itkPNGImageIO.cxx.old Tue Jun 18 14:04:48 2002 +++ itkPNGImageIO.cxx Tue Jun 18 14:06:49 2002 @@ -41,9 +41,10 @@ -bool PNGImageIO::CanReadFile(const char* file) -{ - PNGFileWrapper pngfp(file,"rb"); +bool PNGImageIO::CanReadFile(const char* FileNameToCheck) +{ + m_FileName=FileNameToCheck; + PNGFileWrapper pngfp(FileNameToCheck,"rb"); FILE* fp = pngfp.m_FilePointer; if(!fp) { @@ -367,8 +368,9 @@ return; } -bool PNGImageIO::CanWriteFile(const char*) +bool PNGImageIO::CanWriteFile(const char * FileNameToCheck) { + m_FileName=FileNameToCheck; if ( m_FileName != "" && m_FileName.find(".png") < m_FileName.length() ) { --------------040601060808030202010207 Content-Type: text/plain; name="itkImageIOFactory.h.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkImageIOFactory.h.patch" --- itkImageIOFactory.h.old Tue Jun 18 13:36:27 2002 +++ itkImageIOFactory.h Tue Jun 18 13:36:27 2002 @@ -43,7 +43,8 @@ typedef ::itk::ImageIOBase::Pointer ImageIOBasePointer; /** Create the appropriate ImageIO depending on the particulars of the file. */ - static ImageIOBasePointer CreateImageIO(const char* path); + static ImageIOBasePointer CreateImageIOReader(const char* path); + static ImageIOBasePointer CreateImageIOWriter(const char* path); protected: ImageIOFactory(); --------------040601060808030202010207 Content-Type: text/plain; name="itkImageIOFactory.cxx.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkImageIOFactory.cxx.patch" --- itkImageIOFactory.cxx.old Tue Jun 18 13:36:27 2002 +++ itkImageIOFactory.cxx Tue Jun 18 13:36:27 2002 @@ -19,11 +19,10 @@ namespace itk { - - + ImageIOBase::Pointer -ImageIOFactory::CreateImageIO(const char* path) +ImageIOFactory::CreateImageIOReader(const char* path) { std::list possibleImageIO; std::list allobjects = @@ -50,6 +49,38 @@ { return *k; } + } + return 0; +} + +ImageIOBase::Pointer +ImageIOFactory::CreateImageIOWriter(const char* path) +{ + std::list possibleImageIO; + std::list allobjects = + ObjectFactoryBase::CreateAllInstance("itkImageIOBase"); + for(std::list::iterator i = allobjects.begin(); + i != allobjects.end(); ++i) + { + ImageIOBase* io = dynamic_cast(i->GetPointer()); + if(io) + { + possibleImageIO.push_back(io); + } + else + { + std::cerr << "Error ImageIO factory did not return an ImageIOBase: " + << (*i)->GetNameOfClass() + << std::endl; + } + } + for(std::list::iterator k = possibleImageIO.begin(); + k != possibleImageIO.end(); ++k) + { + if((*k)->CanWriteFile(path)) + { + return *k; + } } return 0; } --------------040601060808030202010207 Content-Type: text/plain; name="itkImageFileWriter.txx.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkImageFileWriter.txx.patch" --- itkImageFileWriter.txx.old Tue Jun 18 13:36:27 2002 +++ itkImageFileWriter.txx Tue Jun 18 13:36:27 2002 @@ -101,7 +101,7 @@ if ( m_ImageIO == 0 ) //try creating via factory { - m_ImageIO = ImageIOFactory::CreateImageIO(m_FileName.c_str()); + m_ImageIO = ImageIOFactory::CreateImageIOWriter(m_FileName.c_str()); } if ( m_ImageIO == 0 ) --------------040601060808030202010207 Content-Type: text/plain; name="itkImageFileReader.txx.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="itkImageFileReader.txx.patch" --- itkImageFileReader.txx.old Tue Jun 18 13:36:27 2002 +++ itkImageFileReader.txx Tue Jun 18 13:36:27 2002 @@ -82,7 +82,7 @@ if ( m_ImageIO == 0 ) //try creating via factory { m_UserSpecified = false; - m_ImageIO = ImageIOFactory::CreateImageIO(m_FileName.c_str()); + m_ImageIO = ImageIOFactory::CreateImageIOReader(m_FileName.c_str()); } else { --------------040601060808030202010207-- From Y.Rouillard@exeter.ac.uk Tue Jun 18 20:58:11 2002 From: Y.Rouillard@exeter.ac.uk (Yann Rouillard) Date: Tue, 18 Jun 2002 20:58:11 +0100 Subject: [Insight-users] Capturing progress info while loading file References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> <3D09E8A4.368398E@mail-timc.imag.fr> <017801c216e5$c760b1c0$2a2cad90@janus> <3D0F7F7A.3040702@kitware.com> Message-ID: <004001c21702$8c9120d0$fe00a8c0@wallis> Hi Luis, Thank you for your detailed answer. I have tried to use an observer to update a progress bar while loading a meta-image file but it doesn't seem to work. I traced the execution and I have reached the MetaImageIO::Read method where it seems that no ProgressEvent are triggered. Are ProgressEvent only used for filter or am I wrong in some point ? Cheers; Yann > > Hi Yann, > > ITK uses the the Observer Design Pattern. > > Most ITK filters send "itk::Events", for example: > > itk::StartEvent > itk::EndEvent > itk::ProgressEvent > ... > > > ITK provide Observers that can be registered > on a filter in order to "listen" to these events. > > You may be interested on the "itk::ProgressEvent" > > Basically you create an Observer, and register it > with the filter for which you want to track the > progress. > > > myFilter->AddObserver( itk::ProgressEvent(), > HxButton->GetRedrawCommand()); > > NOTE that the first argument is a newly constructed > "ProgressEvent". Only the type of the event is used > here, in an approach similar the one used for Exceptions. > > > When the filter throws the particular event, the "Execute()" > method of the observer is invoked. Then you can do whatever > you want at this level. For example update a progress bar > in a GUI, or just print a value on the standard output. > > > There is a FLTK class that you can use right now. > It derives from the fltkSlider and has built in > an Observer. > > Insight/Auxiliary/FltkImageViewer/fltkProgressBar.cxx > > > You may see an example of this on the GaussianFilter example: > > Insight/Examples/GaussianFilter/liFilterConsole2D.cxx > > > progressSlider->Observe( myFilter.GetPointer() ); > > > > Please let us know if you encounter any problems > setting up Observers. > > > Thanks > > > Luis > > > ============================================================== > Yann Rouillard wrote: > > > Hi, > > > > I'd like to know how to set up a progress bar to monitor a loading file > > operation. > > > > Does anyone know how to do it with ITK ? > > > > Cheers, > > > > Yann Rouillard > > > > _______________________________________________ > > Insight-users mailing list > > Insight-users@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-users > > > > > > > > From luis.ibanez@kitware.com Tue Jun 18 22:22:39 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Tue, 18 Jun 2002 17:22:39 -0400 Subject: [Insight-users] Capturing progress info while loading file References: <5.0.2.1.0.20020613092419.0432e610@pop.nycap.rr.com> <3D09E8A4.368398E@mail-timc.imag.fr> <017801c216e5$c760b1c0$2a2cad90@janus> <3D0F7F7A.3040702@kitware.com> <004001c21702$8c9120d0$fe00a8c0@wallis> Message-ID: <3D0FA49F.80202@kitware.com> Hi Yann, You are right, the ImageIO was not invoking ProgressEvents. I just modified the MetaImageIO class in order to invoke ProgressEvents. It was originally reading the whole image in a single Read(char *buffer, imagesize) operation. Now this has been divided into 100 reads() and in between them, ProgressEvents are invoked. The GaussianFilter example (3D) has been modified in order to reflect these updates. If you CVS update now, you will be able to get the updated version of IO. Please let us know if you find further problems. Thanks for your feedback. Luis ========================================== Yann Rouillard wrote: > Hi Luis, > > Thank you for your detailed answer. I have tried to use an observer to > update a progress bar while loading a meta-image file but it doesn't seem to > work. I traced the execution and I have reached the MetaImageIO::Read method > where it seems that no ProgressEvent are triggered. > > Are ProgressEvent only used for filter or am I wrong in some point ? > > Cheers; > Yann > > > From luis.ibanez@kitware.com Tue Jun 18 22:26:34 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Tue, 18 Jun 2002 17:26:34 -0400 Subject: [Insight-users] IO factory creation problem for writing References: <3D0F8725.7020906@engineering.uiowa.edu> Message-ID: <3D0FA58A.7020705@kitware.com> Hi Hans, Thanks for your feedback, We are working on the integration of the changes (fixes) that you proposed. We will be back soon. Thanks Luis =================================================== Hans J. Johnson wrote: > Hello, > > PROBLEM #1 > ========== > There is a possible design problem with the way automatic > XXXImageIOFactory works for writing of images. If you want the > ImageFileWriter to determine the output image type automatically, the > current implementation may fail. > The problem is that when itk::ImageFileWriter tries to Write the image, > it fails to find a suitable derived class of ImageIOBase. The failure > occurs because the write function calls CreateImageIO, which then calls > CanReadFile to determine if it is an accepable derived ImageIOBase is > found. For this to work properly, the CreateImageIO function needs to > call CanWriteFile from the class derived from ImageIOBase when doing the > Write operation, and CanReadFile when doing the Read operation. > > CALLTREE: > itk::PNGImageIO::CanReadFile, > itk::ImageIOFactory::CreateImageIO, > itk::ImageFileWriter >::Write > > I have attached a simple test to demonstrate this. Notice that if you > first create an image that can be read, then you can use the automatic > mechanism to write the image. > > Example outputs from enclosed program: > > [hjohnson@robin FileWriteTest]$ FileWriteTest > Determining file output type automatically (should be PNG) > Problem found while writing image ./newtest.png > Unknown > itk::ERROR: ImageFileWriter(0x8107db0): No ImageIO set, or none could be > created. > > [hjohnson@robin FileWriteTest]$ FileWriteTest "BeExplicit" > Explicitly setting file output to PNG > File: ./newtest.png > Image ./newtest.png Written To Disk > > [hjohnson@robin FileWriteTest]$ FileWriteTest > Determining file output type automatically (should be PNG) > File: ./newtest.png > Image ./newtest.png Written To Disk > > [hjohnson@robin FileWriteTest]$ rm newtest.png > [hjohnson@robin FileWriteTest]$ FileWriteTest > Determining file output type automatically (should be PNG) > Problem found while writing image ./newtest.png > Unknown > itk::ERROR: ImageFileWriter(0x8107db0): No ImageIO set, or none could be > created. > > SOLUTION: > ========== > Replace function called CreateImageIO with function called CreateImageIO > Reader, then duplicate > that function into one called CreateImageIOWriter that is exactly the > same except that it uses CanWriteFile() call instead of CanReadFile() call. > > This change only affects the following four files (including all of the > examples): > ./Code/IO/itkImageIOFactory.h > ./Code/IO/itkImageIOFactory.cxx > ./Code/IO/itkImageFileReader.txx > ./Code/IO/itkImageFileWriter.txx > > patches to implement the described changes are attached to this document. > > > PROBLEM #2 > =========== > PNGImageIO::CanWriteFile(const char * filename) > add one line ---> m_FileName=filename; > SOLUTION > ========= > Apply patches attached to this e-mail. > > > PROBLEM #3 > =========== > MetaImageIO::Write() not finished > SOLUTION > ========= > Finish writing this. I can do this if it has not yet been done. > > Regards, > Hans J. Johnson > hans-johnson@uiowa.edu > > PS: Is there some other more efficient way to get changes committed to > the CVS repository? Is it possible to get CVS write access? > > PPS: I have written a file reader for Analyze v7.5 file format. It has > been tested for both reading and writing of images. If anybody else > needs this, just send me an e-mail. > > > > > ------------------------------------------------------------------------ > > PROJECT(FileWriteTest) > > # > # Find ITK > # > FIND_PATH( ITK_BINARY_DIR itkConfigure.h ) > > # Load in the values from ITK if found > IF ( ITK_BINARY_DIR ) > LOAD_CACHE(${ITK_BINARY_DIR}) > INCLUDE (${ITK_SOURCE_DIR}/itkCMakeOptions.cmake) > ENDIF (ITK_BINARY_DIR ) > > > INCLUDE_DIRECTORIES( > ${ITK_SOURCE_DIR}/Code/BasicFilters > ${ITK_SOURCE_DIR}/Code/Algorithms > ${CMAKE_INSTALL_PREFIX}/include > ) > > LINK_DIRECTORIES( > ${ITK_BINARY_DIR}/Code/Common > ${ITK_BINARY_DIR}/Code/IO > ${CMAKE_INSTALL_PREFIX}/lib > ) > > LINK_LIBRARIES ( > VXLNumerics > ITKCommon > ITKIO > ) > > > ADD_EXECUTABLE(FileWriteTest FileWriteTest ) > > > > ------------------------------------------------------------------------ > > /*========================================================================= > Program: FileWriteTest > Module: $RCSfile: FileWriteTest.cxx,v $ > Language: C++ > \author Hans J. Johnson > // This project is designed to test if you write out an image file > // based on the image extension alone. > =========================================================================*/ > > > #include "itkImage.h" > #include "itkImageFileWriter.h" > #include "itkImageIOFactory.h" > #include "itkPNGImageIOFactory.h" > #include "itkPNGImageIO.h" > > int main(int argc, char *argv[]) > { > //Allocate Images > enum { ImageDimension = itk::Image::ImageDimension }; > const itk::Image::SizeType size = {{100,100}}; > const itk::Image::IndexType index = {{0,0}}; > itk::Image::RegionType region; > region.SetSize( size ); > region.SetIndex( index ); > > itk::Image::Pointer img = itk::Image::New(); > img->SetLargestPossibleRegion( region ); > img->SetBufferedRegion( region ); > img->SetRequestedRegion( region ); > img->Allocate(); > > itk::PNGImageIOFactory::RegisterOneFactory(); > itk::ImageFileWriter< itk::Image >::Pointer ImageWriterPointer = itk::ImageFileWriter< itk::Image > ::New(); > > //Set the output filename > char outputFileName[] = "./newtest.png"; > ImageWriterPointer->SetFileName(outputFileName); > //Not Necessary if using file extensions to determine. ImageWriterPointer->SetImageIO( Analyzeio ); > //Make a png image writer > itk::PNGImageIO::Pointer pngio; > if(argc>1) > { > std::cout << "Explicitly setting file output to PNG"<< std::endl; > pngio= itk::PNGImageIO::New(); > ImageWriterPointer->SetImageIO( pngio ); > } > else > { > std::cout << "Determining file output type automatically (should be PNG)"<< std::endl; > } > > //Attach input image to the writer. > ImageWriterPointer->SetInput( img ); > //Determine file type and instantiate appropriate ImageIO class if not > //explicitly stated with SetImageIO, then write to disk. > try { > ImageWriterPointer->Write(); > std::cout <<" Image "<< outputFileName << " Written To Disk" << std::endl; > } > catch ( itk::ExceptionObject & ex ) > { > std::string message; > message = "Problem found while writing image "; > message += outputFileName; > message += "\n"; > message += ex.GetLocation(); > message += "\n"; > message += ex.GetDescription(); > std::cerr << message << std::endl; > } > return 0; > } > > > ------------------------------------------------------------------------ > > --- itkPNGImageIO.h.old Tue Jun 18 14:04:42 2002 > +++ itkPNGImageIO.h Tue Jun 18 14:05:20 2002 > @@ -48,7 +48,7 @@ > > /** Determine the file type. Returns true if this ImageIO can read the > * file specified. */ > - virtual bool CanReadFile(const char*); > + virtual bool CanReadFile(const char * FileNameToCheck); > > /** Set the spacing and diemention information for the set filename. */ > virtual void ReadImageInformation(); > @@ -68,7 +68,7 @@ > > /** Determine the file type. Returns true if this ImageIO can read the > * file specified. */ > - virtual bool CanWriteFile(const char*); > + virtual bool CanWriteFile(const char* FileNameToCheck); > > /** Writes the spacing and dimentions of the image. > * Assumes SetFileName has been called with a valid file name. */ > > > ------------------------------------------------------------------------ > > --- itkPNGImageIO.cxx.old Tue Jun 18 14:04:48 2002 > +++ itkPNGImageIO.cxx Tue Jun 18 14:06:49 2002 > @@ -41,9 +41,10 @@ > > > > -bool PNGImageIO::CanReadFile(const char* file) > -{ > - PNGFileWrapper pngfp(file,"rb"); > +bool PNGImageIO::CanReadFile(const char* FileNameToCheck) > +{ > + m_FileName=FileNameToCheck; > + PNGFileWrapper pngfp(FileNameToCheck,"rb"); > FILE* fp = pngfp.m_FilePointer; > if(!fp) > { > @@ -367,8 +368,9 @@ > return; > } > > -bool PNGImageIO::CanWriteFile(const char*) > +bool PNGImageIO::CanWriteFile(const char * FileNameToCheck) > { > + m_FileName=FileNameToCheck; > if ( m_FileName != "" && > m_FileName.find(".png") < m_FileName.length() ) > { > > > ------------------------------------------------------------------------ > > --- itkImageIOFactory.h.old Tue Jun 18 13:36:27 2002 > +++ itkImageIOFactory.h Tue Jun 18 13:36:27 2002 > @@ -43,7 +43,8 @@ > typedef ::itk::ImageIOBase::Pointer ImageIOBasePointer; > > /** Create the appropriate ImageIO depending on the particulars of the file. */ > - static ImageIOBasePointer CreateImageIO(const char* path); > + static ImageIOBasePointer CreateImageIOReader(const char* path); > + static ImageIOBasePointer CreateImageIOWriter(const char* path); > > protected: > ImageIOFactory(); > > > ------------------------------------------------------------------------ > > --- itkImageIOFactory.cxx.old Tue Jun 18 13:36:27 2002 > +++ itkImageIOFactory.cxx Tue Jun 18 13:36:27 2002 > @@ -19,11 +19,10 @@ > > namespace itk > { > - > > - > + > ImageIOBase::Pointer > -ImageIOFactory::CreateImageIO(const char* path) > +ImageIOFactory::CreateImageIOReader(const char* path) > { > std::list possibleImageIO; > std::list allobjects = > @@ -50,6 +49,38 @@ > { > return *k; > } > + } > + return 0; > +} > + > +ImageIOBase::Pointer > +ImageIOFactory::CreateImageIOWriter(const char* path) > +{ > + std::list possibleImageIO; > + std::list allobjects = > + ObjectFactoryBase::CreateAllInstance("itkImageIOBase"); > + for(std::list::iterator i = allobjects.begin(); > + i != allobjects.end(); ++i) > + { > + ImageIOBase* io = dynamic_cast(i->GetPointer()); > + if(io) > + { > + possibleImageIO.push_back(io); > + } > + else > + { > + std::cerr << "Error ImageIO factory did not return an ImageIOBase: " > + << (*i)->GetNameOfClass() > + << std::endl; > + } > + } > + for(std::list::iterator k = possibleImageIO.begin(); > + k != possibleImageIO.end(); ++k) > + { > + if((*k)->CanWriteFile(path)) > + { > + return *k; > + } > } > return 0; > } > > > ------------------------------------------------------------------------ > > --- itkImageFileWriter.txx.old Tue Jun 18 13:36:27 2002 > +++ itkImageFileWriter.txx Tue Jun 18 13:36:27 2002 > @@ -101,7 +101,7 @@ > > if ( m_ImageIO == 0 ) //try creating via factory > { > - m_ImageIO = ImageIOFactory::CreateImageIO(m_FileName.c_str()); > + m_ImageIO = ImageIOFactory::CreateImageIOWriter(m_FileName.c_str()); > } > > if ( m_ImageIO == 0 ) > > > ------------------------------------------------------------------------ > > --- itkImageFileReader.txx.old Tue Jun 18 13:36:27 2002 > +++ itkImageFileReader.txx Tue Jun 18 13:36:27 2002 > @@ -82,7 +82,7 @@ > if ( m_ImageIO == 0 ) //try creating via factory > { > m_UserSpecified = false; > - m_ImageIO = ImageIOFactory::CreateImageIO(m_FileName.c_str()); > + m_ImageIO = ImageIOFactory::CreateImageIOReader(m_FileName.c_str()); > } > else > { > > CMakeLists.txt > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > FileWriteTest.cxx > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkPNGImageIO.h.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkPNGImageIO.cxx.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkImageIOFactory.h.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkImageIOFactory.cxx.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkImageFileWriter.txx.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > > ------------------------------------------------------------------------ > itkImageFileReader.txx.patch > > Content-Type: > > text/plain > Content-Encoding: > > 7bit > > From galicjan@yahoo.com Wed Jun 19 13:36:52 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Wed, 19 Jun 2002 05:36:52 -0700 (PDT) Subject: [Insight-users] Notes from Boston meeting? (or where ITK is heading) Message-ID: <20020619123652.20608.qmail@web20910.mail.yahoo.com> I wonder if somebody who attended the recent Boston meeting would be so kind and post a summary. In particular, I am interested in priorities for ITK development. Where ITK is heading in near future? For instance are following considered or planed for near future: * Revise design and implementation of the ImageIO module (e.g. streaming)? * Support for non-parametric base classes for data representation objects? * Vascular segmentation and morphometry? * Wrapping for Java and Python? Thanks, Jarek __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From luis.ibanez@kitware.com Wed Jun 19 14:51:13 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Wed, 19 Jun 2002 09:51:13 -0400 Subject: [Insight-users] Notes from Boston meeting? (or where ITK is heading) References: <20020619123652.20608.qmail@web20910.mail.yahoo.com> Message-ID: <3D108C51.3080201@kitware.com> Hi Jarek, Here is a summary of the topics discussed at the Boston meeting. This reflect what the focus of developers may be for the rest of the year. (This is just from my notes so it is probably not an exhaustive list) You can also get access to all the material and presentations of the ITK meeting by checking out the "InsightDocuments" module from cvs. cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/Insight login password: insight cvs -d :pserver:anonymous@public.kitware.com:/cvsroot/Insight co InsightDocuments You will find the notes on the Boston meeting under: InsightDocuments/Developer/Administrative/Meetings/BostonJune2002 =============================== Summary of Boston Meeting: 1) A Survey with feedback from users was analyzed. Among the interesting findings: 1- more than 50% Windows users, followed by about 25% of Linux users 2- the more requested additions to the toolkit are: a- Documentation b- Examples 2) A list of missing algorithms was collected (it is available on the cvs repository) 3) Wrapping for Tcl is ready,(documentation and examples are required) next targeted scripting language is Python 4) A tutorial on ITK will be presented at IEEE Visualization 2002 plans for other tutorials at conferences are on the way. 5) A need for increasing the robustness of the toolkit and improving the uniformity of the code was identified. 6) A Book/Tutorial is needed to provide an organized and complete introduction to the toolkit. 7) Need to improve IO modules. DICOM to be available soon. (the possibility of human sacrifices was discussed on this topic :-) 8) Invitations for adding algorithms are open. The NLM provide funding for groups interested in adapting and adding their algorithms to ITK. Please keep in mind that this is an unofficial and necessarily incomplete summary of the meeting. Luis --------- Jarek Sacha wrote: > I wonder if somebody who attended the recent Boston meeting would be so > kind and post a summary. In particular, I am interested in priorities for > ITK development. Where ITK is heading in near future? For instance are > following considered or planed for near future: > * Revise design and implementation of the ImageIO module (e.g. streaming)? > > * Support for non-parametric base classes for data representation objects? > * Vascular segmentation and morphometry? > * Wrapping for Java and Python? > > Thanks, > > Jarek > > __________________________________________________ > Do You Yahoo!? > Yahoo! - Official partner of 2002 FIFA World Cup > http://fifaworldcup.yahoo.com > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > > From bill.hoffman@kitware.com Wed Jun 19 16:24:12 2002 From: bill.hoffman@kitware.com (Bill Hoffman) Date: Wed, 19 Jun 2002 11:24:12 -0400 Subject: [Insight-users] ITK on MAC OS X 10 In-Reply-To: Message-ID: <5.0.2.1.0.20020619112325.043ee2b8@pop.nycap.rr.com> Currently, due to bugs in the gcc that comes with Mac OSX it is not possible to compile ITK. The manual template instantiations do not work. -Bill At 10:31 AM 6/18/2002 -0600, Ricardo J. Ferrari wrote: >Hi all, > >If somebody has gotten ITK running on MAC OS X 10 could you please give me some hints about how to install it. I couldn't link the libraries. > >Thanks, > >Ricardo > >_______________________________________________ >Insight-users mailing list >Insight-users@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-users From Y.Rouillard@exeter.ac.uk Wed Jun 19 17:16:19 2002 From: Y.Rouillard@exeter.ac.uk (Yann Rouillard) Date: Wed, 19 Jun 2002 17:16:19 +0100 Subject: [Insight-users] Capturing progress info while loading file Message-ID: <002501c217ac$a57bc140$2a2cad90@janus> Hi Luis, I CVS updated to get your modification but it doesn't seem to work. In fact the problem is that I use ImageFileReader and not MetaImageIO directly. So my observer registered with ImageFileReader doesn't get ProgressEvent from MetaImageIO. I tried to use GetImageIO() to get the correct ImageIO instance but it seems to be correctly set only during Update() (too late). I look at ImageFileReader and saw that m_imageIO is set in the GenerateOutputInformation() method but if I try to call this method manually before GetImageIO() it raises an exception later when I try to read the file later (with Update ()). Is there a solution ? Cheers, Yann From luis.ibanez@kitware.com Wed Jun 19 19:55:39 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Wed, 19 Jun 2002 14:55:39 -0400 Subject: [Insight-users] Capturing progress info while loading file References: <002501c217ac$a57bc140$2a2cad90@janus> Message-ID: <3D10D3AB.4080503@kitware.com> Hi Yann, You are right, invoking the events from the ImageIO class is not enough since the visible object is the ImageFileReader or the ImageFileWriter. The solution seems to be to make the ImageFileReader and ImageFileWriter Observers of their own ImageIO objects. and make them re-throw the events comming from the ImageIO objects. I'll add this to the code and let you know when is ready. Luis ======================================== Yann Rouillard wrote: > Hi Luis, > > I CVS updated to get your modification but it doesn't seem to work. > In fact the problem is that I use ImageFileReader and not MetaImageIO > directly. > So my observer registered with ImageFileReader doesn't get ProgressEvent > from MetaImageIO. > I tried to use GetImageIO() to get the correct ImageIO instance but it seems > to be correctly set only during Update() (too late). > I look at ImageFileReader and saw that m_imageIO is set in the > GenerateOutputInformation() method but if I try to call this method manually > before GetImageIO() it raises an exception later when I try to read the file > later (with Update ()). > > Is there a solution ? > > Cheers, > Yann > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > > From luis.ibanez@kitware.com Fri Jun 21 14:34:56 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Fri, 21 Jun 2002 09:34:56 -0400 Subject: [Insight-users] Re: Confirmation on the output References: <000d01c2147f$2fb9e7f0$5033b801@macinfo.net> <3D0B6E60.9000203@kitware.com> <003501c217a3$35c1da00$5033b801@macinfo.net> Message-ID: <3D132B80.8020700@kitware.com> This is a multi-part message in MIME format. --------------090307080702020500030200 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Hi cspl, The output that you are getting form the Laplacian looks quite noisy. It seems that the current implementation of the Laplacian filter is expecting "float" type of images. The Laplacian filter that you are using is implemented by performing convolution with a kernel but without any previous smoothing. That means that it is sensitive to a particular scale of edges (basically of 1 pixel width). A more robust way of dealing with edges is to tune your detection to the scales of interest in your image. Could you help us doing the following experiment ? If you have a recent CVS checkout of ITK, build the Example : GaussianFilter2D. http://www.itk.org/HTML/GaussianFilter.htm I'm attaching the MetaImage header file to this email, that will help you read your raw image as a MetaImage. The GaussianFilter2D examples expects 2D MetaImages or PNG files. You will have to edit the input.mha file and at the end replace "input.raw" with the actual filename of your 2D input file. Make sure that you have both the .mha and the .raw files in the same directory. Load the image by clicking on the "Load" button, select a sigma (starting with low values, close to 1.0) and then Click on "Execute". Once all buttons are green, take a look at the outputs: "Modulus": the magnitude of the gradient "Smooth" : input convolved with a gaussian "Laplacian": input after a laplacian filter If you are interested in locating contours you may find more useful the output of the "Modulus" than the one from the Laplacian. take a look at the Laplacian and the gradient magnitued in the web page of the example: http://www.itk.org/HTML/GaussianFilter.htm The laplacian will give you zero-crossings on the contours, but not a good mechanism for detection. A more robust way of detecting contours is to combine the information of the modulus with the information from the Laplacian. Using a Sigma around 3.0 to 5.0. You can use the Modulus for "detection" of edges, and the Laplacian's zero-crossings for locating those contours with precision. Basically you will be looking for pixels whose Gradient Modulus is high and its Laplacian is in a Zero-Crossing. Please let us know if you find any problems Thanks Luis ====================================== cspl wrote: > Dear Mr.Luis, > > I got the Laplacian Filter o/p.But I am not sure it is exact o/p of > Laplacian filter.Because I have seen in some other tool it is giving > different o/p.Please make sure that is it correct o/p or not.I attached > herewith my LaplacianImageFilter o/p.I have written code as follows. > > int main(int argc,char** argv) > { > > const char * inputFileName = argv[1]; > const char * outputFileName = argv[4]; > > const unsigned int nx =atoi(argv[2]); > const unsigned int ny =atoi(argv[3]); > > typedef unsigned short PixelType; > const unsigned int Dimension = 2; > > > > typedef itk::Image< PixelType, Dimension > ImageType; > > > > // Read a Raw File > typedef itk::ImageFileReader< ImageType > FileSourceType; > typedef itk::RawImageIO RawReaderType; > > > FileSourceType::Pointer fileSource = FileSourceType::New(); > fileSource->SetFileName( inputFileName ); > RawReaderType::Pointer rawReader = RawReaderType::New(); > rawReader->SetDimensions( 0, nx ); > rawReader->SetDimensions( 1, ny ); > fileSource->SetImageIO( rawReader ); > fileSource->Update(); > ImageType::Pointer image = fileSource->GetOutput(); > > > ///Laplician Filter > itk::LaplacianImageFilter::Pointer > lapFilter = itk::LaplacianImageFilter::New(); > > lapFilter->SetInput(image); > lapFilter->Update(); > > > > ImageType::Pointer imageo = lapFilter->GetOutput(); > // Write a Raw File > typedef itk::ImageFileWriter< ImageType > FileSinkType; > typedef itk::RawImageIO RawWriterType; > > > FileSinkType::Pointer fileSink = FileSinkType::New(); > RawWriterType::Pointer rawWriter = RawWriterType::New(); > > fileSink->SetImageIO( rawWriter ); > fileSink->SetFileName( outputFileName ); > fileSink->SetInput(imageo); > fileSink->Write(); > > return 0; > > > } > > I am giving Raw file as i/p and getting as Raw file o/p.Actually Iwant edge > detection using Laplacian filter. > > Thanking you, > Regards, > Ramakrishna --------------090307080702020500030200 Content-Type: text/plain; name="input.mha" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="input.mha" NDims = 2 DimSize = 512 512 ElementType = MET_USHORT ElementSpacing = 1.0 1.0 ElementByteOrderMSB = False ElementDataFile = input.raw --------------090307080702020500030200-- From lorenzen@cs.unc.edu Fri Jun 21 15:53:49 2002 From: lorenzen@cs.unc.edu (Peter J. Lorenzen) Date: Fri, 21 Jun 2002 10:53:49 -0400 Subject: [Insight-users] Compiling ITK on MacOS X/Darwin Message-ID: <7305135.1024656829@[0.0.0.0]> Greetings All, I am trying to build ITK on a PowerBook G4 running MacOS X (v10.1). I have had success in building both the FLTK and VTK libraries. However, I has not been able to build ITK. Perhaps you could help me? Thanks, - Peter The compilation fails in Code/Numerics when the libtool tries to produce the libVXLNumerics.dylib from the collection of vnl and v3p object files. Here is a snippet from the compilation output: ... Building default_target in directory /sw/Insight_bin/Code/Numerics rm -f libVXLNumerics.dylib c++ -dynamiclib -g -O2 -o libVXLNumerics.dylib vnl/Templates/vcl_list+vnl_double_4-.o vnl/Templates/vcl_vector+double_3-.o vnl/Templates/vcl_vector+double_3x3-.o vnl/Templates/vcl_vector+float_2-.o vnl/Templates/vcl_vector+float_3 A number of lines later ... o v3p/netlib/zlassq.o v3p/netlib/zlatrs.o v3p/netlib/ztrevc.o v3p/netlib/zung2r.o v3p/netlib/zunghr.o v3p/netlib/zungqr.o -L/sw/Insight_bin/Utilities/zlib -L/sw/Insight_bin/Utilities/png -L/sw/Insight_bin/Code/Common -L/sw/Insight_bin/Code/IO -L/sw/Insight_bin/Code/Numerics/vxl -L/usr/local/lib/vtk -lpthread -framework OpenGL -framework AGL -framework Cocoa -lXt -lSM -lICE -L/usr/X11R6/lib -lX11 -lXext -lpthread -lm -lm ld: common symbols not allowed with MH_DYLIB output format ld: common symbols not allowed with MH_DYLIB output format ld: common symbols not allowed with MH_DYLIB output format vnl/Templates/vnl_matrix+double-.o definition of common __44vnl_inplace_transpose__H1Zd_PX01UiUiPcUi_i.0.b (size 8) vnl/Templates/vnl_matrix+double-.o definition of common __44vnl_inplace_transpose__H1Zd_PX01UiUiPcUi_i.1.c (size 8) (a few more of these follow) ... Host info: ---------- [localhost:/sw/Insight_bin] peter% uname -a Darwin localhost 5.5 Darwin Kernel Version 5.5: Thu May 30 14:51:26 PDT 2002; root:xnu/xnu-201.42.3.obj~1/RELEASE_PPC Power Macintosh powerpc Compiler used: -------------- [localhost:/sw/Insight_bin] peter% c++ -v Reading specs from /usr/libexec/gcc/darwin/ppc/2.95.2/specs Apple Computer, Inc. version gcc-937.2, based on gcc version 2.95.2 19991024 (release) CMakeCache.txt -------------- # This is the CMakeCache file. # For build in directory: /sw/Insight_bin # You can edit this file to change values found and used by cmake. # If you do not want to change any of the values, simply exit the editor. # If you do want to change a value, simply edit, save, and exit the editor. # The syntax for the file is as follows: # KEY:TYPE=VALUE # KEY is the name of a varible in the cache. # TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT TYPE!. # VALUE is the current value for the KEY. ######################## # EXTERNAL cache entries ######################## //Build the unsupported directory BUILD_AUXILIARY:BOOL=ON //Build the examples directory BUILD_EXAMPLES:BOOL=ON //Build the FEM Code BUILD_FEM_CODE:BOOL=ON //Build the FEM-Mesh example BUILD_FEM_MESH_EXAMPLE:BOOL=OFF //Build the FltkImageViewer Library BUILD_FLTKIMAGEVIEWER:BOOL=OFF //Build the MetaImage Library BUILD_METAIMAGE:BOOL=OFF //Build with shared libraries. BUILD_SHARED_LIBS:BOOL=ON //Build the testing tree. BUILD_TESTING:BOOL=ON //Single output directory for building all executables. EXECUTABLE_OUTPUT_PATH:PATH= //Where can the fluid file be found FLTK_FLUID_EXE:FILEPATH=/usr/local/bin/fluid //What is the path where the file FL/Fl.h can be found FLTK_INCLUDE_PATH:PATH=/usr/local/include //Where can the fltk library be found FLTK_LIBRARY:FILEPATH=/usr/local/lib/libfltk.a //Can we honour the FLTK_WRAP_UI command FLTK_WRAP_UI:BOOL=1 //Value Computed by CMake ITKPNG_BINARY_DIR:STATIC=/sw/Insight_bin/Utilities/png //Value Computed by CMake ITKPNG_SOURCE_DIR:STATIC=/sw/Insight/Utilities/png //Value Computed by CMake ITKZLIB_BINARY_DIR:STATIC=/sw/Insight_bin/Utilities/zlib //Value Computed by CMake ITKZLIB_SOURCE_DIR:STATIC=/sw/Insight/Utilities/zlib //Value Computed by CMake ITK_BINARY_DIR:STATIC=/sw/Insight_bin //What is the path where the file ITKData.readme can be found ITK_DATA_ROOT:PATH=/sw/Insight/Testing/Data //Value Computed by CMake ITK_SOURCE_DIR:STATIC=/sw/Insight //Use the system's version of the standard C++ library (STL and // streams). If 'OFF', ITK will build against a supplied version // of the standard library from SGI. On SGI systems, this should // be set to 'OFF'. ITK_USE_SYSTEM_STDLIB:BOOL=ON //Build Tcl wrapper support. ITK_WRAP_TCL:BOOL=OFF //Single output directory for building all libraries. LIBRARY_OUTPUT_PATH:PATH= //Use FLTK (The Fast Light Toolkit) for GUI (some examples need // this) USE_FLTK:BOOL=ON //Use an installed (versus built from source) version of VTK. Be // sure that VTK_INSTALL_PATH is correct. USE_INSTALLED_VTK:BOOL=1 //Use VTK (The Visualization Toolkit) (some examples need this) // USE_VTK:BOOL=ON //What is the path where the file UseVTK.cmake can be found VTK_BINARY_PATH:PATH=NOTFOUND //What is the path where the file include/vtk/UseVTK.cmake can // be found VTK_INSTALL_PATH:PATH=/usr/local //What is the path where the file avfCROP.1023c.raw can be found // VW_RAW_DATA_PATH:PATH=NOTFOUND ######################## # INTERNAL cache entries ######################## //Advanced flag for variable: BUILD_FEM_MESH_EXAMPLE BUILD_FEM_MESH_EXAMPLE-ADVANCED:INTERNAL=1 //Path to an executable BrainStripValidationApp:INTERNAL=/sw/Insight_bin/Examples/IBSRValidation/At lasSegmentation //What flags are required by the c++ compiler to make it ansi. CMAKE_ANSI_CFLAGS:INTERNAL= //Advanced flag for variable: CMAKE_ANSI_CFLAGS CMAKE_ANSI_CFLAGS-ADVANCED:INTERNAL=1 //What flags are required by the c++ compiler to make it ansi. CMAKE_ANSI_CXXFLAGS:INTERNAL= //Advanced flag for variable: CMAKE_ANSI_CXXFLAGS CMAKE_ANSI_CXXFLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_AR loaded from external file. To change this // value edit this file: /usr/local/include/vtk/CMakeCache.txt CMAKE_AR:INTERNAL=/usr/bin/ar //Advanced flag for variable: CMAKE_AR CMAKE_AR-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_AR_ARGS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_AR_ARGS:INTERNAL=cr //Advanced flag for variable: CMAKE_AR_ARGS CMAKE_AR_ARGS-ADVANCED:INTERNAL=1 //This is the directory where this CMakeCahe.txt was created CMAKE_CACHEFILE_DIR:INTERNAL=/sw/Insight_bin //Major version of cmake used to create the current loaded cache // CMAKE_CACHE_MAJOR_VERSION:INTERNAL=1 //Minor version of cmake used to create the current loaded cache // CMAKE_CACHE_MINOR_VERSION:INTERNAL=2 //Path to CMake executable. CMAKE_COMMAND:INTERNAL=/sw/bin/cmake //Is the compile GNU C++. CMAKE_COMPILER_IS_GNUCXX:INTERNAL=1 //Advanced flag for variable: CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUCXX-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_CXX_COMPILER loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_CXX_COMPILER:INTERNAL=c++ //Advanced flag for variable: CMAKE_CXX_COMPILER CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_CXX_FLAGS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_CXX_FLAGS:INTERNAL=-g -O2 //DO NOT EDIT, CMAKE_C_COMPILER loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_C_COMPILER:INTERNAL=gcc //Advanced flag for variable: CMAKE_C_COMPILER CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_C_FLAGS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_C_FLAGS:INTERNAL=-g -O2 //DO NOT EDIT, CMAKE_DL_LIBS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_DL_LIBS:INTERNAL= //Advanced flag for variable: CMAKE_DL_LIBS CMAKE_DL_LIBS-ADVANCED:INTERNAL=1 //Advanced flag for variable: CMAKE_EXECUTABLE_SUFFIX CMAKE_EXECUTABLE_SUFFIX-ADVANCED:INTERNAL=1 //Name of generator. CMAKE_GENERATOR:INTERNAL=Unix Makefiles //Is X11 around. CMAKE_HAS_X:INTERNAL=1 //DO NOT EDIT, CMAKE_HP_PTHREADS loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_HP_PTHREADS:INTERNAL=0 //Advanced flag for variable: CMAKE_HP_PTHREADS CMAKE_HP_PTHREADS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_INSTALL_PREFIX loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local //DO NOT EDIT, CMAKE_LIB_EXT loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_LIB_EXT:INTERNAL= //Advanced flag for variable: CMAKE_LIB_EXT CMAKE_LIB_EXT-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_MAKE_PROGRAM loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_MAKE_PROGRAM:INTERNAL=/usr/bin/make //Advanced flag for variable: CMAKE_MAKE_PROGRAM CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_MODULE_BUILD_FLAGS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_MODULE_BUILD_FLAGS:INTERNAL=-bundle -flat_namespace -undefined suppress //Advanced flag for variable: CMAKE_MODULE_BUILD_FLAGS CMAKE_MODULE_BUILD_FLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_MODULE_LINK_FLAGS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_MODULE_LINK_FLAGS:INTERNAL= //Advanced flag for variable: CMAKE_MODULE_LINK_FLAGS CMAKE_MODULE_LINK_FLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_MODULE_SUFFIX loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_MODULE_SUFFIX:INTERNAL=.so //Advanced flag for variable: CMAKE_MODULE_SUFFIX CMAKE_MODULE_SUFFIX-ADVANCED:INTERNAL=1 //Does the compiler support ansi for scoping. CMAKE_NO_ANSI_FOR_SCOPE:INTERNAL= //Advanced flag for variable: CMAKE_NO_ANSI_FOR_SCOPE CMAKE_NO_ANSI_FOR_SCOPE-ADVANCED:INTERNAL=1 //Does the compiler support headers like iostream. CMAKE_NO_ANSI_STREAM_HEADERS:INTERNAL= //Advanced flag for variable: CMAKE_NO_ANSI_STREAM_HEADERS CMAKE_NO_ANSI_STREAM_HEADERS-ADVANCED:INTERNAL=1 //Does the compiler not support explicit template instantiation. // CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION:INTERNAL=1 //Advanced flag for variable: CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION // CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION-ADVANCED:INTERNAL=1 //Does the compiler support std::. CMAKE_NO_STD_NAMESPACE:INTERNAL= //Advanced flag for variable: CMAKE_NO_STD_NAMESPACE CMAKE_NO_STD_NAMESPACE-ADVANCED:INTERNAL=1 //Advanced flag for variable: CMAKE_OBJECT_FILE_SUFFIX CMAKE_OBJECT_FILE_SUFFIX-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_RANLIB loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_RANLIB:INTERNAL=ranlib //Advanced flag for variable: CMAKE_RANLIB CMAKE_RANLIB-ADVANCED:INTERNAL=1 //Path to CMake installation. CMAKE_ROOT:INTERNAL=/sw/CMake-1.2 //DO NOT EDIT, CMAKE_SHLIB_BUILD_FLAGS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_BUILD_FLAGS:INTERNAL=-dynamiclib //Advanced flag for variable: CMAKE_SHLIB_BUILD_FLAGS CMAKE_SHLIB_BUILD_FLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_CFLAGS loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_CFLAGS:INTERNAL= //Advanced flag for variable: CMAKE_SHLIB_CFLAGS CMAKE_SHLIB_CFLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_LD_LIBS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_LD_LIBS:INTERNAL= //Advanced flag for variable: CMAKE_SHLIB_LD_LIBS CMAKE_SHLIB_LD_LIBS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_LINK_FLAGS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_LINK_FLAGS:INTERNAL= //Advanced flag for variable: CMAKE_SHLIB_LINK_FLAGS CMAKE_SHLIB_LINK_FLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_RUNTIME_FLAG loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_RUNTIME_FLAG:INTERNAL= //Advanced flag for variable: CMAKE_SHLIB_RUNTIME_FLAG CMAKE_SHLIB_RUNTIME_FLAG-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_RUNTIME_SEP loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_RUNTIME_SEP:INTERNAL=: //Advanced flag for variable: CMAKE_SHLIB_RUNTIME_SEP CMAKE_SHLIB_RUNTIME_SEP-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_SHLIB_SUFFIX loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SHLIB_SUFFIX:INTERNAL=.dylib //Advanced flag for variable: CMAKE_SHLIB_SUFFIX CMAKE_SHLIB_SUFFIX-ADVANCED:INTERNAL=1 //Size of char data type CMAKE_SIZEOF_CHAR:INTERNAL=1 //Size of double data type CMAKE_SIZEOF_DOUBLE:INTERNAL=8 //Size of float data type CMAKE_SIZEOF_FLOAT:INTERNAL=4 //Size of int data type CMAKE_SIZEOF_INT:INTERNAL=4 //Size of long data type CMAKE_SIZEOF_LONG:INTERNAL=4 //Size of short data type CMAKE_SIZEOF_SHORT:INTERNAL=2 //Size of void* data type CMAKE_SIZEOF_VOID_P:INTERNAL=4 //DO NOT EDIT, CMAKE_SKIP_RPATH loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_SKIP_RPATH:INTERNAL=NO //Advanced flag for variable: CMAKE_SKIP_RPATH CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 //Advanced flag for variable: CMAKE_STATICLIB_SUFFIX CMAKE_STATICLIB_SUFFIX-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_TEMPLATE_FLAGS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_TEMPLATE_FLAGS:INTERNAL= //Advanced flag for variable: CMAKE_TEMPLATE_FLAGS CMAKE_TEMPLATE_FLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_THREAD_LIBS loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_THREAD_LIBS:INTERNAL=-lpthread //Advanced flag for variable: CMAKE_THREAD_LIBS CMAKE_THREAD_LIBS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_USE_PTHREADS loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_USE_PTHREADS:INTERNAL=1 //Advanced flag for variable: CMAKE_USE_PTHREADS CMAKE_USE_PTHREADS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_USE_SPROC loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_USE_SPROC:INTERNAL=0 //Advanced flag for variable: CMAKE_USE_SPROC CMAKE_USE_SPROC-ADVANCED:INTERNAL=1 //Advanced flag for variable: CMAKE_USE_WIN32_THREADS CMAKE_USE_WIN32_THREADS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_WORDS_BIGENDIAN loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_WORDS_BIGENDIAN:INTERNAL=1 //Advanced flag for variable: CMAKE_WORDS_BIGENDIAN CMAKE_WORDS_BIGENDIAN-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_X_CFLAGS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_X_CFLAGS:INTERNAL= -I/usr/X11R6/include //Advanced flag for variable: CMAKE_X_CFLAGS CMAKE_X_CFLAGS-ADVANCED:INTERNAL=1 //DO NOT EDIT, CMAKE_X_LIBS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // CMAKE_X_LIBS:INTERNAL=' -lSM -lICE -L/usr/X11R6/lib -lX11 -lXext ' //Advanced flag for variable: CMAKE_X_LIBS CMAKE_X_LIBS-ADVANCED:INTERNAL=1 //DO NOT EDIT, DART_ROOT loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // DART_ROOT:INTERNAL=NOTFOUND //Path to a library FEM:INTERNAL=/sw/Insight_bin/Code/Numerics/FEM //Path to an executable FEMImageRegEx:INTERNAL=/sw/Insight_bin/Examples/FEM //Path to an executable FEMRead:INTERNAL=/sw/Insight_bin/Examples/FEM //Path to an executable FEMTruss:INTERNAL=/sw/Insight_bin/Examples/FEM //Whether a library is static, shared or module. FEM_LIBRARY_TYPE:INTERNAL=SHARED //Advanced flag for variable: FLTK_FLUID_EXE FLTK_FLUID_EXE-ADVANCED:INTERNAL=0 //Advanced flag for variable: FLTK_INCLUDE_PATH FLTK_INCLUDE_PATH-ADVANCED:INTERNAL=0 //Advanced flag for variable: FLTK_LIBRARY FLTK_LIBRARY-ADVANCED:INTERNAL=0 //Path to an executable FuzzyConnectedness:INTERNAL=/sw/Insight_bin/Examples/FuzzyConnectedness //Support for FEM HAS_FEM:INTERNAL=1 //FLTK library, headers and Fluid are available HAS_FLTK:INTERNAL=1 //no FLTK image support HAS_FLTKIMAGEVIEWER:INTERNAL=0 //no meta image support HAS_METAIMAGE:INTERNAL=0 //no vtkFlWindowInteractor image support HAS_VTK_FLTK_WINDOW_INTERACTOR:INTERNAL=0 //VTK Hybrid libraries are available HAS_VTK_HYBRID:INTERNAL=1 //Path to a library ITKBasicFilters:INTERNAL=/sw/Insight_bin/Code/BasicFilters //Whether a library is static, shared or module. ITKBasicFilters_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library ITKCommon:INTERNAL=/sw/Insight_bin/Code/Common //Whether a library is static, shared or module. ITKCommon_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library ITKIO:INTERNAL=/sw/Insight_bin/Code/IO //Whether a library is static, shared or module. ITKIO_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library ITKNumerics:INTERNAL=/sw/Insight_bin/Code/Numerics //Whether a library is static, shared or module. ITKNumerics_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library ITKSpatialObject:INTERNAL=/sw/Insight_bin/Code/SpatialObject //Whether a library is static, shared or module. ITKSpatialObject_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library ITKStatistics:INTERNAL=/sw/Insight_bin/Code/Numerics/Statistics //Whether a library is static, shared or module. ITKStatistics_LIBRARY_TYPE:INTERNAL=SHARED //Path to an executable MIValidationApp:INTERNAL=/sw/Insight_bin/Examples/MIValidation //Path to an executable MultiResMIRegistration:INTERNAL=/sw/Insight_bin/Examples/MultiResMIRegistra tion //DO NOT EDIT, OPENGL_INCLUDE_PATH loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // OPENGL_INCLUDE_PATH:INTERNAL=/usr/include //DO NOT EDIT, OPENGL_LIBRARY loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // OPENGL_LIBRARY:INTERNAL=-framework OpenGL -framework AGL -framework Cocoa //Path to an executable RawImageReadWrite:INTERNAL=/sw/Insight_bin/Examples/RawImageReadWrite //Path to an executable ShapeDetection:INTERNAL=/sw/Insight_bin/Examples/ShapeDetection //DO NOT EDIT, VTKJPEG_BINARY_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKJPEG_BINARY_DIR:INTERNAL=/sw/VTK/Utilities/jpeg //DO NOT EDIT, VTKJPEG_SOURCE_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKJPEG_SOURCE_DIR:INTERNAL=/sw/VTK/Utilities/jpeg //DO NOT EDIT, VTKPNG_BINARY_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKPNG_BINARY_DIR:INTERNAL=/sw/VTK/Utilities/png //DO NOT EDIT, VTKPNG_SOURCE_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKPNG_SOURCE_DIR:INTERNAL=/sw/VTK/Utilities/png //DO NOT EDIT, VTKZLIB_BINARY_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKZLIB_BINARY_DIR:INTERNAL=/sw/VTK/Utilities/zlib //DO NOT EDIT, VTKZLIB_SOURCE_DIR loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTKZLIB_SOURCE_DIR:INTERNAL=/sw/VTK/Utilities/zlib //DO NOT EDIT, VTK_BINARY_DIR loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_BINARY_DIR:INTERNAL=/sw/VTK //DO NOT EDIT, VTK_BUILD_SHARED_LIBS loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_BUILD_SHARED_LIBS:INTERNAL=ON //DO NOT EDIT, VTK_DATA_ROOT loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_DATA_ROOT:INTERNAL=NOTFOUND //DO NOT EDIT, VTK_DEBUG_LEAKS loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_DEBUG_LEAKS:INTERNAL=OFF //DO NOT EDIT, VTK_LIBRARY_PATH loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_LIBRARY_PATH:INTERNAL=/sw/VTK/bin //DO NOT EDIT, VTK_MANGLE_MESA loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_MANGLE_MESA:INTERNAL=OFF //DO NOT EDIT, VTK_OPENGL_HAS_OSMESA loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_OPENGL_HAS_OSMESA:INTERNAL=OFF //DO NOT EDIT, VTK_SOURCE_DIR loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_SOURCE_DIR:INTERNAL=/sw/VTK //DO NOT EDIT, VTK_USE_64BIT_IDS loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_64BIT_IDS:INTERNAL=OFF //DO NOT EDIT, VTK_USE_ANSI_STDLIB loaded from external file. // To change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_ANSI_STDLIB:INTERNAL=OFF //DO NOT EDIT, VTK_USE_HYBRID loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_HYBRID:INTERNAL=ON //DO NOT EDIT, VTK_USE_MPI loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_MPI:INTERNAL=OFF //DO NOT EDIT, VTK_USE_PARALLEL loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_PARALLEL:INTERNAL=ON //DO NOT EDIT, VTK_USE_PATENTED loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_PATENTED:INTERNAL=OFF //DO NOT EDIT, VTK_USE_QUARTZ loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_QUARTZ:INTERNAL=ON //DO NOT EDIT, VTK_USE_RENDERING loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_RENDERING:INTERNAL=ON //DO NOT EDIT, VTK_USE_VOLUMEPRO loaded from external file. To // change this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_VOLUMEPRO:INTERNAL=OFF //DO NOT EDIT, VTK_USE_X loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_USE_X:INTERNAL=OFF //DO NOT EDIT, VTK_WRAP_JAVA loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_WRAP_JAVA:INTERNAL=OFF //DO NOT EDIT, VTK_WRAP_PYTHON loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_WRAP_PYTHON:INTERNAL=OFF //DO NOT EDIT, VTK_WRAP_TCL loaded from external file. To change // this value edit this file: /usr/local/include/vtk/CMakeCache.txt // VTK_WRAP_TCL:INTERNAL=OFF //Path to a library VXLNumerics:INTERNAL=/sw/Insight_bin/Code/Numerics/vxl //Whether a library is static, shared or module. VXLNumerics_LIBRARY_TYPE:INTERNAL=SHARED //Path to an executable itk2DSimpleLevelSetsExample:INTERNAL=/sw/Insight_bin/Examples/SimpleLevelSe tsExample //Path to an executable itk3DSimpleLevelSetsExample:INTERNAL=/sw/Insight_bin/Examples/SimpleLevelSe tsExample //Path to an executable itkAlgorithmsHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/Algorithms //Path to an executable itkAlgorithmsTests:INTERNAL=/sw/Insight_bin/Testing/Code/Algorithms //Path to an executable itkAntiAliasBinaryImageFilterExample:INTERNAL=/sw/Insight_bin/Examples/Anti AliasBinaryImageFilter //Path to an executable itkBasicFiltersHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/BasicFilters //Path to an executable itkBasicFiltersTests:INTERNAL=/sw/Insight_bin/Testing/Code/BasicFilters //Path to an executable itkCommonHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/Common //Path to an executable itkCommonTests:INTERNAL=/sw/Insight_bin/Testing/Code/Common //Path to an executable itkEllipsoidInteriorExteriorSpatialFunctionExample:INTERNAL=/sw/Insight_bin /Examples/EllipsoidInteriorExteriorSpatialFunction //Path to an executable itkFEMTests:INTERNAL=/sw/Insight_bin/Testing/Code/Numerics/FEM //Path to an executable itkFloodFilledSpatialFunctionExample:INTERNAL=/sw/Insight_bin/Examples/Floo dFilledSpatialFunction //Path to an executable itkIOHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/IO //Path to an executable itkIOTests:INTERNAL=/sw/Insight_bin/Testing/Code/IO //Path to an executable itkNumericsHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/Numerics //Path to an executable itkNumericsTests:INTERNAL=/sw/Insight_bin/Testing/Code/Numerics //Path to an executable itkPrincipalAxesResampler:INTERNAL=/sw/Insight_bin/Examples/PrincipalAxes //Path to an executable itkSampleDataGenerator:INTERNAL=/sw/Insight_bin/Examples/AntiAliasBinaryIma geFilter //Path to an executable itkSpatialObjectHeaderTest:INTERNAL=/sw/Insight_bin/Testing/Code/SpatialObj ect //Path to an executable itkSpatialObjectTests:INTERNAL=/sw/Insight_bin/Testing/Code/SpatialObject //Path to an executable itkStatisticsTests:INTERNAL=/sw/Insight_bin/Testing/Code/Numerics/Statistics //Path to an executable itkSymmetricEllipsoidInteriorExteriorSpatialFunctionExample:INTERNAL=/sw/In sight_bin/Examples/SymmetricEllipsoidInteriorExteriorSpatialFunction //Path to an executable itkWSRawToPNG:INTERNAL=/sw/Insight_bin/Examples/WatershedSegmentation //Path to an executable itkWatershedSegmentationExample:INTERNAL=/sw/Insight_bin/Examples/Watershed Segmentation //Path to a library itkpng:INTERNAL=/sw/Insight_bin/Utilities/png //Whether a library is static, shared or module. itkpng_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library itkzlib:INTERNAL=/sw/Insight_bin/Utilities/zlib //Whether a library is static, shared or module. itkzlib_LIBRARY_TYPE:INTERNAL=SHARED //Path to a library param:INTERNAL=/sw/Insight_bin/Examples/StreamedWatershedSegmentation/Param eterFileParser //Whether a library is static, shared or module. param_LIBRARY_TYPE:INTERNAL=SHARED //Path to an executable vnlTests:INTERNAL=/sw/Insight_bin/Testing/Code/Numerics/vxl/vnl/tests From luis.ibanez@kitware.com Sun Jun 23 20:52:57 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sun, 23 Jun 2002 15:52:57 -0400 Subject: [Insight-users] Re: How to put Thinplatespline into the automatic registration framework? References: <3CFC52C3.2070809@kitware.com> <000801c21acd$58291360$1223bd89@ee.cuhk.edu.hk> Message-ID: <3D162719.3050004@kitware.com> Hi zhangzhijun Short answer = Yes, You can use ThinPlateSpline transforms with the registration framework -- Long answer: The ThinPlateSpline transform derives from the itkTransform. This is the only requirement for using it as part of the registration framework and/or the multi-resolution registration framework. This is valid also for all the ITK transforms in the family of the SplineKernelTransform: http://www.itk.org/Insight/Doxygen/html/classitk_1_1KernelTransform.html That is: - ThinPlateSplineKernelTransform - ThinPlateR2LogRSplineKernelTransform - ElasticBodySplineKernelTransform - ElasticBodyReciprocalSplineKernelTransform - VolumeSplineKernelTransform The Geometrical aspect of these transforms can be analyzed with the ThinPlateSplines example in the Insight/Examples directory. Where a set of landmarks is mapped from one space to another and results are compared between VTK transforms and ITK Transforms. This example also allows to benchmark the transform. The ITK registration framework allow you to combine any transform, with any Image metric and any Optimizer. However, some optimizers may be better adapted to the shape of the function resulting from the evaluation of the metric near the optimal position. You can even replace the Optimization method at run time if you wish to create a particular optimization strategy. Note that SplineKernelTransform will have a large number of parameters !! While an AffineTransform in 3D has 12 parameters, a SplineKernelTransform will have 3*N (where N is the number of landmarks used to define the transform). So, let's say that you have selected a set of 20 landmarks in the fixed image, and the corresponding 20 landmarks in the moving image. The dimension of the search space in this case will be 60. The registration will be done by optimizing the landmak positions on the moving image. The cost function of the optimization can be any of the Image metrics already defined in ITK, or you can define your own. Note also that as opossed to FEM or PDE deformable registration approaches here you will not be introducing any regularization strategy other than the natural smoothing done by the Splines. Powell's optimization method could be good for initial trials since you will be able to trace how the registration progress by optimizing each one of the landmark coordinates at a time. However it may not be the best optimization approach for the long run. Probably a ConjugateGradient will behave better since it will take into account the mutual interactions resuling from the cross-talk between the landmarks due to the Spline smooting. The Powell optimization method is not currently implemented in ITK. It shouldn't be hard to get it done since the Regular StepGradientDescent is already there. It is in some way equivalent to run the Regular Step Gradient descent but one dimension (one transform parameter) at a time. If you are motivated to implement it, we will be glad to give you a hand for doing so. Please let us know if you encounter any problems. Thanks Luis ========================================================= zhangzhijun wrote: > Dear Luis: > I see in the files in the document attached with the ITK package > there is a poster about the automatic registration. > I am wondering how to put the TPS into an automatic registration framework ? > Can I use it with the Powell's method and > steepest decent optimization method? > > regards, > zhang zhijun > > > From luis.ibanez@kitware.com Sun Jun 23 21:10:41 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sun, 23 Jun 2002 16:10:41 -0400 Subject: [Insight-users] Re: More on : How to put Thinplatespline into the automatic registration framework? References: <3CFC52C3.2070809@kitware.com> <000801c21acd$58291360$1223bd89@ee.cuhk.edu.hk> Message-ID: <3D162B41.1010605@kitware.com> Hi zhangzhijun You may also want to look at the recently added example: MutualInformationEuler2DRegistration (the name is missleading since it was originally intended to do only Rigid2D registration. It has however been extended to include other four types of transforms) After your email I added a class for illustrating how to use ThinPlateSplines in this framework. Note that this is only for illustrating how to configure the code ! it is not fully operational since it is missing the landmark initialization. (look at the MIThinPlateSplineRegistrator.h and .txx) You may probably want to play with the GUI in order to define landmarka by allowing the user to interactively click on the fixed and moving images. Please let us know if you have any further questions. Thanks Luis From luis.ibanez@kitware.com Mon Jun 24 04:35:06 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Sun, 23 Jun 2002 23:35:06 -0400 Subject: [Insight-users] Re: More on : How to put Thinplatespline into the automatic registration framework? References: <3CFC52C3.2070809@kitware.com> <000801c21acd$58291360$1223bd89@ee.cuhk.edu.hk> <3D162B41.1010605@kitware.com> <001801c21b22$9fb9ff00$1223bd89@ee.cuhk.edu.hk> Message-ID: <3D16936A.1010609@kitware.com> Hi zhangzhijun ITK is GUI independent You can use it with MFC, Qt, Gtk or wxWindows... Just use the Command/Observer mechanism for communicating with the GUI by passing itk::Events around. The reasons why the examples in itk use FLTK as GUI are: 1) FLTK is Multiplatform 2) FLTK is Open Source 3) FLTK is Compact (small) We could not use MFC examples in Unix, or Motif examples in Windows. Note that in ITK *ONLY* the Examples use FLTK. The rest of the tookit is GUI independent and visualization independent. We went through great pains to make it that way so anybody could use it with its favorite GUI and visualization library. If you would like to contribute any MFC Examples we will be glad to add them to the toolkit (with the corresponding CMake flags to build them only under Windows). Thanks Luis ==================================== zhangzhijun wrote: > Dear Luis: > Thank you very much. I want to know why itk use the fltk as gui > but not use MFC, I feel fltk gui is > complexed. > > regards, > zhang zhijun From galicjan@yahoo.com Mon Jun 24 16:03:41 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Mon, 24 Jun 2002 08:03:41 -0700 (PDT) Subject: [Insight-users] How to redirect debug output on Windows or cygwin? Message-ID: <20020624150341.15389.qmail@web20907.mail.yahoo.com> Is there a way to redirect debug output? In particular, when running on Windows using either VC++ or cygwin, the debug information is displayed in a separate window that disappears when program exits. I would like to be able to simply print debug information to standard output (that is the same way std::cout is printing). Is there a way to reconfigure debug to do this? Thanks, Jarek __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From luis.ibanez@kitware.com Mon Jun 24 16:34:03 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Mon, 24 Jun 2002 11:34:03 -0400 Subject: [Insight-users] How to redirect debug output on Windows or cygwin? References: <20020624150341.15389.qmail@web20907.mail.yahoo.com> Message-ID: <3D173BEB.9010704@kitware.com> Hi Jarek, You may want to try: itk::OutputWindow::SetInstance(itk::TextOutput::New().GetPointer()); before sending any output. This is used in the tests in: Insight/Testing/Code/Algorithms/ itkCurvatureFlowTest.cxx itkFastMarchingTest.cxx itkImageRegistrationMethodTest_13.cxx itkImageRegistrationMethodTest_14.cxx itkImageRegistrationMethodTest.cxx itkMultiResolutionImageRegistrationMethodTest_1.cxx itkMultiResolutionImageRegistrationMethodTest_2.cxx itkMultiResolutionImageRegistrationMethodTest.cxx itkRegionGrow2DTest.cxx Regards, Luis ============================================ Jarek Sacha wrote: > Is there a way to redirect debug output? > In particular, when running on Windows using either VC++ or cygwin, the > debug information is displayed in a separate window that disappears when > program exits. I would like to be able to simply print debug information > to standard output (that is the same way std::cout is printing). Is there > a way to reconfigure debug to do this? > > Thanks, > > Jarek > > __________________________________________________ > Do You Yahoo!? > Yahoo! - Official partner of 2002 FIFA World Cup > http://fifaworldcup.yahoo.com > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > > From galicjan@yahoo.com Mon Jun 24 17:07:26 2002 From: galicjan@yahoo.com (Jarek Sacha) Date: Mon, 24 Jun 2002 09:07:26 -0700 (PDT) Subject: [Insight-users] How to redirect debug output on Windows or cygwin? In-Reply-To: <3D173BEB.9010704@kitware.com> Message-ID: <20020624160726.17314.qmail@web20903.mail.yahoo.com> --- Luis Ibanez wrote: > > Hi Jarek, > > You may want to try: > > itk::OutputWindow::SetInstance(itk::TextOutput::New().GetPointer()); > > before sending any output. Thanks it works well now. By the way, it would be a good idea to move itkTextOutput.h from Text/Code/Algorithms to Code/Algorithms and|or add TextOutput to doxygen documentation. This will help those who look for it in the documentation. Jarek > > > This is used in the tests in: Insight/Testing/Code/Algorithms/ > > itkCurvatureFlowTest.cxx > itkFastMarchingTest.cxx > itkImageRegistrationMethodTest_13.cxx > itkImageRegistrationMethodTest_14.cxx > itkImageRegistrationMethodTest.cxx > itkMultiResolutionImageRegistrationMethodTest_1.cxx > itkMultiResolutionImageRegistrationMethodTest_2.cxx > itkMultiResolutionImageRegistrationMethodTest.cxx > itkRegionGrow2DTest.cxx > > > Regards, > > > Luis > > ============================================ > > Jarek Sacha wrote: > > > Is there a way to redirect debug output? > > In particular, when running on Windows using either VC++ or cygwin, > the > > debug information is displayed in a separate window that disappears > when > > program exits. I would like to be able to simply print debug > information > > to standard output (that is the same way std::cout is printing). Is > there > > a way to reconfigure debug to do this? > > > > Thanks, > > > > Jarek > > > > __________________________________________________ > > Do You Yahoo!? > > Yahoo! - Official partner of 2002 FIFA World Cup > > http://fifaworldcup.yahoo.com > > _______________________________________________ > > Insight-users mailing list > > Insight-users@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-users > > > > > > > __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From Sebastian Fiorentini Wed Jun 26 13:52:41 2002 From: Sebastian Fiorentini (Sebastian Fiorentini) Date: Wed, 26 Jun 2002 09:52:41 -0300 Subject: [Insight-users] FLTK Message-ID: <537428281.20020626095241@yahoo.com.ar> Hello.. Anyone tried FLTK 2.0 and VTK? (fltk widget that interfaces to VTK).. Any suggestions? Saludos...Sebas.. sebasfiorent@yahoo.com.ar From luis.ibanez@kitware.com Wed Jun 26 14:28:15 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Wed, 26 Jun 2002 09:28:15 -0400 Subject: [Insight-users] FLTK References: <537428281.20020626095241@yahoo.com.ar> Message-ID: <3D19C16F.4090103@kitware.com> Hi Sebastian, We have recently modified ITK and CMake to support both FLTK 1.1 and FLTK 1.0.11. The vtkFlRenderWindowInteractor in: Insight/Auxiliary/VtkFltk was also updated two days ago to the latest release (0.8) made by the author Charl Botha. I'm not aware of any FLTK 2.0 attempts but it shouldn't be too hard to set it up. If you want to give it a shoot a good place to start is the CMake file: FindFLTK.cmake in the directory CMake/Modules then the CMakeLists.txt file in the Insight root directory. Note that ITK itself is GUI independent. FLTK is used only on some of the examples with the aim of illustrating how to build full fledged applications with ITK. Please let us know if you need any help. Thanks Luis =========================================== Sebastian Fiorentini wrote: > Hello.. > > Anyone tried FLTK 2.0 and VTK? (fltk widget that interfaces to VTK).. > > Any suggestions? > > Saludos...Sebas.. > sebasfiorent@yahoo.com.ar > > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > > From luis.ibanez@kitware.com Wed Jun 26 14:39:45 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Wed, 26 Jun 2002 09:39:45 -0400 Subject: [Insight-users] Re: Confirmation on the output References: <000d01c2147f$2fb9e7f0$5033b801@macinfo.net> <3D0B6E60.9000203@kitware.com> <003501c217a3$35c1da00$5033b801@macinfo.net> <3D132B80.8020700@kitware.com> <003f01c21cd7$a319d240$5033b801@macinfo.net> Message-ID: <3D19C421.20905@kitware.com> Hi cspl, The errors that you got are related with files generated by FLTK. "fluid" is an interactive utility from FLTK that allow you to create GUI's and generate C++ for them. Downloading a binary version of fluid.exe is not enough. You will have to fully install FLTK. This is not too hard. Just download the sources from: http://www.fltk.org They will build without trouble in Windows and Unix. You can select either FLTK 1.1 or 1.0.11. Once you compile and install FLTK, you can run CMake and enable "USE_FLTK", Then Select "USE_FLTK_VERSION_1.0.11" or "USE_FLTK_VERSION_1.1" Then make sure that you provide CMake with the paths for - fluid.exe - the header files - the libraries Please let us know if you encounter any problems Thanks Luis ==================================================== cspl wrote: > Dear Mr.Luis, > I was experimenting the example you asked to me to work on.. > > I got problem while building GaussianFilter2D example. I am > writing herewith the steps I followed. Please,suggest me steps > to solve the problem > > 1.When I tried to compile the example it gave compiler error > 'unable to open fltkIma2DviewrGUI.h and lifilterconsole2DGUI.h'. > > 2.To make these files from fltkIma2DviewrGUI.FL and > lifilterconsole2DGUI.FL, I have downloaded FLUID.exe((updated: > Jun-23-2001). > > 3.Using the command 'fluid.exe -c filename.FL' i got required .h and .cxx > files from fltkIma2DviewrGUI.FL and lifilterconsole2DGUI.FL. > > 4.While building ITK.dsw for libs, encountered a problem, but > fltkimageviewer.lib was genereated but several linking errorshave occured. > > problem was while linking Imageregistration,Imageregistration2D examples .As > I have got the fltkimageviewer.lib ,I used it with out solving the linking > errors. > > Actually,I don't know how to solve it. > > 5.After this when I tried to build the Gaussianfilter2D example it is > giving linking error as given below. > > Linking... > GaussianFilter2D.obj : error LNK2001: unresolved external symbol "public: > __thiscall liFilterConsole2D::liFilterConsole2D(void)" > (??0liFilterConsole2D@@QAE@XZ) > Debug/fltkGaussian.exe : fatal error LNK1120: 1 unresolved externals > Error executing link.exe. > > fltkGaussian.exe - 2 error(s), 47 warning(s) > > Project Settings: > > Preprocessor definitions: > > WIN32,_DEBUG,_WINDOWS,WIN32_LEAN_AND_MEAN,VC_EXTRA_LEAN,WIN32_EXTRA_LEAN > > Project Options: > > /nologo /MDd /GX /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D > "WIN32_LEAN_AND_MEAN" /D "VC_EXTRA_LEAN" /D "WIN32_EXTRA_LEAN" > /Fp"shape_/shape.pch" /YX /Fo"shape_/" /Fd"shape_/" /FD /Zm200/Od /c > > object/library modules: > > opengl32.lib fltkd.lib wsock32.lib comctl32.lib kernel32.lib user32.lib > gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib > oleaut32.lib uuid.lib MetaImageIO.lib fltkimageviewer.lib Iview.lib > > Please suggest me the course of action. > > Regards, > cspl > > > > ----- Original Message ----- > From: "Luis Ibanez" > To: "cspl" ; > Sent: Friday, June 21, 2002 7:04 PM > Subject: Re: Confirmation on the output > > > From bahrahm@yahoo.com Wed Jun 26 19:49:35 2002 From: bahrahm@yahoo.com (Jisung Kim) Date: Wed, 26 Jun 2002 11:49:35 -0700 (PDT) Subject: [Insight-users] Re: Confirmation on the output In-Reply-To: <3D19C421.20905@kitware.com> Message-ID: <20020626184935.27588.qmail@web10102.mail.yahoo.com> Hi cspl, If you want to build every examples included in ITK and are using Windows, please check my step-by-step instruction for ITK installation on Windows < http://caddlab.rad.unc.edu/publications/Tutorials/Summer-02/itk_windows_installation.pdf > Unfortunately, if you want to use FLTK 1.1 with CMakeSetup, you need to download CMake source code and build it by yourself. However, to just build ITK examples, you don't need FLTK 1.1. FLTK 1.0.11 will do. Thanks. Jisung Kim. --- Luis Ibanez wrote: > > > Hi cspl, > > > The errors that you got are related with files > generated by FLTK. > > "fluid" is an interactive utility from FLTK that > allow you to > create GUI's and generate C++ for them. > > Downloading a binary version of fluid.exe is not > enough. > > You will have to fully install FLTK. > > This is not too hard. Just download the sources > from: > > http://www.fltk.org > > They will build without trouble in Windows and Unix. > > You can select either FLTK 1.1 or 1.0.11. > > Once you compile and install FLTK, you can run CMake > and > enable "USE_FLTK", Then Select > > "USE_FLTK_VERSION_1.0.11" or > "USE_FLTK_VERSION_1.1" > > Then make sure that you provide CMake with the paths > for > > - fluid.exe > - the header files > - the libraries > > Please let us know if you encounter any problems > > > Thanks > > > Luis > > ==================================================== > > cspl wrote: > > > Dear Mr.Luis, > > I was experimenting the example you asked to > me to work on.. > > > > I got problem while building > GaussianFilter2D example. I am > > writing herewith the steps I followed. > Please,suggest me steps > > to solve the problem > > > > 1.When I tried to compile the example it gave > compiler error > > 'unable to open fltkIma2DviewrGUI.h and > lifilterconsole2DGUI.h'. > > > > 2.To make these files from > fltkIma2DviewrGUI.FL and > > lifilterconsole2DGUI.FL, I have downloaded > FLUID.exe((updated: > > Jun-23-2001). > > > > 3.Using the command 'fluid.exe -c filename.FL' i > got required .h and .cxx > > files from fltkIma2DviewrGUI.FL and > lifilterconsole2DGUI.FL. > > > > 4.While building ITK.dsw for libs, encountered a > problem, but > > fltkimageviewer.lib was genereated but several > linking errorshave occured. > > > > problem was while linking > Imageregistration,Imageregistration2D examples .As > > I have got the fltkimageviewer.lib ,I used it with > out solving the linking > > errors. > > > > Actually,I don't know how to solve it. > > > > 5.After this when I tried to build the > Gaussianfilter2D example it is > > giving linking error as given below. > > > > Linking... > > GaussianFilter2D.obj : error LNK2001: unresolved > external symbol "public: > > __thiscall > liFilterConsole2D::liFilterConsole2D(void)" > > (??0liFilterConsole2D@@QAE@XZ) > > Debug/fltkGaussian.exe : fatal error LNK1120: 1 > unresolved externals > > Error executing link.exe. > > > > fltkGaussian.exe - 2 error(s), 47 warning(s) > > > > Project Settings: > > > > Preprocessor definitions: > > > > > WIN32,_DEBUG,_WINDOWS,WIN32_LEAN_AND_MEAN,VC_EXTRA_LEAN,WIN32_EXTRA_LEAN > > > > Project Options: > > > > /nologo /MDd /GX /I "." /I ".." /D "WIN32" /D > "_DEBUG" /D "_WINDOWS" /D > > "WIN32_LEAN_AND_MEAN" /D "VC_EXTRA_LEAN" /D > "WIN32_EXTRA_LEAN" > > /Fp"shape_/shape.pch" /YX /Fo"shape_/" > /Fd"shape_/" /FD /Zm200/Od /c > > > > object/library modules: > > > > opengl32.lib fltkd.lib wsock32.lib comctl32.lib > kernel32.lib user32.lib > > gdi32.lib winspool.lib comdlg32.lib advapi32.lib > shell32.lib ole32.lib > > oleaut32.lib uuid.lib MetaImageIO.lib > fltkimageviewer.lib Iview.lib > > > > Please suggest me the course of action. > > > > Regards, > > cspl > > > > > > > > ----- Original Message ----- > > From: "Luis Ibanez" > > To: "cspl" ; > > > Sent: Friday, June 21, 2002 7:04 PM > > Subject: Re: Confirmation on the output > > > > > > > > > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users ===== Jisung Kim bahrahm@yahoo.com 106 Mason Farm Rd. 129 Radiology Research Lab., CB# 7515 Univ. of North Carolina at Chapel Hill Chapel Hill, NC 27599-7515 __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From mmalat@imaging.robarts.ca Wed Jun 26 21:40:19 2002 From: mmalat@imaging.robarts.ca (Mathieu Malaterre) Date: Wed, 26 Jun 2002 16:40:19 -0400 Subject: [Insight-users] Re: Confirmation on the output References: <20020626184935.27588.qmail@web10102.mail.yahoo.com> Message-ID: <3D1A26B3.EB768C84@imaging.robarts.ca> This is a multi-part message in MIME format. --------------465D9AD2E100F8F22FA26186 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all, It would be nice if those kind of help would be accessible from a link page from itk.org website. What do you think ? Thanks Mathieu Jisung Kim wrote: > Hi cspl, > > If you want to build every examples included in ITK > and are using Windows, please check my step-by-step > instruction for ITK installation on Windows < > http://caddlab.rad.unc.edu/publications/Tutorials/Summer-02/itk_windows_installation.pdf > > > > Unfortunately, if you want to use FLTK 1.1 with > CMakeSetup, you need to download CMake source code and > build it by yourself. However, to just build ITK > examples, you don't need FLTK 1.1. FLTK 1.0.11 will > do. > > Thanks. > > Jisung Kim. > > --- Luis Ibanez wrote: > > > > > > Hi cspl, > > > > > > The errors that you got are related with files > > generated by FLTK. > > > > "fluid" is an interactive utility from FLTK that > > allow you to > > create GUI's and generate C++ for them. > > > > Downloading a binary version of fluid.exe is not > > enough. > > > > You will have to fully install FLTK. > > > > This is not too hard. Just download the sources > > from: > > > > http://www.fltk.org > > > > They will build without trouble in Windows and Unix. > > > > You can select either FLTK 1.1 or 1.0.11. > > > > Once you compile and install FLTK, you can run CMake > > and > > enable "USE_FLTK", Then Select > > > > "USE_FLTK_VERSION_1.0.11" or > > "USE_FLTK_VERSION_1.1" > > > > Then make sure that you provide CMake with the paths > > for > > > > - fluid.exe > > - the header files > > - the libraries > > > > Please let us know if you encounter any problems > > > > > > Thanks > > > > > > Luis > > > > ==================================================== > > > > cspl wrote: > > > > > Dear Mr.Luis, > > > I was experimenting the example you asked to > > me to work on.. > > > > > > I got problem while building > > GaussianFilter2D example. I am > > > writing herewith the steps I followed. > > Please,suggest me steps > > > to solve the problem > > > > > > 1.When I tried to compile the example it gave > > compiler error > > > 'unable to open fltkIma2DviewrGUI.h and > > lifilterconsole2DGUI.h'. > > > > > > 2.To make these files from > > fltkIma2DviewrGUI.FL and > > > lifilterconsole2DGUI.FL, I have downloaded > > FLUID.exe((updated: > > > Jun-23-2001). > > > > > > 3.Using the command 'fluid.exe -c filename.FL' i > > got required .h and .cxx > > > files from fltkIma2DviewrGUI.FL and > > lifilterconsole2DGUI.FL. > > > > > > 4.While building ITK.dsw for libs, encountered a > > problem, but > > > fltkimageviewer.lib was genereated but several > > linking errorshave occured. > > > > > > problem was while linking > > Imageregistration,Imageregistration2D examples .As > > > I have got the fltkimageviewer.lib ,I used it with > > out solving the linking > > > errors. > > > > > > Actually,I don't know how to solve it. > > > > > > 5.After this when I tried to build the > > Gaussianfilter2D example it is > > > giving linking error as given below. > > > > > > Linking... > > > GaussianFilter2D.obj : error LNK2001: unresolved > > external symbol "public: > > > __thiscall > > liFilterConsole2D::liFilterConsole2D(void)" > > > (??0liFilterConsole2D@@QAE@XZ) > > > Debug/fltkGaussian.exe : fatal error LNK1120: 1 > > unresolved externals > > > Error executing link.exe. > > > > > > fltkGaussian.exe - 2 error(s), 47 warning(s) > > > > > > Project Settings: > > > > > > Preprocessor definitions: > > > > > > > > > WIN32,_DEBUG,_WINDOWS,WIN32_LEAN_AND_MEAN,VC_EXTRA_LEAN,WIN32_EXTRA_LEAN > > > > > > Project Options: > > > > > > /nologo /MDd /GX /I "." /I ".." /D "WIN32" /D > > "_DEBUG" /D "_WINDOWS" /D > > > "WIN32_LEAN_AND_MEAN" /D "VC_EXTRA_LEAN" /D > > "WIN32_EXTRA_LEAN" > > > /Fp"shape_/shape.pch" /YX /Fo"shape_/" > > /Fd"shape_/" /FD /Zm200/Od /c > > > > > > object/library modules: > > > > > > opengl32.lib fltkd.lib wsock32.lib comctl32.lib > > kernel32.lib user32.lib > > > gdi32.lib winspool.lib comdlg32.lib advapi32.lib > > shell32.lib ole32.lib > > > oleaut32.lib uuid.lib MetaImageIO.lib > > fltkimageviewer.lib Iview.lib > > > > > > Please suggest me the course of action. > > > > > > Regards, > > > cspl > > > > > > > > > > > > ----- Original Message ----- > > > From: "Luis Ibanez" > > > To: "cspl" ; > > > > > Sent: Friday, June 21, 2002 7:04 PM > > > Subject: Re: Confirmation on the output > > > > > > > > > > > > > > > _______________________________________________ > > Insight-users mailing list > > Insight-users@public.kitware.com > > > http://public.kitware.com/mailman/listinfo/insight-users > > ===== > Jisung Kim > bahrahm@yahoo.com > 106 Mason Farm Rd. > 129 Radiology Research Lab., CB# 7515 > Univ. of North Carolina at Chapel Hill > Chapel Hill, NC 27599-7515 > > __________________________________________________ > Do You Yahoo!? > Yahoo! - Official partner of 2002 FIFA World Cup > http://fifaworldcup.yahoo.com > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users --------------465D9AD2E100F8F22FA26186 Content-Type: text/x-vcard; charset=us-ascii; name="mmalat.vcf" Content-Transfer-Encoding: 7bit Content-Description: Card for Mathieu Malaterre Content-Disposition: attachment; filename="mmalat.vcf" begin:vcard n:Malaterre;Mathieu tel;cell:519-697-5045 tel;work:519-685-8300 x34096 x-mozilla-html:FALSE url:http://www.irus.rri.ca/~mmalat org:The John P. Robarts Research Institute;Imaging Research Laboratories adr:;;100 Perth Drive;London;Ontario;N6A 5K8;CANADA version:2.1 email;internet:mmalat@irus.rri.ca title:Visiting Graduate Student x-mozilla-cpt:;0 fn:Malaterre, Mathieu end:vcard --------------465D9AD2E100F8F22FA26186-- From venkat@cs.utah.edu Sat Jun 29 23:32:20 2002 From: venkat@cs.utah.edu (Venkat Anand) Date: Sat, 29 Jun 2002 16:32:20 -0600 (MDT) Subject: [Insight-users] Compilation errors..in example StreamedWatershedSegmentation Message-ID: Hi, I am trying to compile the example in linux - Examples/StreamedWatershedSegmentation, and am encountering linker error: ld : cannot find -lparam --------------------------------- But both libparam.a and param.o are present.. Any pointers??? Venkat ****************************** Venkatanand Venkatachalapathy Graduate Student, SCI, Univ of Utah ph: (O) 801 587 9459B (H) 801 533 0387 http://www.sci.utah.edu/personnel/venkat.html ******************************