[Insight-users] watershed segmantation

Zein Salah salah at gris . uni-tuebingen . de
Wed, 28 Aug 2002 11:57:50 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_0291_01C24E8A.220288C0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Hi friends,

I am trying to experiment with the watershed segmantation.
just by defining an object of the WatershedImageFilter, A large bulk of =
warnings and  12 errors appear!!!!!
my code is somthing like this:

#include "itkWatershedImageFilter.h"
...
...
typedef   itk::WatershedImageFilter< ImageType >         =
WatershedImageFilterType;
...
...
...

WatershedImageFilterType::Pointer watershed =3D =
WatershedImageFilterType::New();    // just commenting this=20
statement eleminates all warnings and errors.

1. Do any body have an idea about where the problem could be. Is ther a =
bug in this filter?? A draft of the errors and some of the warnings is =
below.
2. is the WatershedImageFilter is the class that one use for =
segmentation?? there is also WatershedSegmentor, Which is the one that I =
should use ??

Thanks in advanced for any help!!

Zein





 --------------------Configuration: GaussianFilter - Win32 =
Debug--------------------
Compiling...
Tester.cpp
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\xmemory(56) : =
warning C4786: =
'?address@?$allocator@U?$pair@V?$hash_map@KUflat_region_t@?$Boundary@M$02=
@watershed@itk@@U?$hash@K@4@U?$equal_to@K@std@@V?$allocator@D@7@@itk@@V12=
@@std@@@std@@QBEPAU?
$pair@V?$hash_map@KUflat_region_t@?$Boundary@M$02@watershed@itk@@U?$hash@=
K@4@U?$equal_to@K@std@@V?$allocator@D@7@@itk@@V12@@2@AAU32@@Z' : =
identifier was truncated to '255' characters in the browser information
        C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\vector(24) =
: see reference to class template instantiation 'std::allocator<struct =
std::pair<class itk::hash_map<unsigned long,struct =
itk::watershed::Boundary<float,3>::flat_region_t,struc
t itk::hash<unsigned long>,struct std::equal_to<unsigned long>,class =
std::allocator<char> >,class itk::hash_map<unsigned long,struct =
itk::watershed::Boundary<float,3>::flat_region_t,struct =
itk::hash<unsigned long>,struct std::equal_to<unsigned long>

...
...
...
...
...

const ,itk::watershed::SegmentTable<float>::segment_t>
,unsigned long,itk::hash<unsigned =
long>,std::select1st<std::pair<unsigned long const =
,itk::watershed::SegmentTable<float>::segment_t> =
>,std::equal_to<unsigned long>,std::allocator<char> >,bool>' : =
identifier was truncated to '255' characters in the=20
debug information
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\utility(21) : =
warning C4786: 'std::pair<itk::hashtable_iterator<std::pair<unsigned =
long const ,bool>,unsigned long,itk::hash<unsigned =
long>,std::select1st<std::pair<unsigned long const ,bool> >,s
td::equal_to<unsigned long>,std::allocator<char> =
>,bool>::pair<itk::hashtable_iterator<std::pair<unsigned long const =
,bool>,unsigned long,itk::hash<unsigned =
long>,std::select1st<std::pair<unsigned long const ,bool> =
>,std::equal_to<unsigned long>,std
::allocator<char> >,bool>' : identifier was truncated to '255' =
characters in the debug information
Linking...
   Creating library Debug/ZeinTester.lib and object Debug/ZeinTester.exp
