From ljding@grasp.cis.upenn.edu Mon Jul 1 15:40:03 2002 From: ljding@grasp.cis.upenn.edu (Lijun Ding) Date: Mon, 1 Jul 2002 10:40:03 -0400 (EDT) Subject: [Insight-developers] Examples/RawImageReaderViewer In-Reply-To: Message-ID: The reason is that in Code/IO/itkRawImageIO.txx, line 47 m_FileDimensionality = 2; > I run the example "RawImageReaderViewer" with a raw 3D byte image, and > only one slice (slice 0) is displayed. I save the image and check > the saved image: only slice 0 is correct, other slices are zeros. > Could someone figure out what's wrong? thanks. From will.schroeder@kitware.com Tue Jul 2 19:40:36 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Tue, 02 Jul 2002 14:40:36 -0400 Subject: [Insight-developers] 1021 registered downloads; no TCon on Friday Message-ID: <5.1.0.14.0.20020702143813.01f68820@pop.nycap.rr.com> --=====================_108381394==_.ALT Content-Type: text/plain; charset="iso-8859-1"; format=flowed Content-Transfer-Encoding: quoted-printable Hi Folks- The ITK download rate appears to be accelerating, we have broken 1000 and=20 are now up to 1021 registered downloads. Reminder, no TCon on Friday due to= =20 the holiday. Will Summary 1021 non-unique access(es) to the download page People requested: =B7 77.5% new releases announcements (=B7 mailto: 594) =B7 70.2% latest Itk news and events (=B7 mailto: 532) =B7 63.3% periodic surveys (=B7 mailto: 482) People stated: =B7 75.6% have used templated code or generic programming techniques. =B7 71.6% will use Itk for segmentation or registration of Visible=20 Human data. --=====================_108381394==_.ALT Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi Folks-

The ITK download rate appears to be accelerating, we have broken 1000 and are now up to 1021 registered downloads. Reminder, no TCon on Friday due to the holiday.

Will

