Hi all,
I need to evaluate the cell wall thickness in a cellular material. I already use "distance map" and other very useful "Local thickness" plugin and I get the map of local thickness. Now I need to split the information and to evaluate the local thickness of the wall of each cell. This mean I need to get all the values on the skeleton that is linked to one cell (and do it for each cell). I had the idea to use the skeleton image, to dilate the cell then make the difference with the initial image in order to get the values on the boundaries of the cell. But I do not know how to operate cell by cell. Any other idea ? Eric |
Eric,
I'm assuming that you want to get to each cell's image and then run your process on that cell alone. A way to do this 1) is to thresholded a multicell image to get an image of cell silhouettes, 2) use Landini's BinaryLabel8 plugin (see plugins documentatiuon) to assign a unique label to each cell silhouette, 3) use setThreshold() and run("Convert to Mask") to pull out each cell's silhouette in turn, and 4) run your process on each of these silhouettes. Does this help, or am I missing the point? David Webster On Fri, Mar 13, 2009 at 6:39 AM, Eric BADEL <[hidden email]>wrote: > Hi all, > I need to evaluate the cell wall thickness in a cellular material. I > already > use "distance map" and other very useful "Local thickness" plugin and I get > the map of local thickness. > Now I need to split the information and to evaluate the local thickness of > the wall of each cell. This mean I need to get all the values on the > skeleton that is linked to one cell (and do it for each cell). > I had the idea to use the skeleton image, to dilate the cell then make the > difference with the initial image in order to get the values on the > boundaries of the cell. But I do not know how to operate cell by cell. > Any other idea ? > Eric > |
Hi list,
I already noticed some time ago, that the GenericDialog seemingly always puts the initial input focus on th first "Numeric field", not on the "top element" in the dialog. This happens even if this input field is "disabled" via a DialogListener due to another checkbox option. This causes some confusion for the user of my plugin. What is the easiest way to change this or could this even be considered a "bug"? I put a simple example on http://joachim-wesner.net/tmp/WrongFocus.jpg the initial focus after showDialog() is on the value "6.2832...", even if it´s diabled, because the user has not selected "User value" in the Choices above on an earlier run (saved in preferences)! Thanks for any hint Mit freundlichen Grüßen / Best regards Joachim Wesner Projektleiter Optik Technologiesysteme Ernst Leitz Strasse 17-37 | 35578 Wetzlar (Germany) Tel. +49 6441 29 2611 | Fax +49 6441 29 2700 ____________________________________________ Leica Microsystems CMS GmbH | GmbH mit Sitz in Wetzlar | Amtsgericht Wetzlar HRB 2432 Geschäftsführer: Dr. Stefan Traeger | Dr. Wolf-Otto Reuter | Dr. David Roy Martyr | Colin Davis ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
> Hi list,
> > I already noticed some time ago, that the GenericDialog seemingly > always > puts the initial input focus on th first "Numeric field", not on > the "top > element" in the dialog. This happens > even if this input field is "disabled" via a DialogListener due to > another > checkbox option. This causes some confusion for the user of my plugin. > > What is the easiest way to change this or could this even be > considered a > "bug"? > > I put a simple example on > > http://joachim-wesner.net/tmp/WrongFocus.jpg > > the initial focus after showDialog() is on the value "6.2832...", > even if > it´s diabled, because the user has not selected "User value" in the > Choices > above on an earlier run (saved in preferences)! > > Thanks for any hint. This is a bug that is fixed in the 1.42l daily build. You can upgrade by using the Help>Update ImageJ command and selecting "daily build" from the drop down menu. -wayne |
Hi Wayne,
Extremely fast and on the point asl ALWAYS, yes it´s fixed now, thanks! Cheers Joachim Leica Microsystems CMS GmbH | GmbH mit Sitz in Wetzlar | Amtsgericht Wetzlar HRB 2432 Geschäftsführer: Dr. Stefan Traeger | Dr. Wolf-Otto Reuter | Dr. David Roy Martyr | Colin Davis ImageJ Interest Group <[hidden email]> schrieb am 15.03.2009 04:46:18: > > > > I put a simple example on > > > > http://joachim-wesner.net/tmp/WrongFocus.jpg > > > > the initial focus after showDialog() is on the value "6.2832...", > > even if > > it´s diabled, because the user has not selected "User value" in the > > Choices > > above on an earlier run (saved in preferences)! > > > > Thanks for any hint. > > This is a bug that is fixed in the 1.42l daily build. You can upgrade > by using the Help>Update ImageJ command and selecting "daily build" > from the drop down menu. > > -wayne ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
In reply to this post by David Webster
Hi,
Thank you for this idea. It works. Actually, I worked on an another idea and I still meet an issue. I generated an image that represents only the boundaries of the cell. The grey level values on this boundary represent the corresponding local thickness. Nox, I need to get these values, cell by cell. That means that the boundary line should be one ROI. Nevertheless, if I try to get values of this ROI, ImageJ thinks that the ROI is the surface of the shape. How, could I define only the boundary as an ROI (and get all the corresponding grey level value) ? Thank you Eric David Webster a écrit : > Eric, > > I'm assuming that you want to get to each cell's image and then run your > process on that cell alone. A way to do this 1) is to thresholded a > multicell image to get an image of cell silhouettes, 2) use Landini's > BinaryLabel8 plugin (see plugins documentatiuon) to assign a unique label to > each cell silhouette, 3) use setThreshold() and run("Convert to Mask") to > pull out each cell's silhouette in turn, and 4) run your process on each of > these silhouettes. > > Does this help, or am I missing the point? > > David Webster > On Fri, Mar 13, 2009 at 6:39 AM, Eric BADEL <[hidden email]>wrote: > > >> Hi all, >> I need to evaluate the cell wall thickness in a cellular material. I >> already >> use "distance map" and other very useful "Local thickness" plugin and I get >> the map of local thickness. >> Now I need to split the information and to evaluate the local thickness of >> the wall of each cell. This mean I need to get all the values on the >> skeleton that is linked to one cell (and do it for each cell). >> I had the idea to use the skeleton image, to dilate the cell then make the >> difference with the initial image in order to get the values on the >> boundaries of the cell. But I do not know how to operate cell by cell. >> Any other idea ? >> Eric >> >> -- Eric BADEL Attention: new details ! ****** [hidden email] *********** BADEL Eric PIAF INRA Site de Crouel 234, avenue du Brezet 63100 Clermont-Ferrand - France tel: (33) 4 73 62 44 38 [hidden email] ************************************************ other e-mail addresses are not available any more |
On Monday 16 March 2009 08:50:00 Eric Badel wrote:
> I generated an image that represents only the boundaries of the cell. > The grey level values on this boundary represent the corresponding local > thickness. Nox, I need to get these values, cell by cell. That means > that the boundary line should be one ROI. Nevertheless, if I try to get > values of this ROI, ImageJ thinks that the ROI is the surface of the shape. > How, could I define only the boundary as an ROI (and get all the > corresponding grey level value) ? What results do you want from those boundaries? You could use the particles8 plugin on the binary boundaries images and redirect to the distance transform image. The mean, mode, max, min, sd, etc of those distance transform pixels corresponding to the binary image will be collected in the Results window, one row per cell. I hope this helps. G. |
- When I apply these plugin to the boundaries images, it works as if the ROI is the total cell (and not only the boundary).
- I'd like to get the whole list of the grey level values of each cell boundary. One idea could be a macro that uses BinaryLabel8. Something like this (that does not still fully work ...) On the binary boundary image: run("BinaryLabel8 ", "white"); // generate "Labelled" //run("Clear Results"); for (i=1; i<nResults+1; i++) { selectWindow("Labelled"); run("Duplicate...", "title=Labelled-1"); setThreshold(i, i); run("Convert to Mask"); run("Create Selection"); getSelectionCoordinates(x, y); n = x.length; imageCalculator("AND create 32-bit", "LocalThickness.tif","Labelled-1"); // grey values of one boundary (here "LocalThickness" is the LT image) for (j=0; j<n; i++) { v = getPixel(x[j], y[j]); setResult(i, x[j], y[j] , v ); // this line brings an error message ("," missing !!) } selectWindow("Labelled-1"); run("Close" ); } updateResults(); Any idea to correct this ? Thank you. Eric Gabriel Landini a écrit : > On Monday 16 March 2009 08:50:00 Eric Badel wrote: > >> I generated an image that represents only the boundaries of the cell. >> The grey level values on this boundary represent the corresponding local >> thickness. Nox, I need to get these values, cell by cell. That means >> that the boundary line should be one ROI. Nevertheless, if I try to get >> values of this ROI, ImageJ thinks that the ROI is the surface of the shape. >> How, could I define only the boundary as an ROI (and get all the >> corresponding grey level value) ? >> > > > What results do you want from those boundaries? > > You could use the particles8 plugin on the binary boundaries images and > redirect to the distance transform image. > The mean, mode, max, min, sd, etc of those distance transform pixels > corresponding to the binary image will be collected in the Results window, one > row per cell. > > I hope this helps. > G. > -- Eric BADEL ****** [hidden email] *********** BADEL Eric PIAF INRA Site de Crouel 234, avenue du Brezet 63100 Clermont-Ferrand - France tel: (33) 4 73 62 44 38 [hidden email] ************************************************ ! other e-mail addresses are not available any more |
>Dear Colleagues,
I am using macros to process large images (720 Mo). I would like to control the memory and empty the garbage collector. Is there any Macro solution for that ? Regards Marc P. ---------------------------------------------------------------------------------- VISIT our WEB site ! http://www.obs-vlfr.fr/LOV/ZooPart/ ---------------------------------------------------------------------------------- Marc PICHERAL, ingenieur Laboratoire d'Océanologie de Villefranche sur mer CNRS UPMC UMR7093 Observatoire Océanologique de Villefranche-sur-Mer Station Zoologique La Darse BP 28 06234 Villefranche sur mer Tel : 04 93 76 38 08 Fax: 04 93 76 38 34 |
Hi,
You can call any java class you want : call("java.lang.System.gc"); Thomas Marc Picheral a écrit : >> Dear Colleagues, > > I am using macros to process large images (720 Mo). I would like to > control the memory and empty the garbage collector. Is there any Macro > solution for that ? > > Regards > > Marc P. > > > > > ---------------------------------------------------------------------------------- > > VISIT our WEB site ! > > http://www.obs-vlfr.fr/LOV/ZooPart/ > ---------------------------------------------------------------------------------- > > > Marc PICHERAL, ingenieur > Laboratoire d'Océanologie de Villefranche sur mer > CNRS UPMC UMR7093 > Observatoire Océanologique de Villefranche-sur-Mer > Station Zoologique > La Darse > BP 28 > 06234 Villefranche sur mer > Tel : 04 93 76 38 08 > Fax: 04 93 76 38 34 > -- /**********************************************************/ Thomas Boudier, MCU Université Pierre et Marie Curie, IFR 83. Bat B 7ème étage, porte 709, Jussieu. Tel : 01 44 27 20 11 Fax : 01 44 27 22 91 /*******************************************************/ |
In reply to this post by picheral
Marc,
You can call the garbage collector class one or multiple times if it helps. call("java.lang.System.gc"); Jerome. On Mon, Mar 16, 2009 at 5:52 PM, Marc Picheral <[hidden email]> wrote: >> >> Dear Colleagues, > > I am using macros to process large images (720 Mo). I would like to control the memory and empty the garbage collector. Is there any Macro solution for that ? > > Regards > > Marc P. > > > > > ---------------------------------------------------------------------------------- > VISIT our WEB site ! > > http://www.obs-vlfr.fr/LOV/ZooPart/ > ---------------------------------------------------------------------------------- > > Marc PICHERAL, ingenieur > Laboratoire d'Océanologie de Villefranche sur mer > CNRS UPMC UMR7093 > Observatoire Océanologique de Villefranche-sur-Mer > Station Zoologique > La Darse > BP 28 > 06234 Villefranche sur mer > Tel : 04 93 76 38 08 > Fax: 04 93 76 38 34 |
Free forum by Nabble | Edit this page |