Running a Java7-only ImageJ plugin under OSX

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Running a Java7-only ImageJ plugin under OSX

lechristophe
Hi,

Sorry for the duplicates, I'm a bit lost as regards to merging and
consolidations in the Fiji / ImageJ / ImageJdevel mailing lists. Did
Fiji-devel merge into ImageJ-devel in the end ? What about
ImageJ/Fiji-users ?


I come to my point. I would like to test a super-resolution plugin, GraspJ,
under OSX :
http://code.google.com/p/graspj/

It is a nice super-resolution package for peak detection, fitting (using
GPU computing), image reconstruction (using correct uncertainty-sized
gaussian spots) and drift correction without fiduciary markers (using
cross-correlation between subsets of the data). It requires Java 7 and
OpenCL. I saw it presented by its author, Norman Brede, it is his work as
an undergraduate at ICFO in Barcelona if I understood correctly.

The problem is, I can't get ImageJ to use Java 7 under OSX. I downloaded
the newest Java SE 7u4 jdk for OSX here:
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.html
installed it and selected Java 7 as the first choice in the Java
preferences, but neither Fiji nor ImageJ uses Java 7 when launched (they
use the Java 6 installed on my machine).

Johannes (Schindelin) told me the Fiji launcher for OSX has Java 1.6
hardcoded and doesn't take into account the system-wide Java preferences.
Is it the same for plain ImageJ ? Could I force ImageJ to use Java 7?

Thanks for your help,


Christophe Leterrier

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Running a Java7-only ImageJ plugin under OSX

Kenneth Sloan
I'm sure it's in plain sight somewhere - but can someone please point me
at an implementation of 3D Mathematical Morphology operators (acting on a stack
of Binary images)?

--
Kenneth Sloan
[hidden email]

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Running a Java7-only ImageJ plugin under OSX

Thomas Boudier
Hi,

You can use 3D minimum and maximum filters, have a look to
http://imagejdocu.tudor.lu/doku.php?id=plugin:filter:3d_filters:start or
use the latest ImageJ version (1.47a). I have some other morphological
stuff in development if you're interested in.

best,

Thomas


On 18/07/2012 08:02, Kenneth Sloan wrote:

> I'm sure it's in plain sight somewhere - but can someone please point me
> at an implementation of 3D Mathematical Morphology operators (acting on a stack
> of Binary images)?
>
> --
> Kenneth Sloan
> [hidden email]
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
   /**********************************************************/
      Thomas Boudier, MCU Université Pierre et Marie Curie,
      Modélisation Cellulaire et Imagerie Biologique (EE1),
      IFR 83, Bat B 7ème étage, porte 723, Campus Jussieu.
      Tel : 01 44 27 46 92   Fax : 01 44 27 22 91
/*******************************************************/

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

3D min/max filters in 1.47a - where can I find them, please?

Kenneth Sloan
Perfect!  Thanks.  One free drink in Luxembourg!

oops...I updated to 1.47a, but I can't seem to find the 3D min/max filters.  I apologize for being dense, but
could you please point the way?

Or, should I just download the two .jar files and put them in plugins?

Min/Max are really all I need right now - I have a *very* complicated 3D object that I'm trying to simplify for 3D printing.

I was all set to write the 3D min/max filters.  Now I can turn my attention to the problem of making the (simplified) volume
into a STL file.  I don't suppose anyone has done *that* yet?  Alas, I need a guaranteed watertight surface (or collection of surfaces)

On Jul 18, 2012, at 02:31 , Thomas Boudier wrote:

> Hi,
>
> You can use 3D minimum and maximum filters, have a look to http://imagejdocu.tudor.lu/doku.php?id=plugin:filter:3d_filters:start or use the latest ImageJ version (1.47a). I have some other morphological stuff in development if you're interested in.
>
> best,
>
> Thomas
>
>
> On 18/07/2012 08:02, Kenneth Sloan wrote:
>> I'm sure it's in plain sight somewhere - but can someone please point me
>> at an implementation of 3D Mathematical Morphology operators (acting on a stack
>> of Binary images)?
>>
>> --
>> Kenneth Sloan
>> [hidden email]
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>
> --
>  /**********************************************************/
>     Thomas Boudier, MCU Université Pierre et Marie Curie,
>     Modélisation Cellulaire et Imagerie Biologique (EE1),
>     IFR 83, Bat B 7ème étage, porte 723, Campus Jussieu.
>     Tel : 01 44 27 46 92   Fax : 01 44 27 22 91
> /*******************************************************/
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
Kenneth Sloan
[hidden email]

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Kenneth Sloan
Found them!  

Now...how about Binary Stack -> STL (with manifold/watertight guarantees?)

3D connected component analysis?


On Jul 18, 2012, at 10:07 , Kenneth Sloan wrote:

> Perfect!  Thanks.  One free drink in Luxembourg!
>
> oops...I updated to 1.47a, but I can't seem to find the 3D min/max filters.  I apologize for being dense, but
> could you please point the way?
>
> Or, should I just download the two .jar files and put them in plugins?
>
> Min/Max are really all I need right now - I have a *very* complicated 3D object that I'm trying to simplify for 3D printing.
>
> I was all set to write the 3D min/max filters.  Now I can turn my attention to the problem of making the (simplified) volume
> into a STL file.  I don't suppose anyone has done *that* yet?  Alas, I need a guaranteed watertight surface (or collection of surfaces)
>
> On Jul 18, 2012, at 02:31 , Thomas Boudier wrote:
>
>> Hi,
>>
>> You can use 3D minimum and maximum filters, have a look to http://imagejdocu.tudor.lu/doku.php?id=plugin:filter:3d_filters:start or use the latest ImageJ version (1.47a). I have some other morphological stuff in development if you're interested in.
>>
>> best,
>>
>> Thomas
>>
>>
>> On 18/07/2012 08:02, Kenneth Sloan wrote:
>>> I'm sure it's in plain sight somewhere - but can someone please point me
>>> at an implementation of 3D Mathematical Morphology operators (acting on a stack
>>> of Binary images)?
>>>
>>> --
>>> Kenneth Sloan
>>> [hidden email]
>>>
>>> --
>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>
>>
>> --
>> /**********************************************************/
>>    Thomas Boudier, MCU Université Pierre et Marie Curie,
>>    Modélisation Cellulaire et Imagerie Biologique (EE1),
>>    IFR 83, Bat B 7ème étage, porte 723, Campus Jussieu.
>>    Tel : 01 44 27 46 92   Fax : 01 44 27 22 91
>> /*******************************************************/
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
> --
> Kenneth Sloan
> [hidden email]
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
Kenneth Sloan
[hidden email]

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Gabriel Landini
On Wednesday 18 Jul 2012 16:12:36 Kenneth Sloan wrote:
> Found them!
>
> Now...how about Binary Stack -> STL (with manifold/watertight guarantees?)

The 3DViewer can save a binary stack as STL.

Cheers

Gabriel

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Thomas Boudier
In reply to this post by Kenneth Sloan
Hi,

ok for the drink in Luxembourg, they got good beers ;-)

I do not know much about STL but connected component analysis :

http://imagejdocu.tudor.lu/doku.php?id=plugin:analysis:3d_object_counter:start

http://imagejdocu.tudor.lu/doku.php?id=plugin:stacks:3d_roi_manager:start


kind regards,

Thomas



On 18/07/2012 17:12, Kenneth Sloan wrote:

> Found them!
>
> Now...how about Binary Stack ->  STL (with manifold/watertight guarantees?)
>
> 3D connected component analysis?
>
>
> On Jul 18, 2012, at 10:07 , Kenneth Sloan wrote:
>
>> Perfect!  Thanks.  One free drink in Luxembourg!
>>
>> oops...I updated to 1.47a, but I can't seem to find the 3D min/max filters.  I apologize for being dense, but
>> could you please point the way?
>>
>> Or, should I just download the two .jar files and put them in plugins?
>>
>> Min/Max are really all I need right now - I have a *very* complicated 3D object that I'm trying to simplify for 3D printing.
>>
>> I was all set to write the 3D min/max filters.  Now I can turn my attention to the problem of making the (simplified) volume
>> into a STL file.  I don't suppose anyone has done *that* yet?  Alas, I need a guaranteed watertight surface (or collection of surfaces)
>>
>> On Jul 18, 2012, at 02:31 , Thomas Boudier wrote:
>>
>>> Hi,
>>>
>>> You can use 3D minimum and maximum filters, have a look to http://imagejdocu.tudor.lu/doku.php?id=plugin:filter:3d_filters:start or use the latest ImageJ version (1.47a). I have some other morphological stuff in development if you're interested in.
>>>
>>> best,
>>>
>>> Thomas
>>>
>>>
>>> On 18/07/2012 08:02, Kenneth Sloan wrote:
>>>> I'm sure it's in plain sight somewhere - but can someone please point me
>>>> at an implementation of 3D Mathematical Morphology operators (acting on a stack
>>>> of Binary images)?
>>>>
>>>> --
>>>> Kenneth Sloan
>>>> [hidden email]
>>>>
>>>> --
>>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>>
>>>
>>> --
>>> /**********************************************************/
>>>     Thomas Boudier, MCU Université Pierre et Marie Curie,
>>>     Modélisation Cellulaire et Imagerie Biologique (EE1),
>>>     IFR 83, Bat B 7ème étage, porte 723, Campus Jussieu.
>>>     Tel : 01 44 27 46 92   Fax : 01 44 27 22 91
>>> /*******************************************************/
>>>
>>> --
>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>> --
>> Kenneth Sloan
>> [hidden email]
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
> --
> Kenneth Sloan
> [hidden email]
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
   /**********************************************************/
      Thomas Boudier, MCU Université Pierre et Marie Curie,
      Modélisation Cellulaire et Imagerie Biologique (EE1),
      IFR 83, Bat B 7ème étage, porte 723, Campus Jussieu.
      Tel : 01 44 27 46 92   Fax : 01 44 27 22 91
/*******************************************************/

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Kenneth Sloan
In reply to this post by Gabriel Landini
My Stack will have one (or a very few) connected components, well away from the boundary of the stack.
I plan on applying a 3D MIN filter followed by a 3D MAX filter, with the goal of removing small isolated
pieces of debris.

I would *expect* the STL generated from this to be watertight - and probably manifold.

I will probably run the resulting STL through MeshLab to remove small components.

Are there any problems I am missing?  Anything in particular that I should be aware of?

The end product will be a solid model produced on a 3D printer.  With luck, I'll have some *very* cool stuff to show off at Mondorf les Bains.  

I really appreciate the help and pointers - you have both saved me at least a weekend's worth of coding.  Instead, I will spend it
watching the 3D Min/Max filters use 186% of a CPU for hours at a time processing this monster stack...  The main reason I need to simplify the stack is that the current version brings the 3D printer software to its knees.  The original data is something like 4Kx4Kx1K, with threadlike features with diameters perhaps 5-8 voxels wide, and lots of debris much smaller than that.



On Jul 18, 2012, at 10:19 , Gabriel Landini wrote:

> On Wednesday 18 Jul 2012 16:12:36 Kenneth Sloan wrote:
>> Found them!
>>
>> Now...how about Binary Stack -> STL (with manifold/watertight guarantees?)
>
> The 3DViewer can save a binary stack as STL.
>
> Cheers
>
> Gabriel
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
Kenneth Sloan
[hidden email]
M
--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Kenneth Sloan
In reply to this post by Gabriel Landini
I see Wavefront and DXF - no STL.

But...on my machine, 3D viewer chokes on my volumes.  Either I'm missing
an important piece, or my volumes are too big to process with 3D Viewer on my machine.

So, my current plan is to write my own plugin to scan the volume
and spit out two triangles for every voxel face that separates IN from OUT.