Summary
1021 non-unique access(es) to the download page
People requested:
=B7       77.5% new releases announcements (=B7     mailto: 594)
=B7       70.2% latest Itk news and events (=B7     mailto: 532)
=B7       63.3% periodic surveys (=B7       mailto: 482)
People stated:
=B7       75.6% have used templated code or generic programming techniques.
=B7       71.6% will use Itk for segmentation or registration of Visible Human=20 data.
--=====================_108381394==_.ALT-- From yoo@fluorite.nlm.nih.gov Tue Jul 2 19:53:10 2002 From: yoo@fluorite.nlm.nih.gov (Terry S. Yoo) Date: Tue, 2 Jul 2002 14:53:10 -0400 (EDT) Subject: [Insight-developers] SPIE reminder Message-ID: <200207021853.OAA06272@fluorite.nlm.nih.gov> From: SPIE-Meetings@spie.org [mailto:rmi03abe@spie.org] Sent: Tuesday, June 25, 2002 7:14 PM Subject: Medical Imaging 2003 Abstracts Due 5 August 2002 Submit your abstract today to: MEDICAL IMAGING 2003 15-20 February 2003 San Diego, CA USA Don't miss this opportunity to share ideas with attendees at this internationally recognized forum for reporting cutting edge research and development in medical imaging. Submit your abstract online by 5 AUGUST: http://www.spie.org/info/mi Inviting papers on: --Visualization, Image-Guided Procedures, and Display --Physics of Medical Imaging --Physiology and Function: Methods, Systems, and Applications --Image Processing --PACS and Integrated Medical Information Systems: Design and Evaluation --Image Perception, Observer Performance, and Technology Assessment --Ultrasonic Imaging and Signal Processing We welcome your participation! ________________________________________________ This message was sent by: SPIE--The International Society for Optical Engineering http://spie.org spie@spie.org Tel: +1 360 676 3290 ___________________________________________ If you do not wish to receive e-mail announcements from SPIE, simply reply to this message, and in the body of the message, type: Cancel --------------------------------------------------------------------------- Terry S. Yoo, Ph.D. National Library of Medicine National Institutes of Health High Performance Computing and Communications yoo@nlm.nih.gov --------------------------------------------------------------------------- From aylward@unc.edu Wed Jul 3 20:11:40 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Wed, 03 Jul 2002 15:11:40 -0400 Subject: [Insight-developers] SGI's thread Message-ID: <3D234C6C.5070908@unc.edu> Hi, I am getting the following error on the SGI's for Insight/Examples/ITKFilterLib. Basically, my CMakeLists.txt file creates a .lib for a filter in itk and then creates an executable that links with that .lib. So, it demonstrates a quick way to call itk filters from existing packages (avs, matlab, etc). BUT, on the SGI's I am getting an underfined symbol in ITKCommon for the multithread class. The CMakeLists file really only includes the common ITK libs, then does the ADD_LIBRARY call and then the ADD_EXECUTABLE call. Works on other platforms... Details are below...I am open to suggestions...thanks, Stephen CC -n32 -LANG:std -woff 15 -woff 84 -woff 3439 -woff 1424 -woff 3201 -LANG:std -ptused -no_prelink ITKFilterLibTest.o -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/zlib -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/png -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/IO -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Numerics/vxl -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/stdlib -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/BasicFilters -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Algorithms -L/projects/quality/itkQuality/Continuous/Insight-irix64/Examples/ITKFilterLib -lpthread -lVXLNumerics -lITKCommon -lITKBasicFilters -lCio -lm -lExample_ITKFilterLib -lpthread -lVXLNumerics -lITKCommon -lITKBasicFilters -lCio -lm -lExample_ITKFilterLib -o Example_ITKFilterLibTest ld32: ERROR 33 : Unresolved text symbol "pthread_attr_setscope" -- 1st referenced by /projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common/libITKCommon.a(itkMultiThreader.o). Use linker option -v to see when and which objects, archives and dsos are loaded. -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From bahrahm@yahoo.com Wed Jul 3 21:02:47 2002 From: bahrahm@yahoo.com (Jisung Kim) Date: Wed, 3 Jul 2002 13:02:47 -0700 (PDT) Subject: [Insight-developers] SGI's thread In-Reply-To: <3D234C6C.5070908@unc.edu> Message-ID: <20020703200247.40371.qmail@web10102.mail.yahoo.com> Hi, Do I understand it correctly that if there is sproc on a system, ITK will use sproc instead of pthread? It looks like ITK_USE_SPROC value is determined by CMAKE's cache value, "CMAKE_USE_SPROC". The build command line just above the error message shows the linker tries to link pthread. Is the error caused by build environment on that SGI machine? Just curious. :) Jisung. --- "Stephen R. Aylward" wrote: > Hi, > > I am getting the following error on the SGI's for > Insight/Examples/ITKFilterLib. > > Basically, my CMakeLists.txt file creates a .lib for > a filter in itk and > then creates an executable that links with that > .lib. So, it > demonstrates a quick way to call itk filters from > existing packages > (avs, matlab, etc). > > BUT, on the SGI's I am getting an underfined symbol > in ITKCommon for > the multithread class. The CMakeLists file really > only includes the > common ITK libs, then does the ADD_LIBRARY call and > then the > ADD_EXECUTABLE call. Works on other platforms... > > Details are below...I am open to > suggestions...thanks, > Stephen > > CC -n32 -LANG:std -woff 15 -woff 84 -woff 3439 > -woff 1424 -woff 3201 > -LANG:std -ptused -no_prelink ITKFilterLibTest.o > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/zlib > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/png > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/IO > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Numerics/vxl > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/stdlib > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/BasicFilters > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Algorithms > > -L/projects/quality/itkQuality/Continuous/Insight-irix64/Examples/ITKFilterLib > > -lpthread -lVXLNumerics -lITKCommon > -lITKBasicFilters -lCio -lm > -lExample_ITKFilterLib -lpthread -lVXLNumerics > -lITKCommon > -lITKBasicFilters -lCio -lm -lExample_ITKFilterLib > -o > Example_ITKFilterLibTest > ld32: ERROR 33 : Unresolved text symbol > "pthread_attr_setscope" -- 1st > referenced by > /projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common/libITKCommon.a(itkMultiThreader.o). > Use linker option -v to see when and which objects, > archives and dsos > are loaded. > > > -- > =============================================== > Dr. Stephen R. Aylward > Assistant Professor of Radiology > Adjunct Assistant Professor of Computer Science > http://caddlab.rad.unc.edu > aylward@unc.edu > (919) 966-9695 > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers ===== 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!? Sign up for SBC Yahoo! Dial - First Month Free http://sbc.yahoo.com From luisedoibanez@yahoo.com Sun Jul 7 14:55:02 2002 From: luisedoibanez@yahoo.com (Luis Ibanez) Date: Sun, 7 Jul 2002 06:55:02 -0700 (PDT) Subject: [Insight-developers] 8MB PPT in Insight/Documentation Message-ID: <20020707135502.31533.qmail@web21508.mail.yahoo.com> Hi, There is a 8Mb PPT presentation in Insight/Documentation. It seems to be the UPenn presentation for the UNC february meeting. It was probably intended for: InsightDocuments/Developers/General/Meetings Could you please remove it from Insight and check it in InsightDocuments ? It takes a while to download it with a 56k modem :-) Thanks Luis __________________________________________________ Do You Yahoo!? Sign up for SBC Yahoo! Dial - First Month Free http://sbc.yahoo.com From wlorens1@nycap.rr.com Sun Jul 7 16:43:36 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Sun, 07 Jul 2002 11:43:36 -0400 Subject: [Insight-developers] 8MB PPT in Insight/Documentation In-Reply-To: <20020707135502.31533.qmail@web21508.mail.yahoo.com> Message-ID: <5.1.0.14.2.20020707114307.02672d90@pop.nycap.rr.com> Luis, I just moved it. Hope all is well... Bill At 06:55 AM 7/7/02 -0700, Luis Ibanez wrote: >Hi, > >There is a 8Mb PPT presentation in >Insight/Documentation. It seems to >be the UPenn presentation for the >UNC february meeting. > >It was probably intended for: >InsightDocuments/Developers/General/Meetings > >Could you please remove it from Insight >and check it in InsightDocuments ? > >It takes a while to download it with a 56k modem :-) > > >Thanks > > Luis > > > > >__________________________________________________ >Do You Yahoo!? >Sign up for SBC Yahoo! Dial - First Month Free >http://sbc.yahoo.com >_______________________________________________ >Insight-developers mailing list >Insight-developers@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-developers From wlorens1@nycap.rr.com Sun Jul 7 16:58:59 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Sun, 07 Jul 2002 11:58:59 -0400 Subject: [Insight-developers] SGI's thread In-Reply-To: <3D234C6C.5070908@unc.edu> Message-ID: <5.1.0.14.2.20020707115822.026721c0@pop.nycap.rr.com> Steven, It was a library ordering problem. I changed the CMakeLists.txt files. Bill At 03:11 PM 7/3/02 -0400, Stephen R. Aylward wrote: >Hi, > >I am getting the following error on the SGI's for Insight/Examples/ITKFilterLib. > >Basically, my CMakeLists.txt file creates a .lib for a filter in itk and then creates an executable that links with that .lib. So, it demonstrates a quick way to call itk filters from existing packages (avs, matlab, etc). > >BUT, on the SGI's I am getting an underfined symbol in ITKCommon for >the multithread class. The CMakeLists file really only includes the common ITK libs, then does the ADD_LIBRARY call and then the ADD_EXECUTABLE call. Works on other platforms... > >Details are below...I am open to suggestions...thanks, >Stephen > >CC -n32 -LANG:std -woff 15 -woff 84 -woff 3439 -woff 1424 -woff 3201 -LANG:std -ptused -no_prelink ITKFilterLibTest.o -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/zlib -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/png -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/IO -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Numerics/vxl -L/projects/quality/itkQuality/Continuous/Insight-irix64/Utilities/stdlib -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/BasicFilters -L/projects/quality/itkQuality/Continuous/Insight-irix64/Code/Algorithms -L/projects/quality/itkQuality/Continuous/Insight-irix64/Examples/ITKFilterLib -lpthread -lVXLNumerics -lITKCommon -lITKBasicFilters -lCio -lm -lExample_ITKFilterLib -lpthread -lVXLNumerics -lITKCommon -lITKBasicFilters -lCio -lm -lExample_ITKFilterLib -o Example_ITKFilterLibTest >ld32: ERROR 33 : Unresolved text symbol "pthread_attr_setscope" -- 1st referenced by /projects/quality/itkQuality/Continuous/Insight-irix64/Code/Common/libITKCommon.a(itkMultiThreader.o). >Use linker option -v to see when and which objects, archives and dsos are loaded. > > >-- >=============================================== >Dr. Stephen R. Aylward >Assistant Professor of Radiology >Adjunct Assistant Professor of Computer Science >http://caddlab.rad.unc.edu >aylward@unc.edu >(919) 966-9695 > >_______________________________________________ >Insight-developers mailing list >Insight-developers@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-developers From luis.ibanez@kitware.com Mon Jul 8 06:31:57 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Mon, 08 Jul 2002 01:31:57 -0400 Subject: [Insight-developers] Examples/RawImageReaderViewer References: Message-ID: <3D2923CD.1070001@kitware.com> Thanks Lijun, That's the reason ! In order to fix this, a line with : ->SetFileDimensionality( 3) was just added to both RawImageReader Examples: - Insight/Examples/RawImageReaderViewer - Insight/Examples/RawImageReadWrite It is reading the whole volume now, Thanks Luis ======================================== Lijun Ding wrote: >The reason is that in Code/IO/itkRawImageIO.txx, line 47 >m_FileDimensionality = 2; > >>I run the example "RawImageReaderViewer" with a raw 3D byte image, and >>only one slice (slice 0) is displayed. I save the image and check >>the saved image: only slice 0 is correct, other slices are zeros. >>Could someone figure out what's wrong? thanks. >> > >_______________________________________________ >Insight-developers mailing list >Insight-developers@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-developers > From lorensen@crd.ge.com Mon Jul 8 12:23:26 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Mon, 8 Jul 2002 07:23:26 -0400 Subject: [Insight-developers] CoefficientVector type in NeighboorhoodOperator and subclasses Message-ID: The dashboard is reporting warnings about casting in the subject classes. I looked at the code and it seems to me that CoefficientVector should be declared as a vector of doubles and not a vector of TPixel. If you agree, I'll check in the changes if all the tests pass, Bill From cates@sci.utah.edu Mon Jul 8 16:15:31 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Mon, 8 Jul 2002 09:15:31 -0600 (MDT) Subject: [Insight-developers] Re: CoefficientVector type in NeighboorhoodOperator and subclasses In-Reply-To: Message-ID: Hi Bill, Those changes sound fine to me. Simplifies things a bit. 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 Mon, 8 Jul 2002, Lorensen, William E (Research) wrote: > The dashboard is reporting warnings about casting in the subject classes. I looked at the code and it > seems to me that CoefficientVector should be declared as a vector of doubles and not a vector of > TPixel. > > If you agree, I'll check in the changes if all the tests pass, > > Bill > > From bwyman@insightful.com Mon Jul 8 18:07:30 2002 From: bwyman@insightful.com (Bradley Wyman) Date: Mon, 8 Jul 2002 10:07:30 -0700 Subject: [Insight-developers] Lydia's arrival Message-ID: <0AED0D29DB783641A47A3BD7C4FE1476013791@se2kexch02.insightful.com> For those who haven't heard... -----Original Message----- From: Lydia Ng=20 Sent: Friday, July 05, 2002 10:49 AM To: Jill Goldschneider; Jeannette Israelson; proj_iquantify@insightful.com; Bob Treder; Dawn Kinsey; Michelle Bula; Bill Constantine; Antje Hoering; Grace.Leung@whk.com.au; minimia@optusnet.com.au; pgale@netvigator.com; LAM_DAVID@LILLY.COM; dmattes@u.washington.edu; vidyav_us@yahoo.com; jgsteel@bigpond.net.au Subject: [Proj_IQuantify] arrival Dear Friends, We are pleased to announce to arrival of our new baby girl: Maya Ellen Outhred at 12:16pm 7/2/02 (7lb 11oz, 19" long) She is cute as a button when she is not squeaking, she looks like a mini-me! - I am feeling well, almost human today :-) Thank goodness for grandma & grandpa for taking pacing shifts and cooking me looks of great food. Cheers, Maya, Lydia & Geoff From cates@sci.utah.edu Thu Jul 11 17:01:37 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Thu, 11 Jul 2002 10:01:37 -0600 (MDT) Subject: [Insight-developers] Re: [Insight-users] Problems with Watershed class (fwd) Message-ID: Hi, I've had this same problem on Linux with gcc. Does anyone have any ideas as to why this might be happening? I have so far not been able to figure it out. It seems you cannot instantiate the WatershedImageFilter class more than once in an application without getting these multiple symbol errors when linking. 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 ---------- Forwarded message ---------- Date: Tue, 2 Jul 2002 17:21:06 +0200 From: Samuel Rodr=EDguez Bescos To: Nils Hanssen Cc: insight-users@public.kitware.com Subject: Re: [Insight-users] Problems with Watershed class Thanks Nils for your help. It runs OK now with warning instead errors. Thank again, Samuel ----- Original Message ----- From: Nils Hanssen To: 'Samuel Rodr=EDguez Bescos' ; insight-users@public.kitware.com Sent: Tuesday, July 02, 2002 3:16 PM Subject: RE: [Insight-users] Problems with Watershed class Hi Samuel, I have exactly the same double symbols when linking my project with the W= atershedImageFilter. It's not the clean way, but until the problem is discovered, you can turn= these errors into warnings by including the "/FORCE:MULTIPLE" in the linki= ng options of MSVC. Regards, Nils -----Original Message----- From: insight-users-admin@public.kitware.com [mailto:insight-users-admi= n@public.kitware.com]On Behalf Of Samuel Rodr=EDguez Bescos Sent: Tuesday, July 02, 2002 2:04 PM To: insight-users@public.kitware.com Subject: [Insight-users] Problems with Watershed class Hello everybody. I'm developing an example based in GaussianFilter example in order to s= egmentate a PNG Image with the watershed algorithm. In the Base class I hav= e defined a member of the WatershedImageFilter class and the estructure is = the same of the Gaussian Filter example's. I have a linking problem the error lines are this: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -------------------Configuration: Segmentation - Win32 Debug-----------= --------- Linking... liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall itk= ::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)" (?Ad= d@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segme= ntation.obj liSegmentationConsole.obj : error LNK2005: "public: void __thiscall itk= ::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayEquival= encyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: unsigned long __thi= scall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned int)= const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z) al= ready defined in Segmentatio n.obj liSegmentationConsole.obj : error LNK2005: "protected: virtual void __t= hiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(voi= d)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXXZ)= already defined in Segmenta tion.obj liSegmentationConsole.obj : error LNK2005: "protected: virtual void __t= hiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::basic_= ostream > &,class itk::Indent)const " (?= PrintSelf@OneWayEquivalencyT able@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@= @VIndent@3@@Z) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall itk= ::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Add@Equi= valencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: void __thiscall itk= ::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTable@wa= tershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: unsigned long __thi= scall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)const = " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already define= d in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "protected: virtual void __t= hiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void)" (?= UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already def= ined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "protected: virtual void __t= hiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_ostrea= m > &,class itk::Indent)const " (?PrintS= elf@EquivalencyTable@watersh ed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3@@= Z) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: virtual void __this= call itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object *= ,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProgressCo= mmand@itk@@UAEXPAVObject@2@A BVEventObject@2@@Z) already defined in Segmentation.obj liSegmentationConsole.obj : error LNK2005: "public: virtual void __this= call itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object c= onst *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProg= ressCommand@itk@@UAEXPBVObje ct@2@ABVEventObject@2@@Z) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: bool __thiscall= itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)" = (?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in S= egmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: void __thiscall= itk::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayEqu= ivalencyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned long _= _thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned = int)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z= ) already defined in Segment ation.obj liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual void= __thiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation= (void)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAE= XXZ) already defined in Segm entation.obj liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual void= __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::ba= sic_ostream > &,class itk::Indent)const = " (?PrintSelf@OneWayEquivale ncyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@= std@@VIndent@3@@Z) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: bool __thiscall= itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Add@= EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentation.= obj liSegmentationConsoleBase.obj : error LNK2005: "public: void __thiscall= itk::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTabl= e@watershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned long _= _thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)co= nst " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already de= fined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual void= __thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void)= " (?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already= defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual void= __thiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_os= tream > &,class itk::Indent)const " (?Pr= intSelf@EquivalencyTable@wat ershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent= @3@@Z) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void __= thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Obje= ct *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProgre= ssCommand@itk@@UAEXPAVObject @2@ABVEventObject@2@@Z) already defined in Segmentation.obj liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void __= thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Obje= ct const *,class itk::EventObject const &)" (?Execute@WatershedMiniPipeline= ProgressCommand@itk@@UAEXPBV Object@2@ABVEventObject@2@@Z) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: bool __thiscall = itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)" (= ?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Se= gmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: void __thiscall = itk::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayEqui= valencyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long __= thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned i= nt)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z)= already defined in Segmenta tion.obj liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual void = __thiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(= void)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEX= XZ) already defined in Segme ntation.obj liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual void = __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::bas= ic_ostream > &,class itk::Indent)const "= (?PrintSelf@OneWayEquivalen cyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@s= td@@VIndent@3@@Z) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: bool __thiscall = itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Add@E= quivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentation.o= bj liSegmentationConsoleGUI.obj : error LNK2005: "public: void __thiscall = itk::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTable= @watershed@itk@@QAEXXZ) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long __= thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)con= st " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already def= ined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual void = __thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void)"= (?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already = defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual void = __thiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_ost= ream > &,class itk::Indent)const " (?Pri= ntSelf@EquivalencyTable@wate rshed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@= 3@@Z) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void __t= hiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Objec= t *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProgres= sCommand@itk@@UAEXPAVObject@ 2@ABVEventObject@2@@Z) already defined in Segmentation.obj liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void __t= hiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Objec= t const *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineP= rogressCommand@itk@@UAEXPBVO bject@2@ABVEventObject@2@@Z) already defined in Segmentation.obj LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other= libs; use /NODEFAULTLIB:library Debug/Segmentation.exe : fatal error LNK1169: one or more multiply defi= ned symbols found Error executing link.exe. Segmentation.exe - 37 error(s), 1 warning(s) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEND=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D I'm using the Beta Release and MSVC 6.0. Could anybody Know what is hapening and help me? Thanks in advance. Samuel From cates@sci.utah.edu Thu Jul 11 17:10:27 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Thu, 11 Jul 2002 10:10:27 -0600 (MDT) Subject: [Insight-developers] Re: [Insight-users] Problems with Watershed class (fwd) In-Reply-To: Message-ID: Actually, I think I've just found the problem. I neglected to add two non-templated classes into the algorithms library. 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 Thu, 11 Jul 2002, Joshua Cates wrote: > Hi, > > I've had this same problem on Linux with gcc. Does anyone have any ideas > as to why this might be happening? I have so far not been able to figure > it out. It seems you cannot instantiate the WatershedImageFilter class > more than once in an application without getting these multiple symbol > errors when linking. > > 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 > > > ---------- Forwarded message ---------- > Date: Tue, 2 Jul 2002 17:21:06 +0200 > From: Samuel Rodr=EDguez Bescos > To: Nils Hanssen > Cc: insight-users@public.kitware.com > Subject: Re: [Insight-users] Problems with Watershed class > > Thanks Nils for your help. > > It runs OK now with warning instead errors. > > Thank again, > > Samuel > > > ----- Original Message ----- > From: Nils Hanssen > To: 'Samuel Rodr=EDguez Bescos' ; insight-users@public.kitware.com > Sent: Tuesday, July 02, 2002 3:16 PM > Subject: RE: [Insight-users] Problems with Watershed class > > > Hi Samuel, > > I have exactly the same double symbols when linking my project with the= WatershedImageFilter. > It's not the clean way, but until the problem is discovered, you can tu= rn these errors into warnings by including the "/FORCE:MULTIPLE" in the lin= king options of MSVC. > > Regards, > Nils > -----Original Message----- > From: insight-users-admin@public.kitware.com [mailto:insight-users-ad= min@public.kitware.com]On Behalf Of Samuel Rodr=EDguez Bescos > Sent: Tuesday, July 02, 2002 2:04 PM > To: insight-users@public.kitware.com > Subject: [Insight-users] Problems with Watershed class > > > Hello everybody. > > I'm developing an example based in GaussianFilter example in order to= segmentate a PNG Image with the watershed algorithm. In the Base class I h= ave defined a member of the WatershedImageFilter class and the estructure i= s the same of the Gaussian Filter example's. > > I have a linking problem the error lines are this: > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > -------------------Configuration: Segmentation - Win32 Debug---------= ----------- > Linking... > liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall i= tk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)" (?= Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Seg= mentation.obj > liSegmentationConsole.obj : error LNK2005: "public: void __thiscall i= tk::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayEquiv= alencyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "public: unsigned long __t= hiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned in= t)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z) = already defined in Segmentatio > n.obj > liSegmentationConsole.obj : error LNK2005: "protected: virtual void _= _thiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(v= oid)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXX= Z) already defined in Segmenta > tion.obj > liSegmentationConsole.obj : error LNK2005: "protected: virtual void _= _thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::basi= c_ostream > &,class itk::Indent)const " = (?PrintSelf@OneWayEquivalencyT > able@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@st= d@@VIndent@3@@Z) already defined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "public: bool __thiscall i= tk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Add@Eq= uivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentation.ob= j > liSegmentationConsole.obj : error LNK2005: "public: void __thiscall i= tk::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTable@= watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "public: unsigned long __t= hiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)cons= t " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already defi= ned in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "protected: virtual void _= _thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void)" = (?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) already d= efined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "protected: virtual void _= _thiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_ostr= eam > &,class itk::Indent)const " (?Prin= tSelf@EquivalencyTable@watersh > ed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3= @@Z) already defined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "public: virtual void __th= iscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object= *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProgress= Command@itk@@UAEXPAVObject@2@A > BVEventObject@2@@Z) already defined in Segmentation.obj > liSegmentationConsole.obj : error LNK2005: "public: virtual void __th= iscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object= const *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelinePr= ogressCommand@itk@@UAEXPBVObje > ct@2@ABVEventObject@2@@Z) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: bool __thisca= ll itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)= " (?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in= Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: void __thisca= ll itk::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayE= quivalencyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned long= __thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigne= d int)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI= @Z) already defined in Segment > ation.obj > liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual vo= id __thiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformati= on(void)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@M= AEXXZ) already defined in Segm > entation.obj > liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual vo= id __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::= basic_ostream > &,class itk::Indent)cons= t " (?PrintSelf@OneWayEquivale > ncyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@= @@std@@VIndent@3@@Z) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: bool __thisca= ll itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Ad= d@EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentatio= n.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: void __thisca= ll itk::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTa= ble@watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: unsigned long= __thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)= const " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already = defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual vo= id __thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(voi= d)" (?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) alrea= dy defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "protected: virtual vo= id __thiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_= ostream > &,class itk::Indent)const " (?= PrintSelf@EquivalencyTable@wat > ershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VInde= nt@3@@Z) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void = __thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Ob= ject *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProg= ressCommand@itk@@UAEXPAVObject > @2@ABVEventObject@2@@Z) already defined in Segmentation.obj > liSegmentationConsoleBase.obj : error LNK2005: "public: virtual void = __thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Ob= ject const *,class itk::EventObject const &)" (?Execute@WatershedMiniPipeli= neProgressCommand@itk@@UAEXPBV > Object@2@ABVEventObject@2@@Z) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: bool __thiscal= l itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned long)"= (?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in = Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: void __thiscal= l itk::watershed::OneWayEquivalencyTable::Flatten(void)" (?Flatten@OneWayEq= uivalencyTable@watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long = __thiscall itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned= int)const " (?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@= Z) already defined in Segmenta > tion.obj > liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual voi= d __thiscall itk::watershed::OneWayEquivalencyTable::UpdateOutputInformatio= n(void)" (?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MA= EXXZ) already defined in Segme > ntation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual voi= d __thiscall itk::watershed::OneWayEquivalencyTable::PrintSelf(class std::b= asic_ostream > &,class itk::Indent)const= " (?PrintSelf@OneWayEquivalen > cyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@= @std@@VIndent@3@@Z) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: bool __thiscal= l itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (?Add= @EquivalencyTable@watershed@itk@@QAE_NKK@Z) already defined in Segmentation= =2Eobj > liSegmentationConsoleGUI.obj : error LNK2005: "public: void __thiscal= l itk::watershed::EquivalencyTable::Flatten(void)" (?Flatten@EquivalencyTab= le@watershed@itk@@QAEXXZ) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: unsigned long = __thiscall itk::watershed::EquivalencyTable::RecursiveLookup(unsigned int)c= onst " (?RecursiveLookup@EquivalencyTable@watershed@itk@@QBEKI@Z) already d= efined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual voi= d __thiscall itk::watershed::EquivalencyTable::UpdateOutputInformation(void= )" (?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ) alread= y defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "protected: virtual voi= d __thiscall itk::watershed::EquivalencyTable::PrintSelf(class std::basic_o= stream > &,class itk::Indent)const " (?P= rintSelf@EquivalencyTable@wate > rshed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VInden= t@3@@Z) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void _= _thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Obj= ect *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelineProgr= essCommand@itk@@UAEXPAVObject@ > 2@ABVEventObject@2@@Z) already defined in Segmentation.obj > liSegmentationConsoleGUI.obj : error LNK2005: "public: virtual void _= _thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Obj= ect const *,class itk::EventObject const &)" (?Execute@WatershedMiniPipelin= eProgressCommand@itk@@UAEXPBVO > bject@2@ABVEventObject@2@@Z) already defined in Segmentation.obj > LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of oth= er libs; use /NODEFAULTLIB:library > Debug/Segmentation.exe : fatal error LNK1169: one or more multiply de= fined symbols found > Error executing link.exe. > > Segmentation.exe - 37 error(s), 1 warning(s) > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEND=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > I'm using the Beta Release and MSVC 6.0. > > Could anybody Know what is hapening and help me? > > Thanks in advance. > > Samuel > > > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > From wmcst6+@pitt.edu Fri Jul 12 18:00:37 2002 From: wmcst6+@pitt.edu (Wilson Chang) Date: Fri, 12 Jul 2002 13:00:37 -0400 Subject: [Insight-developers] extra iteration in FloodFilledSpatialFunctionConditionalIterator Message-ID: <00bc01c229c5$a4e98a20$baa58e88@vialab.org> This is a multi-part message in MIME format. ------=_NextPart_000_00B9_01C229A4.1DCC0340 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable hi I think we have found a "feature" of the = FloodFilledSpatialFunctionConditionalIterator. If you recall, it = iterates within some spatial function via a flood fill, beginning at = some seed point that is fed to the iterator. Well, what seems to happen = to that seed point is that it is visited twice. Here is an example code = snipped (from itkFloodFillIteratorTest.cxx) for filling a sphere with = radius 2 centered at (10,10,10) with a seed point of (9,10,10) --------------------------------------------------- typedef itk::SphereSpatialFunction TFunctionType; typedef TFunctionType::InputType TFunctionPositionType; // Create and initialize a new sphere function TFunctionType::Pointer spatialFunc =3D TFunctionType::New(); spatialFunc->SetRadius( 2 ); TFunctionPositionType center; center[0]=3D10; center[1]=3D10; center[2]=3D10; spatialFunc->SetCenter(center); std::cout << "Sphere spatial function created" << std::endl; //---------Create and initialize a spatial function = iterator----------- TImageType::IndexType seedPos; const TImageType::IndexValueType pos[] =3D {9,10,10}; seedPos.SetIndex(pos); typedef itk::FloodFilledSpatialFunctionConditionalIterator TItType; TItType sfi =3D TItType(sourceImage, spatialFunc, seedPos); // Iterate through the entire image and set interior pixels to 255 for( ; !( sfi.IsAtEnd() );++sfi) { std::cout << sfi.GetIndex() << ": " << sfi.Get() << std::endl; sfi.Set(255); } ------------------------------------------------- and the output listing the pixel indices (and their values) as they are = visited by the iterator: [9, 10, 10]: 0 [9, 10, 10]: 255 [8, 10, 10]: 0 [8, 9, 10]: 0 [9, 9, 10]: 0 [10, 9, 10]: 0 [11, 10, 10]: 0 [10, 11, 10]: 0 [9, 11, 10]: 0 [9, 11, 9]: 0 [10, 11, 9]: 0 [10, 10, 9]: 0 [9, 10, 9]: 0 [8, 10, 9]: 0 [8, 9, 9]: 0 [9, 9, 9]: 0 [10, 9, 9]: 0 [11, 10, 9]: 0 [11, 9, 10]: 0 [11, 9, 9]: 0 [10, 8, 10]: 0 [9, 8, 10]: 0 [9, 8, 9]: 0 [10, 8, 9]: 0 [10, 9, 8]: 0 [9, 10, 8]: 0 [10, 10, 8]: 0 [9, 9, 8]: 0 [10, 10, 10]: 0 [10, 10, 11]: 0 [9, 10, 11]: 0 [9, 9, 11]: 0 [10, 9, 11]: 0 As you might notice, the first index [9,10,10] is repeated. This is the = seed point. Currently, to get around this bug, we increment the = iterator before it is used the first time. Of course, this hack is not = a fix. Has anybody else noticed this bug? =20 wilson ------=_NextPart_000_00B9_01C229A4.1DCC0340 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
hi
     I think we = have found a=20 "feature" of the FloodFilledSpatialFunctionConditionalIterator.  If = you=20 recall, it iterates within some spatial function via a flood fill, = beginning at=20 some seed point that is fed to the iterator.  Well, what seems to = happen to=20 that seed point is that it is visited twice.  Here is an example = code=20 snipped (from itkFloodFillIteratorTest.cxx) for filling a sphere = with=20 radius 2 centered at (10,10,10) with a seed point of = (9,10,10)
 
