[Insight-developers] PlaheImageFilter --> AdaptiveHistogramEqualizationImageFilter
Miller, James V (Research)
millerjv at crd . ge . com
Wed, 18 Jun 2003 11:26:22 -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_01C335AD.F905258F
Content-Type: text/plain;
charset="iso-8859-1"
I started using the PlaheImageFilter (Power law adaptive histogram
equalization image filter) and discovered numerous problems with the filter.
1. The only documentation was a reference to the original paper.
2. With respect to the original paper, the intensity mapping function
may have been missing a term. (There are some equivalence classes in these
mapping functions so this may not have been a problem).
3. The filter inverted the intensities.
4. The filter did not properly handle regions.
5. The filter did not process the boundary of the image
6. There was code to produce a lookup table that always failed.
7. The lookup table version of the algorithm was 50% slower than the
brute force version.
I spent the last couple of days cleaning up this filter. I "think" it is
producing reasonable output now. I changed it to use NeighborhoodIterators,
set it up to support streaming, put in a flag to turn on/off the
lookup-table optimization, changed the optimization to be faster, changed
the API to be consistent with the rest of the toolkit, create a regression
test, and documented the filter as best I could.
Given that the original implementation was producing (obvious) incorrect
results, I doubt anyone has been using this filter. I think part of reason
people haven't used it is that no one recognizes the name. I have changed
the name of the filter to AdaptiveHistogramEqualizationImageFilter in the
repository (copied the Plahe file in the repository so we have the history).
I have not removed the original PlaheImageFilter yet but I plan to do so
soon (perhaps later this afternoon).
If you have been using the Plahe filter, you will now get markedly different
results.
If you have not been using the Plahe filter, you might want to check it out.
The filter can produce results that range from a classical adaptive
histogram equalization to an unsharp mask operation. (Though the filter
cannot produce a classical histogram equalization image without being
exceptionally slow).
Jim Miller
_____________________________________
Visualization & Computer Vision
GE Research
Bldg. KW, Room C218B
P.O. Box 8, Schenectady NY 12301
millerjv at research . ge . com <mailto:millerjv at research . ge . com>
james . miller at research . ge . com
(518) 387-4005, Dial Comm: 8*833-4005,
Cell: (518) 505-7065, Fax: (518) 387-6981
------_=_NextPart_001_01C335AD.F905258F
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></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=019450615-18062003>I started using the
PlaheImageFilter (Power law adaptive histogram equalization image filter) and
discovered numerous problems with the filter.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<OL>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>The only
documentation was a reference to the original paper.</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>With respect to the
original paper, the intensity mapping function may have been missing a
term. (There are some equivalence classes in these mapping functions so
this may not have been a problem).</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>The filter inverted
the intensities.</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>The filter did not
properly handle regions.</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>The filter did not
process the boundary of the image</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>There was code to
produce a lookup table that always failed.</SPAN></FONT></LI>
<LI><FONT face=Arial size=2><SPAN class=019450615-18062003>The lookup table
version of the algorithm was 50% slower than the brute force
version.</SPAN></FONT></LI></OL>
<DIV><FONT face=Arial size=2><SPAN class=019450615-18062003>I spent the last
couple of days cleaning up this filter. I "think" it is producing
reasonable output now. I changed it to use NeighborhoodIterators, set it
up to support streaming, put in a flag to turn on/off the lookup-table
optimization, changed the optimization to be faster, changed the API to be
consistent with the rest of the toolkit, create a regression test, and
documented the filter as best I could.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=019450615-18062003>Given that the
original implementation was producing (obvious) incorrect results, I doubt
anyone has been using this filter. I think part of reason people haven't
used it is that no one recognizes the name. I have changed the name of the
filter to AdaptiveHistogramEqualizationImageFilter in the repository
(copied the Plahe file in the repository so we have the history). I have
not removed the original PlaheImageFilter yet but I plan to do so soon (perhaps
later this afternoon).</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=019450615-18062003>If you have been
using the Plahe filter, you will now get markedly different
results.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=019450615-18062003>If you have not been
using the Plahe filter, you might want to check it out. The filter can
produce results that range from a classical adaptive histogram equalization to
an unsharp mask operation. (Though the filter cannot produce a classical
histogram equalization image without being exceptionally
slow).</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN
class=019450615-18062003></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>
<P style="MARGIN: 0in 0in 0pt"><B><SPAN
style="COLOR: navy; FONT-FAMILY: 'Comic Sans MS'">Jim Miller</SPAN></B>
<BR><B><I><SPAN
style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Arial">_____________________________________</SPAN></I></B><BR><EM><SPAN
style="FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">Visualization &
Computer Vision</SPAN></EM><I><SPAN
style="FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial"><BR><EM>GE
Research</EM><BR><EM>Bldg. KW, Room C218B</EM><BR><EM>P.O. Box 8, Schenectady NY
12301</EM><BR><BR></SPAN></I><EM><U><SPAN
style="FONT-SIZE: 7.5pt; COLOR: blue"><A
href="mailto:millerjv at research . ge . com">millerjv at research . ge . com</A></SPAN></U></EM></P>
<P style="MARGIN: 0in 0in 0pt"><EM><U><SPAN
style="FONT-SIZE: 7.5pt; COLOR: blue">james . miller at research . ge . com</SPAN></U></EM><BR><I><SPAN
style="FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">(518) 387-4005, Dial
Comm: 8*833-4005, </SPAN></I><BR><I><SPAN
style="FONT-SIZE: 7.5pt; COLOR: black; FONT-FAMILY: Arial">Cell: (518) 505-7065,
Fax: (518) 387-6981</SPAN></I> </P></DIV>
<DIV> </DIV></BODY></HTML>
------_=_NextPart_001_01C335AD.F905258F--