Since facets are completely independent of each other in STL, this should be trivial.
The surface will be jaggy - but I can deal with that later.  At least the surface will
be guaranteed to be watertight (but not manifold - I think that will be OK for my purposes).


On Jul 18, 2012, at 10:19 , Gabriel Landini wrote:

> On Wednesday 18 Jul 2012 16:12:36 Kenneth Sloan wrote:
>> Found them!
>>
>> Now...how about Binary Stack -> STL (with manifold/watertight guarantees?)
>
> The 3DViewer can save a binary stack as STL.
>
> Cheers
>
> Gabriel
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
Kenneth Sloan
[hidden email]

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Gabriel Landini
On Wednesday 18 Jul 2012 22:18:18 Kenneth Sloan wrote:
> I see Wavefront and DXF - no STL.

That is probably have an old version of the plugin?
I haven't checked the jar but perhaps this is an updated one
 http://132.187.25.13/home/?category=Download&page=Viewer3D
If not I can email you the one I am using which has STL output.

> But...on my machine, 3D viewer chokes on my volumes.  Either I'm missing
> an important piece, or my volumes are too big to process with 3D Viewer on
> my machine.

Maybe you could increase the memory, if more is available. Also the 3d viewer
subsamples the data by a definable amount (in the menu, default is 2) so you
could try a larger subsampling value and see if it loads it.
Hope it helps
Regards

Gabriel

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Michael Doube-3
In reply to this post by Kenneth Sloan
Hi Ken,

On 18/07/12 23:18, Kenneth Sloan wrote:
> I see Wavefront and DXF - no STL.

You must have an old 3D Viewer - we put STL read/write in ages ago.

Michael

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Michael Doube-3
> On 18/07/12 23:18, Kenneth Sloan wrote:
>> I see Wavefront and DXF - no STL.

And if you want a super-convenient way to turn your image stack into an
isosurface, try BoneJ's Isosurface command

http://bonej.org/isosurface

Michael

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: 3D min/max filters in 1.47a - where can I find them, please?

Kenneth Sloan
I'll try it - but I ended up writing my own simple-minded version - it simply
finds every IN voxel and checks all 6 sides to see if a square patch of surface
is required.  I actually output 2 triangles, because some of my STL code prefers
triangles.  It's not fancy - but it did the job, and I was absolutely guaranteed
a closed, water-tight surface.  Not necessarily manifold, and perhaps a bit
chunky - but that was fixed later, a bit further down my pipeline.  It did have
the merit of working correctly right out of the box (it took longer to produce
its first isosurface than I took to write it - I got lucky, I guess).

When I have a spare hour, I have to find out why upgrading to the latest release of
ImageJ left me with an old version of 3D Viewer - but that will have to wait.  My simple-minded
hack got me over this hurdle and I have other problems to solve further down the pipeline.

Eventually,I want to experiment with the difference between representing each boundary voxel face
with:

a) one square facet (vertices at voxel corners),
b) two triangular facets (same 4 vertices)
c) four triangular facets (4 corner vertices plus a vertex in the center of the face)
d) eight triangular facets (4 corners, one face center, 4 edge centers)

I might even get sucked into implementing my Dualing (sic) Cubes version of iso-surface generation, but
right now I'm wrangling BINARY volumes.  My original data was 4K x 4K x 1K of IN/OUT binary values;
most of my work involved determining that I could get away with something more like 500x500x125.
I used the 3D MIN/MAX filters and sub-sampling to reduce the size and the resulting mesh
ended up being just barely small enough so that MeshLab was able to remove small pieces of debris
and smooth the one big connected component (which still have more than 1,000,000 distinct boundary vertices).


On Jul 19, 2012, at 13:42 , Michael Doube wrote:

>> On 18/07/12 23:18, Kenneth Sloan wrote:
>>> I see Wavefront and DXF - no STL.
>
> And if you want a super-convenient way to turn your image stack into an
> isosurface, try BoneJ's Isosurface command
>
> http://bonej.org/isosurface
>
> Michael
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
Kenneth Sloan
[hidden email]

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html