---------------------------------------------------
=
  typedef=20 itk::SphereSpatialFunction<dim> TFunctionType;
  typedef=20 TFunctionType::InputType TFunctionPositionType;
 
  // Create and initialize a new = sphere=20 function
 
  TFunctionType::Pointer = spatialFunc =3D=20 TFunctionType::New();
  spatialFunc->SetRadius( 2 = );
 
  TFunctionPositionType = center;
 =20 center[0]=3D10;
  center[1]=3D10;
  = center[2]=3D10;
 =20 spatialFunc->SetCenter(center);
 
  std::cout << "Sphere = spatial function=20 created" << std::endl;
 
  //---------Create and initialize = a spatial=20 function iterator-----------
  TImageType::IndexType = seedPos;
 =20 const TImageType::IndexValueType pos[] =3D {9,10,10};
 =20 seedPos.SetIndex(pos);
 
  typedef=20 itk::FloodFilledSpatialFunctionConditionalIterator
    = <TImageType, TFunctionType> TItType;
  TItType sfi =3D=20 TItType(sourceImage, spatialFunc, seedPos);
 
  // Iterate through the entire = image and set=20 interior pixels to 255
  for( ; !( sfi.IsAtEnd()=20 );++sfi)
    {
    std::cout = <<=20 sfi.GetIndex() << ": " << sfi.Get() <<=20 std::endl;
    sfi.Set(255);
   =20 }
 
-------------------------------------------------
 
and the output listing the pixel = indices (and their=20 values) as they are visited by the iterator:
 
[9, 10, 10]: 0
[9, 10, 10]: = 255
[8, 10, 10]:=20 0
[8, 9, 10]: 0
[9, 9, 10]: 0
[10, 9, 10]: 0
[11, 10, 10]: = 0
[10,=20 11, 10]: 0
[9, 11, 10]: 0
[9, 11, 9]: 0
[10, 11, 9]: 0
[10, = 10, 9]:=20 0
[9, 10, 9]: 0
[8, 10, 9]: 0
[8, 9, 9]: 0
[9, 9, 9]: = 0
[10, 9,=20 9]: 0
[11, 10, 9]: 0
[11, 9, 10]: 0
[11, 9, 9]: 0
[10, 8, = 10]:=20 0
[9, 8, 10]: 0
[9, 8, 9]: 0
[10, 8, 9]: 0
[10, 9, 8]: = 0
[9, 10,=20 8]: 0
[10, 10, 8]: 0
[9, 9, 8]: 0
[10, 10, 10]: 0
[10, 10, = 11]:=20 0
[9, 10, 11]: 0
[9, 9, 11]: 0
[10, 9, 11]: 0
 
 
As you might notice, the first index = [9,10,10] is=20 repeated.  This is the seed point.  Currently, to get around = this bug,=20 we increment the iterator before it is used the first time.  Of = course,=20 this hack is not a fix.
 
Has anybody else noticed this = bug? =20
 
wilson
 
------=_NextPart_000_00B9_01C229A4.1DCC0340-- From millerjv@crd.ge.com Fri Jul 12 18:39:30 2002 From: millerjv@crd.ge.com (Miller, James V (Research)) Date: Fri, 12 Jul 2002 13:39:30 -0400 Subject: [Insight-developers] extra iteration in FloodFilledSpatialFun ctionConditionalIterator Message-ID: This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C229CB.07EECA93 Content-Type: text/plain; charset="iso-8859-1" yep. noticed it the first time we used it. -----Original Message----- From: Wilson Chang [mailto:wmcst6+@pitt.edu] Sent: Friday, July 12, 2002 1:01 PM To: Insight Developers Subject: [Insight-developers] extra iteration in FloodFilledSpatialFunctionConditionalIterator hi I think we have found a "feature" of the FloodFilledSpatialFunctionConditionalIterator. If you recall, it iterates within some spatial function via a flood fill, beginning at some seed point that is fed to the iterator. Well, what seems to happen to that seed point is that it is visited twice. Here is an example code snipped (from itkFloodFillIteratorTest.cxx) for filling a sphere with radius 2 centered at (10,10,10) with a seed point of (9,10,10) --------------------------------------------------- typedef itk::SphereSpatialFunction TFunctionType; typedef TFunctionType::InputType TFunctionPositionType; // Create and initialize a new sphere function TFunctionType::Pointer spatialFunc = TFunctionType::New(); spatialFunc->SetRadius( 2 ); TFunctionPositionType center; center[0]=10; center[1]=10; center[2]=10; spatialFunc->SetCenter(center); std::cout << "Sphere spatial function created" << std::endl; //---------Create and initialize a spatial function iterator----------- TImageType::IndexType seedPos; const TImageType::IndexValueType pos[] = {9,10,10}; seedPos.SetIndex(pos); typedef itk::FloodFilledSpatialFunctionConditionalIterator TItType; TItType sfi = TItType(sourceImage, spatialFunc, seedPos); // Iterate through the entire image and set interior pixels to 255 for( ; !( sfi.IsAtEnd() );++sfi) { std::cout << sfi.GetIndex() << ": " << sfi.Get() << std::endl; sfi.Set(255); } ------------------------------------------------- and the output listing the pixel indices (and their values) as they are visited by the iterator: [9, 10, 10]: 0 [9, 10, 10]: 255 [8, 10, 10]: 0 [8, 9, 10]: 0 [9, 9, 10]: 0 [10, 9, 10]: 0 [11, 10, 10]: 0 [10, 11, 10]: 0 [9, 11, 10]: 0 [9, 11, 9]: 0 [10, 11, 9]: 0 [10, 10, 9]: 0 [9, 10, 9]: 0 [8, 10, 9]: 0 [8, 9, 9]: 0 [9, 9, 9]: 0 [10, 9, 9]: 0 [11, 10, 9]: 0 [11, 9, 10]: 0 [11, 9, 9]: 0 [10, 8, 10]: 0 [9, 8, 10]: 0 [9, 8, 9]: 0 [10, 8, 9]: 0 [10, 9, 8]: 0 [9, 10, 8]: 0 [10, 10, 8]: 0 [9, 9, 8]: 0 [10, 10, 10]: 0 [10, 10, 11]: 0 [9, 10, 11]: 0 [9, 9, 11]: 0 [10, 9, 11]: 0 As you might notice, the first index [9,10,10] is repeated. This is the seed point. Currently, to get around this bug, we increment the iterator before it is used the first time. Of course, this hack is not a fix. Has anybody else noticed this bug? wilson ------_=_NextPart_001_01C229CB.07EECA93 Content-Type: text/html; charset="iso-8859-1"
yep. 
 