Tester.obj : error LNK2001: unresolved external symbol "public: virtual =
void __thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class =
itk::Object *,class itk::EventObject const &)" =
(?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXP
AVObject@2@ABVEventObject@2@@Z)
Tester.obj : error LNK2001: unresolved external symbol "public: virtual =
void __thiscall itk::WatershedMiniPipelineProgressCommand::Execute(class =
itk::Object const *,class itk::EventObject const &)" =
(?Execute@WatershedMiniPipelineProgressCommand@itk@
@UAEXPBVObject@2@ABVEventObject@2@@Z)
Tester.obj : error LNK2001: unresolved external symbol "public: void =
__thiscall itk::watershed::EquivalencyTable::Flatten(void)" =
(?Flatten@EquivalencyTable@watershed@itk@@QAEXXZ)
Tester.obj : error LNK2001: unresolved external symbol "public: bool =
__thiscall itk::watershed::EquivalencyTable::Add(unsigned long,unsigned =
long)" (?Add@EquivalencyTable@watershed@itk@@QAE_NKK@Z)
Tester.obj : error LNK2001: unresolved external symbol "protected: =
virtual void __thiscall =
itk::watershed::EquivalencyTable::UpdateOutputInformation(void)" =
(?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ)
Tester.obj : error LNK2001: unresolved external symbol "protected: =
virtual void __thiscall =
itk::watershed::EquivalencyTable::PrintSelf(class =
std::basic_ostream<char,struct std::char_traits<char> > &,class =
itk::Indent)const " (?PrintSelf@EquivalencyT
able@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@V=
Indent@3@@Z)
Tester.obj : error LNK2001: unresolved external symbol "protected: =
virtual void __thiscall =
itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(void)" =
(?UpdateOutputInformation@OneWayEquivalencyTable@watershed@itk@@MAEXXZ)
Tester.obj : error LNK2001: unresolved external symbol "protected: =
virtual void __thiscall =
itk::watershed::OneWayEquivalencyTable::PrintSelf(class =
std::basic_ostream<char,struct std::char_traits<char> > &,class =
itk::Indent)const " (?PrintSelf@OneWay
EquivalencyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits@D@=
std@@@std@@VIndent@3@@Z)
Tester.obj : error LNK2001: unresolved external symbol "public: unsigned =
long __thiscall =
itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned =
int)const " =
(?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z)
Tester.obj : error LNK2001: unresolved external symbol "public: void =
__thiscall itk::watershed::OneWayEquivalencyTable::Flatten(void)" =
(?Flatten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ)
Tester.obj : error LNK2001: unresolved external symbol "public: bool =
__thiscall itk::watershed::OneWayEquivalencyTable::Add(unsigned =
long,unsigned long)" =
(?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z)
Debug/ZeinTester.exe : fatal error LNK1120: 11 unresolved externals
Error executing link.exe.
Creating browse info file...

ZeinTester.exe - 12 error(s), 41 warning(s)
=20

------=_NextPart_000_0291_01C24E8A.220288C0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2715.400" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Hi friends,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I am trying to experiment with the =
watershed=20
segmantation.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>just by defining an object of the=20
WatershedImageFilter, A large bulk of warnings and&nbsp;&nbsp;12 errors=20
appear!!!!!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>my code is somthing like =
this:</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>#include=20
"itkWatershedImageFilter.h"<BR></FONT><FONT face=3DArial color=3D#0000ff =

size=3D2>...</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>...</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>typedef&nbsp;&nbsp;=20
itk::WatershedImageFilter&lt; ImageType=20
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
WatershedImageFilterType;</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>...</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>...</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>...</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT=20
color=3D#0000ff>WatershedImageFilterType::Pointer watershed =3D=20
WatershedImageFilterType::New();</FONT>&nbsp;&nbsp;&nbsp; // just =
commenting=20
this </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>statement eleminates all warnings and=20
errors.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>1. Do any body have an idea about where =
the problem=20
could be. Is ther a bug in this filter?? A draft&nbsp;of the errors and =
some of=20
the warnings is below.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>2. is the WatershedImageFilter is the =
class that=20
one use for segmentation?? there is also WatershedSegmentor, Which is =
the one=20
that I should use ??</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;</DIV>
<DIV>Thanks in advanced for any help!!</DIV>
<DIV>&nbsp;</DIV>
<DIV>Zein<BR></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR>&nbsp;--------------------Configuration: GaussianFilter - Win32 =

