[ImageJ-devel] Fwd: Hist thresh toolbox license question

Gabriel Landini G.Landini at bham.ac.uk
Mon Feb 11 11:59:19 CST 2013

On Monday 11 Feb 2013 17:41:28 Johannes Schindelin wrote:
> In another mail thread (which I would merge with this one if I had more
> time), we asked Gabriel Landini (who would have been Cc:ed if this mail
> was in the same thread), who transformed your code into a GPLed
> ImageJ plugin, whether he would be willing to relicense the code so we
> would not have to rewrite it:
> http://imagej.net/pipermail/imagej-devel/2013-February/001390.html
> It was only after his positive answer that we realized that part of the
> code was derived from your GPLed code and we would require your
> willingness to relicense to use the transformed code.

Hi everybody,
Just to clarify, I did let Antti know that I was intending to port some of his 
Matlab code into Java for ImageJ and that was releases (as in his code) as 
GPL. Original exchange follows below.

You may want to contact Emre Celebi <emrecelebi1980 at gmail.com>
about some other methods included in the code. He was aware that I was 
implementing some of his methods from the the Fourier package (in sourceforge) 
in Java.


On Sun, 15 Mar 2009, Gabriel Landini wrote:

> Hello Antti,
> I found your excellent thresholding presentations and Matlab code in the
> web.
> I want to port some of the methods to ImageJ, but I have no Matlab, so I 
> have been trying to imagine what some of the code does.
> I implemented the Intermodes algorithm, but I get a threshold of 88 in the
> Cameraman image, while your presentation shows a value of 89.
> I checked and rechecked the code, I get 2 modes with values of 12 and 164
> (after 48 iterations) and so the threshold is 88.
> Am I missing some obvious detail (such as 1 being added to the threshold?).I
> do not see that in the Matlab code.
> I can send the java code if you wished to look at it.
> Many thanks in advance for any hints.
> Best wishes,
> Gabriel

Re: Threhsholds
From:	Antti Niemistö <ant at cs.tut.fi>
To:	Gabriel Landini <G.Landini at bham.ac.uk>
Date:	16/03/2009 20:28
Hello Gabriel,

It's great to hear that you are finding my little thresholding toolbox 

Are you sure that the cameraman image is exactly the same one as the one 
that I used? Mine is the one that came with MATLAB. Subtle differences in 
pixel values (that do not even affect what the image looks like) might 
affect the threshold that you get.

The modes that I get are 13 and 165, so yours are off by one. Could it be 
an indexing problem? That just crossed my mind since indexing starts from 
zero in Java (if I'm not mistaken).

Also, the convolution on line 38 of th_intermodes.m might be something 
that you implemented differently. The line is y = conv2(y,h,'same'); Since 
I use the option 'same', the output y is the samze size as the input y. 
Therefore, how the input y is padded has an effect on the output. MATLAB 
uses zero padding, so if you used some other padding, the threshold might 
end up being different.

Good luck!

Antti Niemistö


More information about the ImageJ-devel mailing list