noticed it the first time we used it.
 
-----Original Message-----
From: Wilson Chang [mailto:wmcst6+@pitt.edu]
Sent: Friday, July 12, 2002 1:01 PM
To: Insight Developers
Subject: [Insight-developers] extra iteration in FloodFilledSpatialFunctionConditionalIterator

hi
     I think we have found a "feature" of the FloodFilledSpatialFunctionConditionalIterator.  If you recall, it iterates within some spatial function via a flood fill, beginning at some seed point that is fed to the iterator.  Well, what seems to happen to that seed point is that it is visited twice.  Here is an example code snipped (from itkFloodFillIteratorTest.cxx) for filling a sphere with radius 2 centered at (10,10,10) with a seed point of (9,10,10)
 
---------------------------------------------------
  typedef itk::SphereSpatialFunction<dim> TFunctionType;
  typedef TFunctionType::InputType TFunctionPositionType;
 
  // Create and initialize a new sphere function
 
  TFunctionType::Pointer spatialFunc = TFunctionType::New();
  spatialFunc->SetRadius( 2 );
 
  TFunctionPositionType center;
  center[0]=10;
  center[1]=10;
  center[2]=10;
  spatialFunc->SetCenter(center);
 
  std::cout << "Sphere spatial function created" << std::endl;
 
  //---------Create and initialize a spatial function iterator-----------
  TImageType::IndexType seedPos;
  const TImageType::IndexValueType pos[] = {9,10,10};
  seedPos.SetIndex(pos);
 
  typedef itk::FloodFilledSpatialFunctionConditionalIterator
    <TImageType, TFunctionType> TItType;
  TItType sfi = TItType(sourceImage, spatialFunc, seedPos);
 
  // Iterate through the entire image and set interior pixels to 255
  for( ; !( sfi.IsAtEnd() );++sfi)
    {
    std::cout << sfi.GetIndex() << ": " << sfi.Get() << std::endl;
    sfi.Set(255);
    }
 
-------------------------------------------------
 
and the output listing the pixel indices (and their values) as they are visited by the iterator:
 
[9, 10, 10]: 0
[9, 10, 10]: 255
[8, 10, 10]: 0
[8, 9, 10]: 0
[9, 9, 10]: 0
[10, 9, 10]: 0
[11, 10, 10]: 0
[10, 11, 10]: 0
[9, 11, 10]: 0
[9, 11, 9]: 0
[10, 11, 9]: 0
[10, 10, 9]: 0
[9, 10, 9]: 0
[8, 10, 9]: 0
[8, 9, 9]: 0
[9, 9, 9]: 0
[10, 9, 9]: 0
[11, 10, 9]: 0
[11, 9, 10]: 0
[11, 9, 9]: 0
[10, 8, 10]: 0
[9, 8, 10]: 0
[9, 8, 9]: 0
[10, 8, 9]: 0
[10, 9, 8]: 0
[9, 10, 8]: 0
[10, 10, 8]: 0
[9, 9, 8]: 0
[10, 10, 10]: 0
[10, 10, 11]: 0
[9, 10, 11]: 0
[9, 9, 11]: 0
[10, 9, 11]: 0
 
 
As you might notice, the first index [9,10,10] is repeated.  This is the seed point.  Currently, to get around this bug, we increment the iterator before it is used the first time.  Of course, this hack is not a fix.
 
Has anybody else noticed this bug? 
 
wilson
 
------_=_NextPart_001_01C229CB.07EECA93-- From brad.king@kitware.com Fri Jul 12 18:52:06 2002 From: brad.king@kitware.com (Brad King) Date: Fri, 12 Jul 2002 13:52:06 -0400 (EDT) Subject: [Insight-developers] Renaming CVS ",v" files Message-ID: Hello, all: Recently we had a problem on the 0.7 Beta branch build that was caused without anyone checking in any code on the branch. I found that the problem was caused by someone having renamed a file directly on the CVS server side database. This approach cannot work because it bypasses CVS's mechanisms for maintaining branch number information. It is possible to rename the ",v" file on the server safely, but one must be very careful. We have to copy the file to the new name, and then "cvs remove" the file with the old name. To be very strict, one should also check out a copy of the NEW file on each branch containing the old file, and cvs remove it from that branch. If anyone needs a file re-named in the repository, but wants to keep the revision history, please email the list with the request. Thanks, -Brad From jjomier@cs.unc.edu Sun Jul 14 20:47:10 2002 From: jjomier@cs.unc.edu (Julien Jomier) Date: Sun, 14 Jul 2002 15:47:10 -0400 Subject: [Insight-developers] Dicom Reader References: Message-ID: <004c01c22b6f$3e77ad70$69691398@Picasso> Hello all, We've just checked in a Dicom reader class. Files are in Code/IO and a correponding test is in Testing/Code/IO. This is only a 2D reader and if there are more than one image in the file the first one is loaded. Let us know if you have any problems with it. Thanks Thibaut and Julien From cacst11+@pitt.edu Mon Jul 15 18:27:12 2002 From: cacst11+@pitt.edu (C. Aaron Cois) Date: Mon, 15 Jul 2002 13:27:12 -0400 Subject: [Insight-developers] duplicating an image Message-ID: <002801c22c24$db155b90$b9a58e88@vialab.org> This is a multi-part message in MIME format. ------=_NextPart_000_0025_01C22C03.53F0A8C0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Greetings. I am looking to duplicate an itkCoreAtomImage, making two = separate copies of it. Since it seems to be standard protocol to = overload the =3D operator as a private member, i can't just create a new = image object and set it equal to the old one (though im not sure i could = dereference the smart pointer to the original image anyway). I looked = for something like a DuplicateImageFilter, but couldn't find anything of = that sort. Is there an easy way to do this? = Aaron ------=_NextPart_000_0025_01C22C03.53F0A8C0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Greetings.  I am looking to = duplicate an=20 itkCoreAtomImage, making two separate copies of it.  Since it seems = to be=20 standard protocol to overload the =3D operator as a private member, i = can't just=20 create a new image object and set it equal to the old one (though im not = sure i=20 could dereference the smart pointer to the original image anyway).  = I=20 looked for something like a DuplicateImageFilter, but couldn't find = anything of=20 that sort.  Is there an easy way to do this?
 
          &nbs= p;            = ;            =             &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;            =             &= nbsp;           &n= bsp;      Aaron=20
------=_NextPart_000_0025_01C22C03.53F0A8C0-- From aylward@unc.edu Tue Jul 16 04:35:18 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Mon, 15 Jul 2002 23:35:18 -0400 Subject: [Insight-developers] [Fwd: ITK Registration and general remarks] Message-ID: <3D339476.2080800@unc.edu> Hi, Luis' poster at ISBI was a huge success. There were more people crouded around the ITK poster than any other. The session was suppose to last 2 hours, but people stayed for 3.5 hours. The good news is that most people had heard of ITK, had at one point tried to download itk, and are very very very supportive of the effort. It was a very easy sell... Also, I've been working with a few other groups on itk. Just wanted to forward a list of suggestions from one of those groups. Basically, this is just one of several emails from different people asking for the Insight Book! -------- Original Message -------- Subject: ITK Registration and general remarks Date: Mon, 08 Jul 2002 10:17:10 +0200 I would like you to point me to some documents in the documentation that give an overview over the highlights of algorithms that are or will be in ITK if there is any such document. I started looking at http://www.itk.org/Doxygen/html/modules.html but became somewhat overwhelmed by the vast number of things on offer. ...snip... For each module we would like to know, 1: What are parameters the user must / should / can / should never change 2: For those in the first three categories: what are reasonable values and admissible / sensible ranges for those parameters ? 3: Is there a simple way to specify reasonable default values derived e.g. from basic data properties like image dimensions, data type and actual range (or maybe a simple histogram) 4: Are those parameters to be changed on a linear or rather on a logarithmic scale ? 5: What is the scaling behavior of the parameters, i.e. which modification (if any) of the parameter is required to obtain similar results when using the algorithm on an upsampled or downsampled resp. rescaled or shifted version of the data. 6: Does the algorithm need some sort of normalized data (e.g. zero background, specific range ...) 7: Maybe some formula explaining the parameters role within the algorithm exactly In a perfect ITK the algorithms would be able to tell part or this (1, 2, 4 ?) themselves when the user calls some standard function of a base class, but building this into ITK is probably too much work. Giving links to the original literature in the detailed description of the doxygen documentation is a very good thing in this direction but following those links by physically going to a library ( to possibly learn that required journal is not available) only to find out about the parameters of one algorithm might become very cumbersome / time consuming if you think about using various ITK algorithms. It would be of great help to potential users if at least some of the information required above was readily available. ... But especially with some of the more complex algorithms in ITK that have quite a number of parameters and choices of sub algorithms (like interpolation and transformation in the registration which in turn have further parameters) having no clue on the parameter chooses turns those well designed powerful algorithms into unusable code for the user. I hope I don't sound too critical asking all these questions, but I fear a major obstacle to the deserved success of ITK might be its complexity and lack of a simple user interface to get started. I assume few potential users will master C++ on the level used in ITK, most will require a much more basic interface. -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From aylward@unc.edu Wed Jul 17 18:20:22 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Wed, 17 Jul 2002 13:20:22 -0400 Subject: [Insight-developers] Handout Message-ID: <3D35A756.6030808@unc.edu> Hi, A possible handout/color-glossy for ITK is in InsightDocuments/Developer/Administrative/Insight-Handout.ppt Have at it... :) Stephen -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From xwxue@cs.utah.edu Thu Jul 18 00:05:27 2002 From: xwxue@cs.utah.edu (Xinwei Xue) Date: Wed, 17 Jul 2002 17:05:27 -0600 (MDT) Subject: [Insight-developers] compile error In-Reply-To: <20020712104100.336C61AA52@public.kitware.com> Message-ID: Hi, I just did a cvs update of the ITK files, but when I recompile it with cmake, it give me the following errors, does anyone know why? Thanks, Xinwei c++ -g -O2 -ftemplate-depth-50 -I/home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl -I/home/sci/xwxue/res/itk/Insight-LINUX -I/home/sci/xwxue/res/itk/Insight/Code/Numerics -I/home/sci/xwxue/res/itk/Insight/Code/Common -I/home/sci/xwxue/res/itk/Insight/Code/IO -I/home/sci/xwxue/res/itk/Insight-LINUX/Code/Numerics/vxl -I/home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl -I/home/sci/xwxue/res/itk/Insight-LINUX/Code/Numerics/vxl/vcl -I/home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vcl -I/home/sci/xwxue/res/itk/Insight/Utilities/png -I/home/sci/xwxue/res/itk/Insight/Utilities/zlib -D_PTHREADS -c /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx -o vnl/vnl_math.o /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx:13:24: vxl_config.h: No such file or directory /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx:33:2: warning: #warning finite() is not declared on this platform /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx: In function `bool finite(double)': /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx:37: new declaration `bool finite(double)' /usr/include/bits/mathcalls.h:187: ambiguates old declaration `int finite(double)' /home/sci/xwxue/res/itk/Insight/Code/Numerics/vxl/vnl/vnl_math.cxx:37: `bool finite(double)' was declared `extern' and later `static' /usr/include/bits/mathcalls.h:187: previous declaration of `int finite(double)' make[7]: *** [vnl/vnl_math.o] Error 1 make[6]: *** [default_target] Error 2 make[5]: *** [default_target_vxl] Error 2 make[4]: *** [default_target] Error 2 make[3]: *** [default_target_Numerics] Error 2 make[2]: *** [default_target] Error 2 make[1]: *** [default_target_Code] Error 2 make: *** [default_target] Error 2 From will.schroeder@kitware.com Fri Jul 19 14:36:49 2002 From: will.schroeder@kitware.com (Will Schroeder) Date: Fri, 19 Jul 2002 09:36:49 -0400 Subject: [Insight-developers] 1155 registered downloads Message-ID: <5.1.0.14.0.20020719093619.021451a0@pop.nycap.rr.com> --=====================_1559036976==_.ALT Content-Type: text/plain; charset="iso-8859-1"; format=flowed Content-Transfer-Encoding: quoted-printable Summary 1155 non-unique access(es) to the download page People requested: =B7 77.8% new releases announcements (=B7 mailto: 668) =B7 70.8% latest Itk news and events (=B7 mailto: 601) =B7 63.9% periodic surveys (=B7 mailto: 545) People stated: =B7 74.7% have used templated code or generic programming techniques. =B7 71.6% will use Itk for segmentation or registration of Visible=20 Human data. http://www.itk.org/HTML/Stats/Downloads.php --=====================_1559036976==_.ALT Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Summary
1155 non-unique access(es) to the download page
People requested:
=B7       77.8% new releases announcements (=B7     mailto: 668)
=B7       70.8% latest Itk news and events (=B7     mailto: 601)
=B7       63.9% periodic surveys (=B7       mailto: 545)
People stated:
=B7       74.7% have used templated code or generic programming techniques.
=B7       71.6% will use Itk for segmentation or registration of Visible Human data.