Debug--------------------<BR>Compiling...<BR>Tester.cpp<BR>C:\Program=20
Files\Microsoft Visual Studio\VC98\INCLUDE\xmemory(56) : warning C4786: =
<A=20
href=3D"mailto:'?address@?$allocator@U?$pair@V?$hash_map@KUflat_region_t@=
?$Boundary@M$02@watershed@itk@@U?$hash@K@4@U?$equal_to@K@std@@V?$allocato=
r@D@7@@itk@@V12@@std@@@std@@QBEPAU">'?address@?$allocator@U?$pair@V?$hash=
_map@KUflat_region_t@?$Boundary@M$02@watershed@itk@@U?$hash@K@4@U?$equal_=
to@K@std@@V?$allocator@D@7@@itk@@V12@@std@@@std@@QBEPAU</A>?<BR><A=20
href=3D"mailto:$pair@V?$hash_map@KUflat_region_t@?$Boundary@M$02@watershe=
d@itk@@U?$hash@K@4@U?$equal_to@K@std@@V?$allocator@D@7@@itk@@V12@@2@AAU32=
@@Z'">$pair@V?$hash_map@KUflat_region_t@?$Boundary@M$02@watershed@itk@@U?=
$hash@K@4@U?$equal_to@K@std@@V?$allocator@D@7@@itk@@V12@@2@AAU32@@Z'</A> =

