[Insight-users] Find largest connected object in a Volume
Miller, James V (Research)
millerjv at crd . ge . com
Tue, 1 Jul 2003 11:33:11 -0400
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_01C33FE5.17316CF0
Content-Type: text/plain;
charset="iso-8859-1"
I just added a new filter to the ITK repository that relabels an image. The
input would the output of any segmentation algorithm that creates a label
map. The ConnectedComponentImageFilter would be one such filter. Watershed
would another, etc. The filter is called RelabelComponentImageFilter and it
changes the labels in the image such that label 1 is assigned to the largest
object, label 2 is the next largest object, etc. Any single object can be
extracted using BinaryThresholdImageFilter by setting the LowerThreshold and
the UpperThreshold to the same value. In fact, any group of objects can be
extracted using BinaryThresholdImageFilter by having the LowerThreshold and
UpperThreshold span a group range (the ThresholdImageFilter can be used to
extract a range of objects without changing their labels again).
So using the RelabelComponentImageFilter in conjuction with a threshold
filter you can extract the largest object, the second largest object, or the
k largest objects.
Size is defined by area/volume/number of pixels, etc.
After the filter executes, you can query the number of objects, and the size
of each object.
Jim
-----Original Message-----
From: Miller, James V (Research) [mailto:millerjv at crd . ge . com]
Sent: Friday, June 27, 2003 1:34 PM
To: 'cspl'; insight-users at itk . org
Subject: RE: [Insight-users] Find largest connected object in a Volume
In Code/BasicFilters there are two classes ConnectedComponentImageFilter and
HardConnectedComponentImageFilter. The former is a rewrite of the latter to
use more of the ITK infrastructure. The latter may be removed soon.
The ConnectedComponentImageFilter will use 6-connectivity in a volume to
label the objects in the volume. Each connected object will have a unique
label.
However, this does not extract the largest connected object. You would need
a separate filter (that does not exist yet) to scan through the label map
and extract the largest object. As Luis suggested, you could a histogram of
the label map to determine which object is the "largest".
-----Original Message-----
From: cspl [mailto:affable at hd2 . dot . net . in]
Sent: Friday, June 27, 2003 2:19 AM
To: insight-users at itk . org
Subject: [Insight-users] Find largest connected object in a Volume
Hi Luis and all,
I am in need of help on connectivity filter. Let me explain my
requirment.
I have a volume of some slices. I have to find the largest object in the
entire volume. Initiallly i will threshold the image so that it will in
binary format. Then i have to use 6-connectivity of find the largest object
in the volume. The largest object should be labeled 1. Is there any filter
which solves my problem. I should use 6-connectivity. Please do suggest me
if there are other alternatives too.
Please help me in this regard.
Thanks in advance.
-Regards,
Sateesh.
------_=_NextPart_001_01C33FE5.17316CF0
Content-Type: text/html;
charset="iso-8859-1"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1141" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=225062615-01072003>I just
added a new filter to the ITK repository that relabels an image. The input would
the output of any segmentation algorithm that creates a label map. The
ConnectedComponentImageFilter would be one such filter. Watershed would
another, etc. The filter is called RelabelComponentImageFilter and it
changes the labels in the image such that label 1 is assigned to the largest
object, label 2 is the next largest object, etc. Any single object can be
extracted using BinaryThresholdImageFilter by setting the LowerThreshold and the
UpperThreshold to the same value. In fact, any group of objects can be
extracted using BinaryThresholdImageFilter by having the LowerThreshold and
UpperThreshold span a group range (the ThresholdImageFilter can be used to
extract a range of objects without changing their labels
again).</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=225062615-01072003>So
using the RelabelComponentImageFilter in conjuction with a threshold filter you
can extract the largest object, the second largest object, or the k largest
objects.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=225062615-01072003>Size
is defined by area/volume/number of pixels, etc.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=225062615-01072003>After
the filter executes, you can query the number of objects, and the size of each
object.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003>Jim</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=225062615-01072003></SPAN></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma
size=2>-----Original Message-----<BR><B>From:</B> Miller, James V (Research)
[mailto:millerjv at crd . ge . com]<SPAN class=225062615-01072003><FONT face=Arial
color=#0000ff> </FONT></SPAN><BR><B>Sent:</B> Friday, June 27, 2003 1:34
PM<BR><B>To:</B> 'cspl'; insight-users at itk . org<BR><B>Subject:</B> RE:
[Insight-users] Find largest connected object in a Volume<BR><BR></FONT></DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff size=2>In
Code/BasicFilters there are two classes ConnectedComponentImageFilter and
</FONT></SPAN></DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2>HardConnectedComponentImageFilter. The former is a rewrite of the
latter to use more of the ITK infrastructure. The latter may be removed
soon. </FONT></SPAN></DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff size=2>The
ConnectedComponentImageFilter will use 6-connectivity in a volume to label the
objects in the volume. Each connected object will have a unique
label.</FONT></SPAN></DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2>However, this does not extract the largest connected object. You
would need a separate filter (that does not exist yet) to scan through the
label map and extract the largest object. As Luis suggested, you could a
histogram of the label map to determine which object is the
"largest".</FONT></SPAN></DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=538382917-27062003><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma
size=2>-----Original Message-----<BR><B>From:</B> cspl
[mailto:affable at hd2 . dot . net . in]<BR><B>Sent:</B> Friday, June 27, 2003 2:19
AM<BR><B>To:</B> insight-users at itk . org<BR><B>Subject:</B> [Insight-users]
Find largest connected object in a Volume<BR><BR></FONT></DIV>
<DIV><FONT face=Arial size=2>Hi Luis and all,<BR> I am in
need of help on connectivity filter. Let me explain my
requirment.<BR> I have a volume of some slices. I have to find
the largest object in the entire volume. Initiallly i will threshold the
image so that it will in binary format. Then i have to use 6-connectivity of
find the largest object in the volume. The largest object should be labeled
1. Is there any filter which solves my problem. I should use
6-connectivity. Please do suggest me if there are other
alternatives too.<BR> <BR> Please help me
in this regard.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> Thanks in advance.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>-Regards,<BR>
Sateesh.</FONT></DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
------_=_NextPart_001_01C33FE5.17316CF0--