http://www.itk.org/HTML/Stats/Downloads.php
--=====================_1559036976==_.ALT-- From lorensen@crd.ge.com Fri Jul 19 17:20:59 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Fri, 19 Jul 2002 12:20:59 -0400 Subject: [Insight-developers] Warning regarding CMake LatestRelease Message-ID: Folks, I updated CMake to -rLatestRelease yesterday. I am having problems with the examples that build fltk. I have not resolved the problem yet. I suggest that you not update CMake unless it is necessary for now. I had to because the nightly VTK requires the LatestRelease. Bill From aylward@unc.edu Fri Jul 19 18:40:29 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Fri, 19 Jul 2002 13:40:29 -0400 Subject: [Insight-developers] Warning regarding CMake LatestRelease References: Message-ID: <3D384F0D.1010603@unc.edu> Hi Bill, Julien Jomier and Luis have made a new FindFLTK.cmake module and submitted it to a CMake developer (a couple of weeks ago) to get it into the cvs version of CMake. Last I heard was that it hadn't been updated in CMake's cvs repository yet. I don't know what problems you are having, but it might be related to this. What is the problem that you are having? Julien is on vacation but checking email...perhaps he can shed more light... Thanks, Stephen Lorensen, William E (Research) wrote: > Folks, > I updated CMake to -rLatestRelease yesterday. I am having problems with the examples that build fltk. > I have not resolved the problem yet. > > I suggest that you not update CMake unless it is necessary for now. I had to because the nightly VTK > requires the LatestRelease. > > Bill > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From lorensen@crd.ge.com Fri Jul 19 18:51:11 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Fri, 19 Jul 2002 13:51:11 -0400 Subject: [Insight-developers] Warning regarding CMake LatestRelease Message-ID: This is the new one. Apparently it was never tested for the old version of fltk. -----Original Message----- From: Stephen R. Aylward [mailto:aylward@unc.edu] Sent: Friday, July 19, 2002 1:40 PM To: Lorensen, William E (Research) Cc: 'Insight-Developers (E-mail)' Subject: Re: [Insight-developers] Warning regarding CMake LatestRelease Hi Bill, Julien Jomier and Luis have made a new FindFLTK.cmake module and submitted it to a CMake developer (a couple of weeks ago) to get it into the cvs version of CMake. Last I heard was that it hadn't been updated in CMake's cvs repository yet. I don't know what problems you are having, but it might be related to this. What is the problem that you are having? Julien is on vacation but checking email...perhaps he can shed more light... Thanks, Stephen Lorensen, William E (Research) wrote: > Folks, > I updated CMake to -rLatestRelease yesterday. I am having problems with the examples that build fltk. > I have not resolved the problem yet. > > I suggest that you not update CMake unless it is necessary for now. I had to because the nightly VTK > requires the LatestRelease. > > Bill > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From brad.king@kitware.com Fri Jul 19 20:40:39 2002 From: brad.king@kitware.com (Brad King) Date: Fri, 19 Jul 2002 15:40:39 -0400 (EDT) Subject: [Insight-developers] itk::OStringStream Message-ID: Hello, all: Recently I added a nightly build using gcc 3.1, but it generates over 30000 warnings. Many of them are due to the use of the header. The old std::ostrstream class has been deprecated, and should not be used in new code. However, the new std::ostringstream class isn't available everywhere. To get around this problem, I've added a class called "OStringStream" to the itk namespace. It is std::ostringstream when available. Otherwise, it is a wrapper around std::ostrstream that makes it behave like the new std::ostringstream. The new version is much easier to use than the old ostrstream. We no longer need to worry about memory leaks (rdbuf()->freeze(0)) or about ending the string with std::ends before using it. A typical use of OStringStream looks like this: OStringStream message; message << "Position: " << position; // don't need std::ends std::string msg = message.str(); // str() returns std::string I have changed all of ITK in CVS to use the new OStringStream class. Please use this class in all future code in ITK. Thanks, -Brad From brad.king@kitware.com Fri Jul 19 20:43:42 2002 From: brad.king@kitware.com (Brad King) Date: Fri, 19 Jul 2002 15:43:42 -0400 (EDT) Subject: [Insight-developers] typename errors Message-ID: Hello, all: The GCC 3.1 nightly build is reporting over 30000 warnings. As stated in the itk::OStringStream message, many of them come from use of the header. However, most of them are due to missing typename keywords. The reason other platforms haven't reported the problem is that these cases are currently legal C++, but have been deprecated. Please read through the warning log for the GCC 3.1 nightly and put in any typename keywords needed in your code. Thanks, -Brad From jjomier@cs.unc.edu Sat Jul 20 07:45:04 2002 From: jjomier@cs.unc.edu (jjomier@cs.unc.edu) Date: Sat, 20 Jul 2002 08:45:04 +0200 Subject: [Insight-developers] Warning regarding CMake LatestRelease Message-ID: <45929428cd.428cd45929@cs.unc.edu> Hi Bill, We tested the module for the old version and it was working. I think I see the problem. Under windows, if ${FLTK_GL_LIBRARY} or/and ${FLTK_FORMS_LIBRARY} is defined then VC++ is trying to include NOTFOUND.lib isn't it ? Question for CMake folks : Is this a bug in CMake ? otherwise I can fix this easily. Let me know ... Julien ----- Original Message ----- From: "Lorensen, William E (Research)" Date: Friday, July 19, 2002 7:51 pm Subject: RE: [Insight-developers] Warning regarding CMake LatestRelease > This is the new one. Apparently it was never tested for the old > version of fltk. > > -----Original Message----- > From: Stephen R. Aylward [mailto:aylward@unc.edu] > Sent: Friday, July 19, 2002 1:40 PM > To: Lorensen, William E (Research) > Cc: 'Insight-Developers (E-mail)' > Subject: Re: [Insight-developers] Warning regarding CMake > LatestRelease > > Hi Bill, > > Julien Jomier and Luis have made a new FindFLTK.cmake module and > submitted it to a CMake developer (a couple of weeks ago) to get > it into > the cvs version of CMake. Last I heard was that it hadn't been > updated > in CMake's cvs repository yet. I don't know what problems you > are > having, but it might be related to this. > > What is the problem that you are having? > > Julien is on vacation but checking email...perhaps he can shed > more light... > > Thanks, > Stephen > > Lorensen, William E (Research) wrote: > > > Folks, > > I updated CMake to -rLatestRelease yesterday. I am having > problems with the examples that build > fltk. > > I have not resolved the problem yet. > > > > I suggest that you not update CMake unless it is necessary for > now. I had to because the nightly > VTK > > requires the LatestRelease. > > > > Bill > > _______________________________________________ > > Insight-developers mailing list > > Insight-developers@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-developers > > > > > -- > =============================================== > Dr. Stephen R. Aylward > Assistant Professor of Radiology > Adjunct Assistant Professor of Computer Science > http://caddlab.rad.unc.edu > aylward@unc.edu > (919) 966-9695 > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > From wlorens1@nycap.rr.com Sat Jul 20 15:00:08 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Sat, 20 Jul 2002 10:00:08 -0400 Subject: [Insight-developers] Warning regarding CMake LatestRelease In-Reply-To: <45929428cd.428cd45929@cs.unc.edu> Message-ID: <5.1.0.14.2.20020720095743.02647ec0@pop.nycap.rr.com> That's not the problem I see. The problem is in the line: SET ( FLTK_LIBRARY ${FLTK_BASE_LIBRARY} ${FLK_GL_LIBRARY} ... ) For the older fltk, the GL and FORMS are not defined and cmake now leaves in those strings rather than replcing them with nulls. Bill At 08:45 AM 7/20/02 +0200, jjomier@cs.unc.edu wrote: >Hi Bill, > >We tested the module for the old version and it was working. >I think I see the problem. >Under windows, if ${FLTK_GL_LIBRARY} or/and ${FLTK_FORMS_LIBRARY} is >defined then VC++ is trying to include NOTFOUND.lib isn't it ? > >Question for CMake folks : Is this a bug in CMake ? >otherwise I can fix this easily. >Let me know ... > >Julien > > >----- Original Message ----- >From: "Lorensen, William E (Research)" >Date: Friday, July 19, 2002 7:51 pm >Subject: RE: [Insight-developers] Warning regarding CMake LatestRelease > >> This is the new one. Apparently it was never tested for the old >> version of fltk. >> >> -----Original Message----- >> From: Stephen R. Aylward [mailto:aylward@unc.edu] >> Sent: Friday, July 19, 2002 1:40 PM >> To: Lorensen, William E (Research) >> Cc: 'Insight-Developers (E-mail)' >> Subject: Re: [Insight-developers] Warning regarding CMake >> LatestRelease >> >> Hi Bill, >> >> Julien Jomier and Luis have made a new FindFLTK.cmake module and >> submitted it to a CMake developer (a couple of weeks ago) to get >> it into >> the cvs version of CMake. Last I heard was that it hadn't been >> updated >> in CMake's cvs repository yet. I don't know what problems you >> are >> having, but it might be related to this. >> >> What is the problem that you are having? >> >> Julien is on vacation but checking email...perhaps he can shed >> more light... >> >> Thanks, >> Stephen >> >> Lorensen, William E (Research) wrote: >> >> > Folks, >> > I updated CMake to -rLatestRelease yesterday. I am having >> problems with the examples that build >> fltk. >> > I have not resolved the problem yet. >> > >> > I suggest that you not update CMake unless it is necessary for >> now. I had to because the nightly >> VTK >> > requires the LatestRelease. >> > >> > Bill >> > _______________________________________________ >> > Insight-developers mailing list >> > Insight-developers@public.kitware.com >> > http://public.kitware.com/mailman/listinfo/insight-developers >> > >> >> >> -- >> =============================================== >> Dr. Stephen R. Aylward >> Assistant Professor of Radiology >> Adjunct Assistant Professor of Computer Science >> http://caddlab.rad.unc.edu >> aylward@unc.edu >> (919) 966-9695 >> _______________________________________________ >> Insight-developers mailing list >> Insight-developers@public.kitware.com >> http://public.kitware.com/mailman/listinfo/insight-developers >> > >_______________________________________________ >Insight-developers mailing list >Insight-developers@public.kitware.com >http://public.kitware.com/mailman/listinfo/insight-developers From luisedoibanez@yahoo.com Sat Jul 20 15:15:07 2002 From: luisedoibanez@yahoo.com (Luis Ibanez) Date: Sat, 20 Jul 2002 07:15:07 -0700 (PDT) Subject: [Insight-developers] Warning regarding CMake LatestRelease In-Reply-To: <5.1.0.14.2.20020720095743.02647ec0@pop.nycap.rr.com> Message-ID: <20020720141507.23032.qmail@web21509.mail.yahoo.com> Hi, This looks like a new behavior in CMake. The use of these two variables was tested with both versions of FLTK and worked just fine. This is what we used for the Beta 0.7 release. Luis --- Bill Lorensen wrote: > That's not the problem I see. The problem is in the > line: > > SET ( FLTK_LIBRARY ${FLTK_BASE_LIBRARY} > ${FLK_GL_LIBRARY} ... ) > > For the older fltk, the GL and FORMS are not defined > and cmake now leaves in those strings rather than > replcing them with nulls. > > Bill > > At 08:45 AM 7/20/02 +0200, jjomier@cs.unc.edu wrote: > >Hi Bill, > > > >We tested the module for the old version and it was > working. > >I think I see the problem. > >Under windows, if ${FLTK_GL_LIBRARY} or/and > ${FLTK_FORMS_LIBRARY} is > >defined then VC++ is trying to include NOTFOUND.lib > isn't it ? > > > >Question for CMake folks : Is this a bug in CMake ? > >otherwise I can fix this easily. > >Let me know ... > > > >Julien > > > > > >----- Original Message ----- > >From: "Lorensen, William E (Research)" > > >Date: Friday, July 19, 2002 7:51 pm > >Subject: RE: [Insight-developers] Warning regarding > CMake LatestRelease > > > >> This is the new one. Apparently it was never > tested for the old > >> version of fltk. > >> > >> -----Original Message----- > >> From: Stephen R. Aylward [mailto:aylward@unc.edu] > >> Sent: Friday, July 19, 2002 1:40 PM > >> To: Lorensen, William E (Research) > >> Cc: 'Insight-Developers (E-mail)' > >> Subject: Re: [Insight-developers] Warning > regarding CMake > >> LatestRelease > >> > >> Hi Bill, > >> > >> Julien Jomier and Luis have made a new > FindFLTK.cmake module and > >> submitted it to a CMake developer (a couple of > weeks ago) to get > >> it into > >> the cvs version of CMake. Last I heard was that > it hadn't been > >> updated > >> in CMake's cvs repository yet. I don't know > what problems you > >> are > >> having, but it might be related to this. > >> > >> What is the problem that you are having? > >> > >> Julien is on vacation but checking > email...perhaps he can shed > >> more light... > >> > >> Thanks, > >> Stephen > >> > >> Lorensen, William E (Research) wrote: > >> > >> > Folks, > >> > I updated CMake to -rLatestRelease yesterday. I > am having > >> problems with the examples that build > >> fltk. > >> > I have not resolved the problem yet. > >> > > >> > I suggest that you not update CMake unless it > is necessary for > >> now. I had to because the nightly > >> VTK > >> > requires the LatestRelease. > >> > > >> > Bill > >> > _______________________________________________ > >> > Insight-developers mailing list > >> > Insight-developers@public.kitware.com > >> > > http://public.kitware.com/mailman/listinfo/insight-developers > >> > > >> > >> > >> -- > >> =============================================== > >> Dr. Stephen R. Aylward > >> Assistant Professor of Radiology > >> Adjunct Assistant Professor of Computer Science > >> http://caddlab.rad.unc.edu > >> aylward@unc.edu > >> (919) 966-9695 > >> _______________________________________________ > >> Insight-developers mailing list > >> Insight-developers@public.kitware.com > >> > http://public.kitware.com/mailman/listinfo/insight-developers > >> > > > >_______________________________________________ > >Insight-developers mailing list > >Insight-developers@public.kitware.com > >http://public.kitware.com/mailman/listinfo/insight-developers > > > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers __________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com From wlorens1@nycap.rr.com Sat Jul 20 16:26:54 2002 From: wlorens1@nycap.rr.com (Bill Lorensen) Date: Sat, 20 Jul 2002 11:26:54 -0400 Subject: [Insight-developers] BinaryMedianImageFilter In-Reply-To: <20020720141507.23032.qmail@web21509.mail.yahoo.com> References: <5.1.0.14.2.20020720095743.02647ec0@pop.nycap.rr.com> Message-ID: <5.1.0.14.2.20020720112438.0264b6b0@pop.nycap.rr.com> Luis, The subject filter has an Array Bounds Read purify error. I think the logic for handling boundary faces is flawed. I put a cout in the boundary face loop and printed **inner_it. Some of its values are strange. Hope all is well, Bill From aylward@unc.edu Sat Jul 20 21:09:58 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Sat, 20 Jul 2002 16:09:58 -0400 Subject: [Insight-developers] Statement of Backward Compatibility... Message-ID: <3D39C396.9010002@unc.edu> What about having the following posted on http://www.itk.org/HTML/About.htm below the "Terms of Use" section.... Backward Compatibility The developers of the Insight toolkit will make every effort to maintain backward compatibility within its major versions (e.g., from Version 1.2 to 1.3). Specifically, the API of the existing methods will not change, the API of technologies used internal to the methods (e.g., the streaming system) will not change, and the API of new methods will conform to that of the existing methods. Across major versions (e.g. from Version 1.x to 2.0), the APIs of the toolkit may change if it is in the best interest of the toolkit so as to provide effective implementations of the methods and features that are being sought by its users. Every API change will be well documented, and every effort will be made to provide scripts to facilitate the update user software that is affected by the API change. Users are strongly encouraged to consult the Insight www pages (http://www.itk.org) and join the user's list to stay current on the changes occurring within the toolkit. Archiving your ITK installation prior to upgrading to a new major version is also recommended. Stephen -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From luisedoibanez@yahoo.com Mon Jul 22 01:56:40 2002 From: luisedoibanez@yahoo.com (Luis Ibanez) Date: Sun, 21 Jul 2002 17:56:40 -0700 (PDT) Subject: [Insight-developers] BinaryMedianImageFilter In-Reply-To: <5.1.0.14.2.20020720112438.0264b6b0@pop.nycap.rr.com> Message-ID: <20020722005640.24248.qmail@web21507.mail.yahoo.com> --0-979044662-1027299400=:23166 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Bill, Thanks for pointing this out. The handling of boundaries wasn´t following the correct use of the Neighborhood iterator. It looked like a bad copy/paste of code... I have fixed it in my local checkout but won´t be able to check this in until thursday. (when I should be back in town). In the meantime, the fixed version is attached to this email. Thanks Luis PS. Please feel free to check this in if you will. --- Bill Lorensen wrote: > Luis, > The subject filter has an Array Bounds Read purify > error. I think the logic for handling boundary faces > is flawed. > > I put a cout in the boundary face loop and printed > **inner_it. Some of its values are strange. > > Hope all is well, > > Bill > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers __________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com --0-979044662-1027299400=:23166 Content-Type: text/plain; name="itkBinaryMedianImageFilter.txx" Content-Description: itkBinaryMedianImageFilter.txx Content-Disposition: inline; filename="itkBinaryMedianImageFilter.txx" /*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkBinaryMedianImageFilter.txx,v $ Language: C++ Date: $Date: 2002/07/19 19:32:45 $ Version: $Revision: 1.5 $ Copyright (c) 2002 Insight Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _itkBinaryMedianImageFilter_txx #define _itkBinaryMedianImageFilter_txx #include "itkBinaryMedianImageFilter.h" #include "itkConstNeighborhoodIterator.h" #include "itkConstSmartNeighborhoodIterator.h" #include "itkNeighborhoodInnerProduct.h" #include "itkImageRegionIterator.h" #include "itkNeighborhoodAlgorithm.h" #include "itkZeroFluxNeumannBoundaryCondition.h" #include "itkOffset.h" #include #include namespace itk { template BinaryMedianImageFilter ::BinaryMedianImageFilter() { m_Radius.Fill(1); m_ForegroundValue = NumericTraits::max(); m_BackgroundValue = NumericTraits::Zero; } template void BinaryMedianImageFilter ::GenerateInputRequestedRegion() throw (InvalidRequestedRegionError) { // call the superclass' implementation of this method Superclass::GenerateInputRequestedRegion(); // get pointers to the input and output InputImagePointer inputPtr = const_cast< TInputImage * >( this->GetInput() ); OutputImagePointer outputPtr = this->GetOutput(); if ( !inputPtr || !outputPtr ) { return; } // get a copy of the input requested region (should equal the output // requested region) typename TInputImage::RegionType inputRequestedRegion; inputRequestedRegion = inputPtr->GetRequestedRegion(); // pad the input requested region by the operator radius inputRequestedRegion.PadByRadius( m_Radius ); // crop the input requested region at the input's largest possible region if ( inputRequestedRegion.Crop(inputPtr->GetLargestPossibleRegion()) ) { inputPtr->SetRequestedRegion( inputRequestedRegion ); return; } else { // Couldn't crop the region (requested region is outside the largest // possible region). Throw an exception. // store what we tried to request (prior to trying to crop) inputPtr->SetRequestedRegion( inputRequestedRegion ); // build an exception InvalidRequestedRegionError e(__FILE__, __LINE__); OStringStream msg; msg << (char *)this->GetNameOfClass() << "::GenerateInputRequestedRegion()"; e.SetLocation(msg.str().c_str()); e.SetDescription("Requested region is (at least partially) outside the largest possible region."); e.SetDataObject(inputPtr); throw e; } } template< class TInputImage, class TOutputImage> void BinaryMedianImageFilter< TInputImage, TOutputImage> ::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId) { ZeroFluxNeumannBoundaryCondition nbc; ConstNeighborhoodIterator nit; ConstSmartNeighborhoodIterator bit; ImageRegionIterator it; ConstNeighborhoodIterator::ConstIterator inner_it; ConstNeighborhoodIterator::ConstIterator innerEnd_it; // Allocate output typename OutputImageType::Pointer output = this->GetOutput(); typename InputImageType::ConstPointer input = this->GetInput(); // Find the data-set boundary "faces" typename NeighborhoodAlgorithm::ImageBoundaryFacesCalculator::FaceListType faceList; NeighborhoodAlgorithm::ImageBoundaryFacesCalculator bC; faceList = bC(input, outputRegionForThread, m_Radius); typename NeighborhoodAlgorithm::ImageBoundaryFacesCalculator::FaceListType::iterator fit; fit = faceList.begin(); // support progress methods/callbacks unsigned long ii = 0; unsigned long updateVisits = 0; unsigned long totalPixels = 0; if ( threadId == 0 ) { totalPixels = outputRegionForThread.GetNumberOfPixels(); updateVisits = totalPixels / 10; if( updateVisits < 1 ) updateVisits = 1; } // Process non-boundary face nit = ConstNeighborhoodIterator(m_Radius, input, *fit); it = ImageRegionIterator(output, *fit); nit.GoToBegin(); it.GoToBegin(); // All of our neighborhoods have an odd number of pixels, so there is // always a median index (if there where an even number of pixels // in the neighborhood we have to average the middle two values). unsigned int medianPosition = nit.Size() / 2; while( ! nit.IsAtEnd() ) { if ( threadId == 0 && !(++ii % updateVisits ) ) { this->UpdateProgress((float)ii / (float)totalPixels); } // count the pixels in the neighborhood unsigned int count = 0; innerEnd_it = nit.End(); for (inner_it = nit.Begin(); inner_it != innerEnd_it; ++inner_it) { if( **inner_it == m_ForegroundValue ) { count++; } } if( count > medianPosition ) { it.Set( static_cast( m_ForegroundValue ) ); } else { it.Set( static_cast( m_BackgroundValue ) ); } ++nit; ++it; } // Process each of the boundary faces. These are N-d regions which border // the edge of the buffer. for (++fit; fit != faceList.end(); ++fit) { bit = ConstSmartNeighborhoodIterator(m_Radius, input, *fit); it = ImageRegionIterator(output, *fit); bit.OverrideBoundaryCondition(&nbc); bit.GoToBegin(); unsigned int neighborhoodSize = bit.Size(); while ( ! bit.IsAtEnd() ) { if ( threadId == 0 && !(++ii % updateVisits ) ) { this->UpdateProgress((float)ii / (float)totalPixels); } // count the pixels in the neighborhood unsigned int count = 0; for (unsigned int i = 0; i < neighborhoodSize; ++i) { InputPixelType value = bit.GetPixel(i); if( value == m_ForegroundValue ) { count++; } } if( count > medianPosition ) { it.Set( static_cast( m_ForegroundValue ) ); } else { it.Set( static_cast( m_BackgroundValue ) ); } ++bit; ++it; } } } /** * Standard "PrintSelf" method */ template void BinaryMedianImageFilter ::PrintSelf( std::ostream& os, Indent indent) const { Superclass::PrintSelf( os, indent ); os << indent << "Radius: " << m_Radius << std::endl; os << indent << "Foreground value : " << m_ForegroundValue << std::endl; os << indent << "Background value : " << m_BackgroundValue << std::endl; } } // end namespace itk #endif --0-979044662-1027299400=:23166-- From lorensen@crd.ge.com Mon Jul 22 02:02:00 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Sun, 21 Jul 2002 21:02:00 -0400 Subject: [Insight-developers] BinaryMedianImageFilter Message-ID: Looks great. I'll check it in. It will be good to have you back, Bill -----Original Message----- From: Luis Ibanez [mailto:luisedoibanez@yahoo.com] Sent: Sunday, July 21, 2002 8:57 PM To: Bill Lorensen Cc: insight-developers@public.kitware.com Subject: Re: [Insight-developers] BinaryMedianImageFilter Hi Bill, Thanks for pointing this out. The handling of boundaries wasn?t following the correct use of the Neighborhood iterator. It looked like a bad copy/paste of code... I have fixed it in my local checkout but won?t be able to check this in until thursday. (when I should be back in town). In the meantime, the fixed version is attached to this email. Thanks Luis PS. Please feel free to check this in if you will. --- Bill Lorensen wrote: > Luis, > The subject filter has an Array Bounds Read purify > error. I think the logic for handling boundary faces > is flawed. > > I put a cout in the boundary face loop and printed > **inner_it. Some of its values are strange. > > Hope all is well, > > Bill > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers __________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com From bill.hoffman@kitware.com Mon Jul 22 14:01:04 2002 From: bill.hoffman@kitware.com (Bill Hoffman) Date: Mon, 22 Jul 2002 09:01:04 -0400 Subject: [Insight-developers] Warning regarding CMake LatestRelease In-Reply-To: <5.1.0.14.2.20020720095743.02647ec0@pop.nycap.rr.com> References: <45929428cd.428cd45929@cs.unc.edu> Message-ID: <5.0.2.1.0.20020722085652.049b7b98@pop.nycap.rr.com> CMake has always done this. My guess is that when this was tested, the cache had empty values for FLTK_BASE_LIBRARY and FLK_GL_LIBRARY. Anyway, we are working on changing cmake so that it will expand them to null. -Bill At 10:00 AM 7/20/2002 -0400, Bill Lorensen wrote: >That's not the problem I see. The problem is in the line: > >SET ( FLTK_LIBRARY ${FLTK_BASE_LIBRARY} ${FLK_GL_LIBRARY} ... ) > >For the older fltk, the GL and FORMS are not defined and cmake now leaves in those strings rather than replcing them with nulls. > >Bill From foskey@cs.unc.edu Wed Jul 24 16:18:48 2002 From: foskey@cs.unc.edu (mark foskey) Date: Wed, 24 Jul 2002 11:18:48 -0400 Subject: [Insight-developers] Gaussian filters Message-ID: <3D3EC558.5080403@cs.unc.edu> I'm new to the group and still learning ITK, and I've noticed a couple of apparent anomalies with the various Gaussian filter classes. 1. RecursiveGaussianImageFilter has a SetSigma method, while DiscreteGaussianImageFilter has a SetVariance method. I think it would be helpful if the method were the same in both filters. 2. DiscreteGaussianImageFilter yielded an apparently blank image for all variance values I tried other than 0. I am including the test program I used below. I may be doing something wrong. 3. Perhaps most serious is that it was hard to figure out how to use these filters from their documentation. Programmers are likely to assume that RecursiveGaussianImageFilter simply blurs an image; only if they read the documentation for RecursiveSeparableImageFilter will they learn that the filter must be applied once for each dimension. Also, for DiscreteGaussianImageFilter, the SetMaximumError method isn't documented. I'm not clear on what the m_MaximumError parameter controls in this context. I have not read the code yet, but the point is that I think the meaning of the parameter should be documented. 4. It would be nice if there were a convenience filter that would internally chain together instances of the RecursiveGaussianImageFilter for each dimension, since most users will want to filter along all n dims. I'm sorry for my first message to the group to come across as a complaint, but I'm seeing ITK somewhat as a new user will, and I think we have to be aware things that frustrate beginners. Here's the test program: #include #include #include #include #include typedef itk::Image ImageType ; int main(int argc, char* argv[]) { if (argc < 2) { std::cout << "usage: VerySimpleFilter [inputfile] [outputfile]" << std::endl; exit(0); } // Create an IO object for PNG files, to be used by both the // reader and the writer. typedef itk::PNGImageIO PNGIOType; PNGIOType::Pointer png = PNGIOType::New(); // Instantiate a reader for the file. typedef itk::ImageFileReader ImageReaderType; ImageReaderType::Pointer reader = ImageReaderType::New(); reader->SetImageIO(png); reader->SetFileName(argv[1]); // Instantiate a filter and attach it to the reader. typedef itk::DiscreteGaussianImageFilter GaussianFilterType; GaussianFilterType::Pointer myFilter = GaussianFilterType::New(); myFilter->SetInput(reader->GetOutput()); myFilter->SetVariance(0.1); // Instantiate a writer and attach it to the filter. typedef itk::ImageFileWriter ImageWriterType; ImageWriterType::Pointer writer = ImageWriterType::New(); writer->SetImageIO(png); writer->SetInput(myFilter->GetOutput()); writer->SetFileName(argv[2]); writer->Write(); return 0; } -- Mark Foskey (919) 843-5436 Computer-Aided Diagnosis and Display Lab mark_foskey@unc.edu Department of Radiology, CB 7515, UNC http://www.cs.unc.edu/~foskey Chapel Hill, NC 27599-7515 From cates@sci.utah.edu Wed Jul 24 18:07:03 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Wed, 24 Jul 2002 11:07:03 -0600 (MDT) Subject: [Insight-developers] Gaussian filters In-Reply-To: <3D3EC558.5080403@cs.unc.edu> Message-ID: Hi Mark, I will add more documentation on DiscreteGaussianImageFilter as soon as I have some spare minutes. In the meantime, ignore the MaximumError parameter. The default setting is fine for most applications. Currently, the DiscreteGaussianImageFilter will only give reasonable output for real numbers (floats, doubles) so you need to use CastImageFilter to convert your input to floats (and back). In the future this conversion will be handled internally within the filter and be transparent to the user. I will be sure to include this caveat in the documentation. Thanks for the feedback, 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 Wed, 24 Jul 2002, mark foskey wrote: > I'm new to the group and still learning ITK, and I've noticed a couple > of apparent anomalies with the various Gaussian filter classes. > > 1. RecursiveGaussianImageFilter has a SetSigma method, while > DiscreteGaussianImageFilter has a SetVariance method. I think it would > be helpful if the method were the same in both filters. > > 2. DiscreteGaussianImageFilter yielded an apparently blank image for all > variance values I tried other than 0. I am including the test program I > used below. I may be doing something wrong. > > 3. Perhaps most serious is that it was hard to figure out how to use > these filters from their documentation. Programmers are likely to > assume that RecursiveGaussianImageFilter simply blurs an image; only if > they read the documentation for RecursiveSeparableImageFilter will they > learn that the filter must be applied once for each dimension. Also, > for DiscreteGaussianImageFilter, the SetMaximumError method isn't > documented. I'm not clear on what the m_MaximumError parameter controls > in this context. I have not read the code yet, but the point is that I > think the meaning of the parameter should be documented. > > 4. It would be nice if there were a convenience filter that would > internally chain together instances of the RecursiveGaussianImageFilter > for each dimension, since most users will want to filter along all n dims. > > I'm sorry for my first message to the group to come across as a > complaint, but I'm seeing ITK somewhat as a new user will, and I think > we have to be aware things that frustrate beginners. > > Here's the test program: > > #include > #include > #include > #include > #include > > typedef itk::Image ImageType ; > > int main(int argc, char* argv[]) > { > if (argc < 2) > { > std::cout > << "usage: VerySimpleFilter [inputfile] [outputfile]" > << std::endl; > exit(0); > } > > // Create an IO object for PNG files, to be used by both the > // reader and the writer. > typedef itk::PNGImageIO PNGIOType; > PNGIOType::Pointer png = PNGIOType::New(); > > // Instantiate a reader for the file. > typedef itk::ImageFileReader ImageReaderType; > ImageReaderType::Pointer reader = ImageReaderType::New(); > reader->SetImageIO(png); > reader->SetFileName(argv[1]); > > // Instantiate a filter and attach it to the reader. > typedef itk::DiscreteGaussianImageFilter > GaussianFilterType; > GaussianFilterType::Pointer myFilter = GaussianFilterType::New(); > myFilter->SetInput(reader->GetOutput()); > myFilter->SetVariance(0.1); > > // Instantiate a writer and attach it to the filter. > typedef itk::ImageFileWriter ImageWriterType; > ImageWriterType::Pointer writer = ImageWriterType::New(); > writer->SetImageIO(png); > writer->SetInput(myFilter->GetOutput()); > writer->SetFileName(argv[2]); > > writer->Write(); > > return 0; > > } > -- > Mark Foskey (919) 843-5436 Computer-Aided Diagnosis and Display Lab > mark_foskey@unc.edu Department of Radiology, CB 7515, UNC > http://www.cs.unc.edu/~foskey Chapel Hill, NC 27599-7515 > > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > From aylward@unc.edu Wed Jul 24 18:44:47 2002 From: aylward@unc.edu (Stephen R. Aylward) Date: Wed, 24 Jul 2002 13:44:47 -0400 Subject: [Insight-developers] Gaussian filters References: Message-ID: <3D3EE78F.6010804@unc.edu> This would also be a great place to use an image adaptor to make the image look like a float/double image. s Joshua Cates wrote: > Hi Mark, > > I will add more documentation on DiscreteGaussianImageFilter as soon as I > have some spare minutes. In the meantime, ignore the MaximumError > parameter. The default setting is fine for most applications. > > Currently, the DiscreteGaussianImageFilter will only give reasonable > output for real numbers (floats, doubles) so you need to use > CastImageFilter to convert your input to floats (and back). In the > future this conversion will be handled internally within the filter > and be transparent to the user. I will be sure to include this caveat in > the documentation. > > Thanks for the feedback, > > 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 Wed, 24 Jul 2002, mark foskey wrote: > > >>I'm new to the group and still learning ITK, and I've noticed a couple >>of apparent anomalies with the various Gaussian filter classes. >> >>1. RecursiveGaussianImageFilter has a SetSigma method, while >>DiscreteGaussianImageFilter has a SetVariance method. I think it would >>be helpful if the method were the same in both filters. >> >>2. DiscreteGaussianImageFilter yielded an apparently blank image for all >>variance values I tried other than 0. I am including the test program I >>used below. I may be doing something wrong. >> >>3. Perhaps most serious is that it was hard to figure out how to use >>these filters from their documentation. Programmers are likely to >>assume that RecursiveGaussianImageFilter simply blurs an image; only if >>they read the documentation for RecursiveSeparableImageFilter will they >>learn that the filter must be applied once for each dimension. Also, >>for DiscreteGaussianImageFilter, the SetMaximumError method isn't >>documented. I'm not clear on what the m_MaximumError parameter controls >>in this context. I have not read the code yet, but the point is that I >>think the meaning of the parameter should be documented. >> >>4. It would be nice if there were a convenience filter that would >>internally chain together instances of the RecursiveGaussianImageFilter >>for each dimension, since most users will want to filter along all n dims. >> >>I'm sorry for my first message to the group to come across as a >>complaint, but I'm seeing ITK somewhat as a new user will, and I think >>we have to be aware things that frustrate beginners. >> >>Here's the test program: >> >>#include >>#include >>#include >>#include >>#include >> >>typedef itk::Image ImageType ; >> >>int main(int argc, char* argv[]) >>{ >> if (argc < 2) >> { >> std::cout >> << "usage: VerySimpleFilter [inputfile] [outputfile]" >> << std::endl; >> exit(0); >> } >> >> // Create an IO object for PNG files, to be used by both the >> // reader and the writer. >> typedef itk::PNGImageIO PNGIOType; >> PNGIOType::Pointer png = PNGIOType::New(); >> >> // Instantiate a reader for the file. >> typedef itk::ImageFileReader ImageReaderType; >> ImageReaderType::Pointer reader = ImageReaderType::New(); >> reader->SetImageIO(png); >> reader->SetFileName(argv[1]); >> >> // Instantiate a filter and attach it to the reader. >> typedef itk::DiscreteGaussianImageFilter >> GaussianFilterType; >> GaussianFilterType::Pointer myFilter = GaussianFilterType::New(); >> myFilter->SetInput(reader->GetOutput()); >> myFilter->SetVariance(0.1); >> >> // Instantiate a writer and attach it to the filter. >> typedef itk::ImageFileWriter ImageWriterType; >> ImageWriterType::Pointer writer = ImageWriterType::New(); >> writer->SetImageIO(png); >> writer->SetInput(myFilter->GetOutput()); >> writer->SetFileName(argv[2]); >> >> writer->Write(); >> >> return 0; >> >>} >>-- >>Mark Foskey (919) 843-5436 Computer-Aided Diagnosis and Display Lab >>mark_foskey@unc.edu Department of Radiology, CB 7515, UNC >>http://www.cs.unc.edu/~foskey Chapel Hill, NC 27599-7515 >> >> >>_______________________________________________ >>Insight-developers mailing list >>Insight-developers@public.kitware.com >>http://public.kitware.com/mailman/listinfo/insight-developers >> >> > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > -- =============================================== Dr. Stephen R. Aylward Assistant Professor of Radiology Adjunct Assistant Professor of Computer Science http://caddlab.rad.unc.edu aylward@unc.edu (919) 966-9695 From cates@sci.utah.edu Wed Jul 24 18:52:58 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Wed, 24 Jul 2002 11:52:58 -0600 (MDT) Subject: [Insight-developers] Gaussian filters In-Reply-To: <3D3EE78F.6010804@unc.edu> Message-ID: There would be some performance penalties in doing this since each voxel is touched more than once, but it certainly is a better option for those who want to prioritize memory over performance. It would be worth investigating how great the penalty is, thought, maybe the duplicate casts would not prove to be that significant. 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 Wed, 24 Jul 2002, Stephen R. Aylward wrote: > > This would also be a great place to use an image adaptor to make the > image look like a float/double image. > > s > > Joshua Cates wrote: > > > Hi Mark, > > > > I will add more documentation on DiscreteGaussianImageFilter as soon as I > > have some spare minutes. In the meantime, ignore the MaximumError > > parameter. The default setting is fine for most applications. > > > > Currently, the DiscreteGaussianImageFilter will only give reasonable > > output for real numbers (floats, doubles) so you need to use > > CastImageFilter to convert your input to floats (and back). In the > > future this conversion will be handled internally within the filter > > and be transparent to the user. I will be sure to include this caveat in > > the documentation. > > > > Thanks for the feedback, > > > > 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 Wed, 24 Jul 2002, mark foskey wrote: > > > > > >>I'm new to the group and still learning ITK, and I've noticed a couple > >>of apparent anomalies with the various Gaussian filter classes. > >> > >>1. RecursiveGaussianImageFilter has a SetSigma method, while > >>DiscreteGaussianImageFilter has a SetVariance method. I think it would > >>be helpful if the method were the same in both filters. > >> > >>2. DiscreteGaussianImageFilter yielded an apparently blank image for all > >>variance values I tried other than 0. I am including the test program I > >>used below. I may be doing something wrong. > >> > >>3. Perhaps most serious is that it was hard to figure out how to use > >>these filters from their documentation. Programmers are likely to > >>assume that RecursiveGaussianImageFilter simply blurs an image; only if > >>they read the documentation for RecursiveSeparableImageFilter will they > >>learn that the filter must be applied once for each dimension. Also, > >>for DiscreteGaussianImageFilter, the SetMaximumError method isn't > >>documented. I'm not clear on what the m_MaximumError parameter controls > >>in this context. I have not read the code yet, but the point is that I > >>think the meaning of the parameter should be documented. > >> > >>4. It would be nice if there were a convenience filter that would > >>internally chain together instances of the RecursiveGaussianImageFilter > >>for each dimension, since most users will want to filter along all n dims. > >> > >>I'm sorry for my first message to the group to come across as a > >>complaint, but I'm seeing ITK somewhat as a new user will, and I think > >>we have to be aware things that frustrate beginners. > >> > >>Here's the test program: > >> > >>#include > >>#include > >>#include > >>#include > >>#include > >> > >>typedef itk::Image ImageType ; > >> > >>int main(int argc, char* argv[]) > >>{ > >> if (argc < 2) > >> { > >> std::cout > >> << "usage: VerySimpleFilter [inputfile] [outputfile]" > >> << std::endl; > >> exit(0); > >> } > >> > >> // Create an IO object for PNG files, to be used by both the > >> // reader and the writer. > >> typedef itk::PNGImageIO PNGIOType; > >> PNGIOType::Pointer png = PNGIOType::New(); > >> > >> // Instantiate a reader for the file. > >> typedef itk::ImageFileReader ImageReaderType; > >> ImageReaderType::Pointer reader = ImageReaderType::New(); > >> reader->SetImageIO(png); > >> reader->SetFileName(argv[1]); > >> > >> // Instantiate a filter and attach it to the reader. > >> typedef itk::DiscreteGaussianImageFilter > >> GaussianFilterType; > >> GaussianFilterType::Pointer myFilter = GaussianFilterType::New(); > >> myFilter->SetInput(reader->GetOutput()); > >> myFilter->SetVariance(0.1); > >> > >> // Instantiate a writer and attach it to the filter. > >> typedef itk::ImageFileWriter ImageWriterType; > >> ImageWriterType::Pointer writer = ImageWriterType::New(); > >> writer->SetImageIO(png); > >> writer->SetInput(myFilter->GetOutput()); > >> writer->SetFileName(argv[2]); > >> > >> writer->Write(); > >> > >> return 0; > >> > >>} > >>-- > >>Mark Foskey (919) 843-5436 Computer-Aided Diagnosis and Display Lab > >>mark_foskey@unc.edu Department of Radiology, CB 7515, UNC > >>http://www.cs.unc.edu/~foskey Chapel Hill, NC 27599-7515 > >> > >> > >>_______________________________________________ > >>Insight-developers mailing list > >>Insight-developers@public.kitware.com > >>http://public.kitware.com/mailman/listinfo/insight-developers > >> > >> > > > > _______________________________________________ > > Insight-developers mailing list > > Insight-developers@public.kitware.com > > http://public.kitware.com/mailman/listinfo/insight-developers > > > > > -- > =============================================== > Dr. Stephen R. Aylward > Assistant Professor of Radiology > Adjunct Assistant Professor of Computer Science > http://caddlab.rad.unc.edu > aylward@unc.edu > (919) 966-9695 > > _______________________________________________ > Insight-developers mailing list > Insight-developers@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-developers > From luis.ibanez@kitware.com Fri Jul 26 18:45:17 2002 From: luis.ibanez@kitware.com (Luis Ibanez) Date: Fri, 26 Jul 2002 13:45:17 -0400 Subject: [Insight-developers] Gaussian filters References: <3D3EC558.5080403@cs.unc.edu> Message-ID: <3D418AAD.1080004@kitware.com> Hi Mark, There is a filter that do exactly what you suggested concerning the RecursiveGaussianImageFilter. It is the GradientRecursiveImageFilter: http://www.itk.org/Insight/Doxygen/html/classitk_1_1GradientRecursiveGaussianImageFilter.html It internally instantiates a chain of RecursiveGaussianFilters, one for each dimension and use them to generate an Image of CovariantVectors representing the gradient of the image at a particular scale. A similar arrangement could be done for blurring an image by applying the set of filters on each dimension. I agree with you in that it is a bit redundant to have a RecursiveSeparable class as base class of the RecursiveGaussian. This was done in anticipation of using the RecursiveSeparable class as base for a set of filters implemented using IIR filters that can be applied line by line, but the candidate filters where implemented in ITK following another approach. It make sense at this point to fuse these two classes again. Thanks Luis ======================================================= mark foskey wrote: > >... > > 4. It would be nice if there were a convenience filter that would > internally chain together instances of the RecursiveGaussianImageFilter > for each dimension, since most users will want to filter along all n dims. > >... > From ken.martin@kitware.com Fri Jul 26 22:11:44 2002 From: ken.martin@kitware.com (Ken Martin) Date: Fri, 26 Jul 2002 17:11:44 -0400 Subject: [Insight-developers] CMake 1.4 Message-ID: Hello Folks, We have released CMake version 1.4 (patch 1). This version of CMake includes a number of syntax improvements from version 1.2. It also includes support for Microsoft Visual Studio .NET. Some of the commands in CMake 1.2 we recommend you not use anymore. If you specify CMAKE_MINIMUM_REQUIRED(VERSION 1.4) at the top of your CMake list file these old commands will produce deprecated warnings. Otherwise they should mostly still work. Two significant changes in CMake 1.4 are support for lists and variable expansion. We now recommend a syntax of: SET (MY_SRC_FILES foo.cxx foo2.cxx foo3.cxx) ADD_LIBRARY(MyLib ${MY_SRC_FILES}) In this example, MY_SRC_FILES is a list, its actual representation is strings separated by ;. So the following command is equivalent: SET(MY_SRC_FILES foo.cxx;foo2,cxx;foo3.cxx) Also if a variable is not defined it will now be replaced with nothing, in the past an undefined variable was not replaced. If you run into problems with the 1.4 release of have questions don't hesitate to ask. Thanks Ken -------------------------- Ken Martin, PhD Kitware Inc. 518 371-3971 x101 469 Clifton Corporate Pkwy. Clifton Park, NY 12065 From cates@sci.utah.edu Mon Jul 29 02:25:43 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Sun, 28 Jul 2002 19:25:43 -0600 (MDT) Subject: [Insight-developers] New ITK segmentation software Message-ID: Hello everyone, I have checked a new example application into the Insight repository under Examples/SegmentationEditor. The SegmentationEditor is an interactive tool developed in ITK and VTK for semi-automated segmentation of image volumes. This is an expanded version of the software we (U of Utah) demonstrated at the June Insight developers meeting in Boston. As described in http://www.itk.org/HTML/SegmentationEditor.html: `The SE tool is a special editor which allows you to construct a labeled image using the output from the Insight watershed segmentation algorithm. Hand labeling of images is also supported. The goal of the software is to combine human interaction with automated image processing techniques to produce a better result than either technique can give on its own.' Directions for building/running the code can be found in Insight/Examples/SegmentationEditor/README.txt. Let me know of any problems building or running this software. 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 From cates@sci.utah.edu Mon Jul 29 18:07:45 2002 From: cates@sci.utah.edu (Joshua Cates) Date: Mon, 29 Jul 2002 11:07:45 -0600 (MDT) Subject: [Insight-developers] Re: [Insight-users] New ITK segmentation software In-Reply-To: <20020729163155.74572.qmail@web20906.mail.yahoo.com> Message-ID: Hi Jarek, Something in your CMake configuration seems to be causing an attempted wrap for Python, which the code is not set up to do (nor does it need to, only Tcl wrapping is needed). I'll look through the CMake configuration to see if I can find the cause (I may have to consult the CMake experts on this one). In the meantime, you can try disabling Python wrapping in your own setup, perhaps it is picking up this setting from your VTK build. 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 Mon, 29 Jul 2002, Jarek Sacha wrote: > --- Joshua Cates wrote: > > Hello everyone, > > > > I have checked a new example application into the Insight repository > > under Examples/SegmentationEditor. The SegmentationEditor is an > > ... > > Let me know of any problems building or running this software. > > Compilation of the SegmentationEditor example fails with messages: > > ... > c++ -rdynamic -shared -O2 -ftemplate-depth-50 -o > libvtkWSTCommonPython.so vtkWSTCommonPythonInit.o > vtkBinaryVolumePython.o vtkBinaryVolumeLogicPython.o > vtkBoundingBoxPython.o vtkPatchedImageReaderPython.o > vtkPatchedLookupTablePython.o vtkWSBoundingBoxManagerPython.o > vtkWSLookupTableManagerPython.o vtkBinaryVolumePython.o > vtkBinaryVolumeLogicPython.o vtkBoundingBoxPython.o > vtkPatchedImageReaderPython.o vtkPatchedLookupTablePython.o > vtkWSBoundingBoxManagerPython.o vtkWSLookupTableManagerPython.o > vtkITKWatershedFilterAndWriterPython.o ... > > vtkBinaryVolumePython.o: In function `PyVTKClass_vtkBinaryVolumeNew': > vtkBinaryVolumePython.o(.text+0x724): multiple definition of > `PyVTKClass_vtkBinaryVolumeNew' > vtkBinaryVolumePython.o(.text+0x724): first defined here > vtkBinaryVolumeLogicPython.o: In function > `PyVTKClass_vtkBinaryVolumeLogicNew': > vtkBinaryVolumeLogicPython.o(.text+0x15e0): multiple definition of > `PyVTKClass_vtkBinaryVolumeLogicNew' > vtkBinaryVolumeLogicPython.o(.text+0x15e0): first defined here > vtkBoundingBoxPython.o: In function `PyVTKClass_vtkBoundingBoxNew': > vtkBoundingBoxPython.o(.text+0x2f0): multiple definition of > `PyVTKClass_vtkBoundingBoxNew' > vtkBoundingBoxPython.o(.text+0x2f0): first defined here > vtkPatchedImageReaderPython.o: In function > `PyVTKClass_vtkPatchedImageReaderNew': > vtkPatchedImageReaderPython.o(.text+0x846c): multiple definition of > `PyVTKClass_vtkPatchedImageReaderNew' > vtkPatchedImageReaderPython.o(.text+0x846c): first defined here > vtkPatchedLookupTablePython.o: In function > `PyVTKClass_vtkPatchedLookupTableNew': > vtkPatchedLookupTablePython.o(.text+0x482c): multiple definition of > `PyVTKClass_vtkPatchedLookupTableNew' > vtkPatchedLookupTablePython.o(.text+0x482c): first defined here > vtkWSBoundingBoxManagerPython.o: In function > `PyVTKClass_vtkWSBoundingBoxManagerNew': > vtkWSBoundingBoxManagerPython.o(.text+0xb48): multiple definition of > `PyVTKClass_vtkWSBoundingBoxManagerNew' > vtkWSBoundingBoxManagerPython.o(.text+0xb48): first defined here > vtkWSLookupTableManagerPython.o: In function > `PyVTKClass_vtkWSLookupTableManagerNew': > vtkWSLookupTableManagerPython.o(.text+0x2074): multiple definition of > `PyVTKClass_vtkWSLookupTableManagerNew' > vtkWSLookupTableManagerPython.o(.text+0x2074): first defined here > collect2: ld returned 1 exit status > make[7]: *** [libvtkWSTCommonPython.so] Error 1 > ... > > The system runs Red Hat Linux 7.3 and gcc 2.96-110. > > Jarek > > __________________________________________________ > Do You Yahoo!? > Yahoo! Health - Feel better, live better > http://health.yahoo.com > _______________________________________________ > Insight-users mailing list > Insight-users@public.kitware.com > http://public.kitware.com/mailman/listinfo/insight-users > From lorensen@crd.ge.com Tue Jul 30 14:15:10 2002 From: lorensen@crd.ge.com (Lorensen, William E (Research)) Date: Tue, 30 Jul 2002 09:15:10 -0400 Subject: [Insight-developers] New ITK segmentation software Message-ID: Josh, I kicked off an experimnetal on my laptop (BillsLaptop). You can see the compiler errors for the new example. Seems like ::rint is not there (use either floor or ceil). Also hash_map problems and some casting. Bill -----Original Message----- From: Joshua Cates [mailto:cates@sci.utah.edu] Sent: Sunday, July 28, 2002 9:26 PM To: Insight-Developers; insight-users@public.kitware.com Cc: talos@bwh.harvard.edu; ratiu@bwh.harvard.edu; Jens Gregor Subject: [Insight-developers] New ITK segmentation software Hello everyone, I have checked a new example application into the Insight repository under Examples/SegmentationEditor. The SegmentationEditor is an interactive tool developed in ITK and VTK for semi-automated segmentation of image volumes. This is an expanded version of the software we (U of Utah) demonstrated at the June Insight developers meeting in Boston. As described in http://www.itk.org/HTML/SegmentationEditor.html: `The SE tool is a special editor which allows you to construct a labeled image using the output from the Insight watershed segmentation algorithm. Hand labeling of images is also supported. The goal of the software is to combine human interaction with automated image processing techniques to produce a better result than either technique can give on its own.' Directions for building/running the code can be found in Insight/Examples/SegmentationEditor/README.txt. Let me know of any problems building or running this software. 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 _______________________________________________ Insight-developers mailing list Insight-developers@public.kitware.com http://public.kitware.com/mailman/listinfo/insight-developers From bill.hoffman@kitware.com Wed Jul 31 18:34:58 2002 From: bill.hoffman@kitware.com (Bill Hoffman) Date: Wed, 31 Jul 2002 13:34:58 -0400 Subject: [Insight-developers] WIN32 or _WIN32 (Insight does not build with nmake) Message-ID: <5.0.2.1.0.20020731131203.045edba0@pop.nycap.rr.com> --=====================_12119907==_.ALT Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Insight gets the following error when building with nmake: C:\Hoffman\Insight\Code\Common\itkIntTypes.h(29) : error C2632: 'long' followed by 'long' is illegal C:\Hoffman\Insight\Code\Common\itkIntTypes.h(41) : error C2632: 'long' followed by 'long' is illegal NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. The problem is with cmake the dsp files add a -DWIN32 that is not done in the nmake Makefiles. While this may be a bug in cmake, the fix would be to remove the -DWIN32 from the dsp files, and not to add it to the nmake files. According the Microsoft documentation: _WIN32 Defined for applications for Win32®. Always defined. So, we should be looking for _WIN32 and not WIN32. itkWin32Header tries to fix this for cygwin: #ifndef __itkWIN32Header_h #define __itkWIN32Header_h // add in the Windows variants #if defined(__CYGWIN__) #ifndef WIN32 #define WIN32 1 #endif #ifndef _WIN32 #define _WIN32 1 #endif #endif But, I guess all of the WIN32 checks should be changed to _WIN32 which is done by the compiler. Looks like itkIntTypes is the only one with this problem. But as a rule we should check for _WIN32. -Bill --=====================_12119907==_.ALT Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Insight gets the following error when building with nmake:

C:\Hoffman\Insight\Code\Common\itkIntTypes.h(29) : error C2632: 'long' followed by 'long' is illegal
C:\Hoffman\Insight\Code\Common\itkIntTypes.h(41) : error C2632: 'long' followed by 'long' is illegal
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.


The problem is with cmake the dsp files add a -DWIN32 that is not done in the nmake Makefiles.   While this may be a bug in cmake, the fix would be to remove the -DWIN32 from the dsp files, and not to add it to the nmake files.  

According the Microsoft documentation:
_WIN32 Defined for applications for Win32®. Always defined.

So, we should be looking for _WIN32 and not WIN32.

itkWin32Header tries to fix this for cygwin:

#ifndef __itkWIN32Header_h
#define __itkWIN32Header_h

// add in the Windows variants

#if defined(__CYGWIN__)
#ifndef WIN32
#define WIN32 1
#endif
#ifndef _WIN32
#define _WIN32 1
#endif
#endif


But, I guess all of the WIN32 checks should be changed to _WIN32 which is done
by the compiler.  Looks like itkIntTypes is the only one with this problem.
But as a rule we should check for _WIN32.




-Bill
--=====================_12119907==_.ALT--