[Insight-users] Contribution for itk

lucantiga at softhome.net lucantiga at softhome.net
Mon, 1 Mar 2004 18:47:57 +0100 (CET)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime at docserver.cac.washington.edu for more info.

--8323328-1019419272-1078162676=:7276
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.44.0403011839022.7276 at localhost.localdomain>

Hi Luis,
 here's the code along with the tests. The license is fine with me, and 
it's not a big deal of code, anyway :-)
As to the credits,
Luca Antiga, 
Bioengineering Department, Mario Negri Institute (BG) Italy.
email: antiga at marionegri.it 
homepage: http://villacamozzi.marionegri.it/~luca
Don't hesitate to contact me for any clarification.

Luca


On Sat, 28 Feb 2004, Luis Ibanez wrote:

> 
> Hi Luca,
> 
> Thanks for your willingness to contribute code to ITK.
> 
> We will be happy to add these classes to the toolkit.
> Could you please send them as attachments to and email ?
> 
> and if you already have a simple test for them, that will
> be greatly speed up the process.
> 
> Take a look at the ITK license and make sure that you
> are comfortable with it since your code will be subject
> to this license once it is integrated in the toolkit.
> 
>        http://www.itk.org/HTML/Copyright.htm
> 
> 
> Please also include information regarding how do you want
> the credits to be specified in the class documentation.
> We typically add the name of the author and the institution.
> (you may or may not want you add your email and a web page).
> 
> 
> 
> Thanks
> 
> 
>     Luis
> 
> 
> 
> -------------------------------
> lucantiga at softhome.net wrote:
> 
> > Hi Luis,
> >  if you like them and find them useful, I have these classes around I'd 
> > like to contribute to itk 
> > 
> > 1. itk::Statistics::OtsuThresholdsCalculator: class in the Statistics
> > namespace which computes N thresholds by maximizing the between-class
> > variance of the classes. Input: itkHistogram. Output: vector of
> > thresholds.
> >  In fact there's already an OtsuThresholdImageCalculator, but it's a bit
> > odd: it's derived from itk::Object, it takes in input an itk::Image
> > (therefore you can't work with subsamples) and it's limited to 1
> > threshold.
> > 
> > 2. itk::Statistics::HistogramAlgorithmBase: base class for the above 
> > class, which behaves like SampleAlgorithmBase.
> > 
> > 3. itk::ThresholdLabelerImageFilter: derived from UnaryFunctorImageFilter. 
> > It takes a vector of sorted thresholds in input (e.g., the output of 
> > OtsuThresholdImageCalculator) and produces a labeled image in output. One 
> > can specify the label offset.
> > 
> > Let me know and I'll mail them to you
> > 
> > Ciao
> > 
> > Luca
> > 
> 
> 
> 

--8323328-1019419272-1078162676=:7276
Content-Type: APPLICATION/X-GZIP; NAME="OtsuAndThresholdLabeler.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0403011837560.7276 at localhost.localdomain>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="OtsuAndThresholdLabeler.tar.gz"

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
H2d1OtAvyOYpdb6l82vaqUB6Mq8mp/TnJc0sgf0FKTNZW7I4aSbJ/aHEkjZz
qXyMduyXyMYo3M45rSV5YJo8JzaOLI150b+K3IfZISgs8ljPFEDmIrhOOy0x
guq0Wwt5X0rQLWkg2rkODXqlUfm7Q7W2oT+TYn21en7uzjVa2FjY3SUlgx0q
0tk5iZpeMYfCB6GNt2xclrhCYQ9qhzR6HYz+ElyCiOXojNPZ7I5r9PzM00nY
4owLSxPa5dVCciGK+DkCvwTVIoMEY2PjhIuVSQrI8Fy7IFJGnu/BhoEbC+7b
IN1jsTw4DLnjcLsXhUg+7x9YsLc4iJKmg54uUNgr+lGNndHNfIyltb7whEY7
RymkNzTz/Q3NxMpMnGo8sWQwaoFh90vT/dUWJ9sj5dn2yKqnIiU6vu1AZG3L
/Sc+q9t/q2b/W2j/dV/s7Rr2X7ezvf79h0d51vbf2v77xuy/Zcw/7bhlQb1l
f/+hYN4tSv1Xau4s/wMBvV6ZriPOUwqablu7wlmOAwvtWwWRRzzu4Deac22J
PGX6X6kx0Ca20w2jnn6WIfV8I8iZt32KF1VimrSeaq2yvAt48PQnUNjQOBkB
0ZOfjmSoBWzBmCoEj4Ejb0z58bDU8luav3115dCqyX1G/t8hjZOWu4IWsGD/
3+t08/y/e5023v/YXuf/fZznq+7/n7n7l+z9xs5v2/dLd/0v3fO/5o7/xZv9
V9nnv7EtXtmRf/OC7e6veIDLLzuU/w7T8ml82elttQirYx0w8d0mcadO9Bw/
X//xKc8yxX5axA+dpJAeVfUFQi+9Xi5/lQ39wGzXJB3Sz7e9DJT2BvZRSwor
o8o7epP9sIeWwUdJNmu2wYRRrEs8zmYpgeFv6zWmBN7badgQKSRLYc1ZxN5L
DLFZvg2Ly8nb5CAw9wpLV8He59X4+70dVgAlShKEQTZaFi/TVKA11Y5yB+kW
jyFQL17zo/KWMo+Vvw7Dgxv1HxIy3wmYzJHFoc/TeHo+ctyr+k+tdsNa0Nkr
K9nulpXscGg1UuBLkAwXeMGhi+k/tJHnvMTcffx8IMa0sBw82djkrVvyIoQx
r4uTeu0TmRzLzNW1L/JaqUpcOdvwa8D5d7IooZbI18iwNiel12O66rkn0b8W
+AuqjiTu1xJ5UUAl4tc55sodjglLv5qh2Cf156ziJiNiA0PL1PIDIits8Aq2
CDM2yjM1YVNHsIB6/8O8ByKz9MnsLiIOdxNkjRahW5InTAtaEGPnV2IQRKWg
K80bos1t3/gZHkUIi4VUUZwLw9BeCZCubM4EJXZS0n6zXzzByNhXc9IvhFLM
IVIvEplftYnuVJOkDKb0sStJuJzEndbZRGRXiITL/hmGNKsLjMkzF+wINHGg
zGofLaK+8ls1GprILKV4K+nUhQRmSc3naOJgKj+eZlJwLwbW8zSbGWiWhcdN
/Dsw0TCuJ6GKuLZdjGNWsZLgSI2H2di4NO9s6SPhSa55B/j5n/8kxQr9rILl
Qlc2MC33piWtaJYe7DveREVMThhqfexGIOYMnYAGiVfALHNn1C9bHraG4kjq
1f8MhuevjwZvPpy+UvjBggbH1oKGCunsw/ExaJ7onfirbZr1s/zzefEfq7kA
FuT/QQ+A8vvfLP5jb29vbf8/xrP2/6/9/9+e/59w1/64fv727Pj846vTRu37
eeRczBwcaIB3EepIM4z5JT2y8+KnPdLI3JugVxDDjcBkV8GFsCjsQngRFgjC
OtE9CUS6EkhDuHi5rsPzz4Q+2Ks4ABb1w8cZK0ltMB5dpLDJI6djmd3GiwQs
2JJD12NR63mmG6YhbeWXVbTL7FmyaDQQhWKmuznKI811hYuTYayHlWtmAqOQ
EYzdzBDok/xKv9mT0tzsRgUgyhQQmrnL8niz/EfM2oWlNecZflgAdI0YCGBy
zjG9HfLkAPAJSHR/326S9sPDvqW25kphdbe7TbLdtddGiRcG3EBnH7nqhJ/Q
3DuTnoyG/p6hVGfocGvfhCtNIy97D6iYlTIDKK/FrJU3eLkFb6jwHKgcxzrv
3Vb/ZTqZYGxadUWQn6ErjBbhYeKenO2u9Dj9wbLJ/lROA3EowuaM3PH54FEN
Fk9N6TyKj8wa5mZo/l3349jekzsvTxYqPysuGG6WWwp+Kivo7JWVdHeyQQtf
DMpY6riScaVSXpKBocLt1G7tlridygq6ZQXbrICjqdhqIvVtHnpShamSE6FG
VO+Eili7UVrYrSrclk4xQJDnPCj4PEIZfrYjK/J8CAbaptzpi2rMc8k+qSQm
GwJuw1reWVDeXVC+rZZzpPFX3OR9XyblakaYk1fG1gVvGOPGgbjdykzr7A2Q
KWNW+UtxIiAqq/KdUidzmGXFTfzSIKr1jUXC5buvvGEi4bmGTLkk5K4yuUtw
eSS9k4Y86DOfWj2XUE1FbskBM99iOAwzN+Z37NUgPkos3ks1jou76+rCNeCp
KY5VDx3/fQeeeC8SWR/MHa8qAE4fU9Pc+uRmGAmNRIi1wst8w/DVIqC8pWq2
bWh1c2+ZQtOSarYs13FJXTXKTFkMup+s0PDL/GPLe8hQrZBuKpFAxQVKunhA
z/QLnkwQpYwUJzaHF2Fr0w1T5tJu/5uvOO03Og6KPMkWnjFhimPwqy7EiWxM
E/5DKHwecEWKKqqb3e6uMxx2pre94LXLIVodfUy7Lrr6xO9lrebq02rra7dY
ee3cWz/rZ/2sn/WzftbP+lk/62f9rJ/1s37Wz/pZP+rz/31mxZYAoAAA
--8323328-1019419272-1078162676=:7276--