: identifier was truncated to '255' characters in the browser=20
information<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C:\Program=20
Files\Microsoft Visual Studio\VC98\INCLUDE\vector(24) : see reference to =
class=20
template instantiation 'std::allocator&lt;struct std::pair&lt;class=20
itk::hash_map&lt;unsigned long,struct=20
itk::watershed::Boundary&lt;float,3&gt;::flat_region_t,struc<BR>t=20
itk::hash&lt;unsigned long&gt;,struct std::equal_to&lt;unsigned =
long&gt;,class=20
std::allocator&lt;char&gt; &gt;,class itk::hash_map&lt;unsigned =
long,struct=20
itk::watershed::Boundary&lt;float,3&gt;::flat_region_t,struct=20
itk::hash&lt;unsigned long&gt;,struct std::equal_to&lt;unsigned=20
long&gt;<BR></DIV>
<DIV>...</DIV>
<DIV>...</DIV>
<DIV>...</DIV>
<DIV>...</DIV>
<DIV>...</DIV>
<DIV>&nbsp;</DIV>
<DIV>const=20
,itk::watershed::SegmentTable&lt;float&gt;::segment_t&gt;<BR>,unsigned=20
long,itk::hash&lt;unsigned =
long&gt;,std::select1st&lt;std::pair&lt;unsigned long=20
const ,itk::watershed::SegmentTable&lt;float&gt;::segment_t&gt;=20
&gt;,std::equal_to&lt;unsigned long&gt;,std::allocator&lt;char&gt;=20
&gt;,bool&gt;' : identifier was truncated to '255' characters in the =
<BR>debug=20
information<BR>C:\Program Files\Microsoft Visual =
Studio\VC98\INCLUDE\utility(21)=20
: warning C4786: =
'std::pair&lt;itk::hashtable_iterator&lt;std::pair&lt;unsigned=20
long const ,bool&gt;,unsigned long,itk::hash&lt;unsigned=20
long&gt;,std::select1st&lt;std::pair&lt;unsigned long const ,bool&gt;=20
&gt;,s<BR>td::equal_to&lt;unsigned long&gt;,std::allocator&lt;char&gt;=20
&gt;,bool&gt;::pair&lt;itk::hashtable_iterator&lt;std::pair&lt;unsigned =
long=20
const ,bool&gt;,unsigned long,itk::hash&lt;unsigned=20
long&gt;,std::select1st&lt;std::pair&lt;unsigned long const ,bool&gt;=20
&gt;,std::equal_to&lt;unsigned long&gt;,std<BR>::allocator&lt;char&gt;=20
&gt;,bool&gt;' : identifier was truncated to '255' characters in the =
debug=20
information<BR>Linking...<BR>&nbsp;&nbsp; Creating library =
Debug/ZeinTester.lib=20
and object Debug/ZeinTester.exp<BR>Tester.obj : error LNK2001: =
unresolved=20
external symbol "public: virtual void __thiscall=20
itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object =
*,class=20
itk::EventObject const &amp;)" (<A=20
href=3D"mailto:?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXP">=
?Execute@WatershedMiniPipelineProgressCommand@itk@@UAEXP</A><BR><A=20
href=3D"mailto:AVObject@2@ABVEventObject@2@@Z">AVObject@2@ABVEventObject@=
2@@Z</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "public: virtual void =
__thiscall=20
itk::WatershedMiniPipelineProgressCommand::Execute(class itk::Object =
const=20
*,class itk::EventObject const &amp;)" (<A=20
href=3D"mailto:?Execute@WatershedMiniPipelineProgressCommand@itk">?Execut=
e@WatershedMiniPipelineProgressCommand@itk</A>@<BR>@UAEXPBVObject@2@ABVEv=
entObject@2@@Z)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "public: void __thiscall=20
itk::watershed::EquivalencyTable::Flatten(void)" (<A=20
href=3D"mailto:?Flatten@EquivalencyTable@watershed@itk@@QAEXXZ">?Flatten@=
EquivalencyTable@watershed@itk@@QAEXXZ</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "public: bool __thiscall=20
itk::watershed::EquivalencyTable::Add(unsigned long,unsigned long)" (<A=20
href=3D"mailto:?Add@EquivalencyTable@watershed@itk@@QAE_NKK@Z">?Add@Equiv=
alencyTable@watershed@itk@@QAE_NKK@Z</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "protected: virtual void =
__thiscall=20
itk::watershed::EquivalencyTable::UpdateOutputInformation(void)" (<A=20
href=3D"mailto:?UpdateOutputInformation@EquivalencyTable@watershed@itk@@M=
AEXXZ">?UpdateOutputInformation@EquivalencyTable@watershed@itk@@MAEXXZ</A=
>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "protected: virtual void =
__thiscall=20
itk::watershed::EquivalencyTable::PrintSelf(class=20
std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; =
&amp;,class=20
itk::Indent)const " (<A=20
href=3D"mailto:?PrintSelf@EquivalencyT">?PrintSelf@EquivalencyT</A><BR><A=
=20
href=3D"mailto:able@watershed@itk@@MBEXAAV?$basic_ostream@DU?$char_traits=
@D@std@@@std@@VIndent@3@@Z">able@watershed@itk@@MBEXAAV?$basic_ostream@DU=
?$char_traits@D@std@@@std@@VIndent@3@@Z</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "protected: virtual void =
__thiscall=20
itk::watershed::OneWayEquivalencyTable::UpdateOutputInformation(void)" =
(<A=20
href=3D"mailto:?UpdateOutputInformation@OneWayEquivalencyTable@watershed@=
itk@@MAEXXZ">?UpdateOutputInformation@OneWayEquivalencyTable@watershed@it=
k@@MAEXXZ</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "protected: virtual void =
__thiscall=20
itk::watershed::OneWayEquivalencyTable::PrintSelf(class=20
std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; =
&amp;,class=20
itk::Indent)const " (<A=20
href=3D"mailto:?PrintSelf@OneWay">?PrintSelf@OneWay</A><BR><A=20
href=3D"mailto:EquivalencyTable@watershed@itk@@MBEXAAV?$basic_ostream@DU?=
$char_traits@D@std@@@std@@VIndent@3@@Z">EquivalencyTable@watershed@itk@@M=
BEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@VIndent@3@@Z</A>)<BR>T=
ester.obj=20
: error LNK2001: unresolved external symbol "public: unsigned long =
__thiscall=20
itk::watershed::OneWayEquivalencyTable::RecursiveLookup(unsigned =
int)const " (<A=20
href=3D"mailto:?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBE=
KI@Z">?RecursiveLookup@OneWayEquivalencyTable@watershed@itk@@QBEKI@Z</A>)=
<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "public: void __thiscall=20
itk::watershed::OneWayEquivalencyTable::Flatten(void)" (<A=20
href=3D"mailto:?Flatten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ">?Fl=
atten@OneWayEquivalencyTable@watershed@itk@@QAEXXZ</A>)<BR>Tester.obj=20
: error LNK2001: unresolved external symbol "public: bool __thiscall=20
itk::watershed::OneWayEquivalencyTable::Add(unsigned long,unsigned =
long)" (<A=20
href=3D"mailto:?Add@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z">?Add=
@OneWayEquivalencyTable@watershed@itk@@QAE_NKK@Z</A>)<BR>Debug/ZeinTester=
.exe=20
: fatal error LNK1120: 11 unresolved externals<BR>Error executing=20
link.exe.<BR>Creating browse info file...</DIV>
<DIV>&nbsp;</DIV>
<DIV>ZeinTester.exe - 12 error(s), 41=20
warning(s)<BR>&nbsp;</FONT></DIV></BODY></HTML>

------=_NextPart_000_0291_01C24E8A.220288C0--