Dear All,
I have used ImageJ for some time now, mainly for particulate processing and food investigation. Recently I am focusing a new problem with my research group: the hydrolysis of cellulosic waste (for the ultimate production of ethanol). I would like to tackle this subject by resorting to Image Analysis for the characterisation of the degradation of cellulose fiber (obtained by blending filter paper in water). When circulated in a flow microscope slide, this suspension may yield clear (see a sample if figure http://ingchim.ing.uniroma1.it/users/mbravi/tmp/reasonable.jpg) or intermixed (see http://ingchim.ing.uniroma1.it/users/mbravi/tmp/intermix.jpg). I was figuring that I can have at least two levels of characterisation. First is total cellulose mass which, assuming that all the fibers are on the focus plane (which is not true, but I have some ideas as to treat that), could be related to total dark area (after binarisation). Bothe figures above could be characterised easily by this approach. The subsequent level of investigation is that of characterising the fiber length distribution: the fibers become more and more fragile during hydrolysis and break, yielding shorter and shorter units. I thought an idea here would be to skeletonise the objects contained in the image. However, often they are (or appear, because of partial superposition) branched; particularly complicated situations arise here in the case of tightly intermixed fiber aggregates, as shown in the second figure above. Since I think that analysing aggregates would be an overwhelming task, I would be happy to limit the analysis to the case of "simple", "individual" fibers. Therefore, I have the problem of characterising what an "individual fiber" is (might be defined as one which has a linear, non-branched skeleton?) and how to calculate its length *algorithmically leaving out* all the aggregates. I would be more than happy to receive some criticism and ideas from the community. I have recently read the thread about "crack length characterisation", which seemed to apply (llosely) to my case; however, here I don't know if, how many and where the worm-shaped objects are in my image; besides, aggregates should be left out for (current) lack of interpretation ideas and tools. Regards (and thanks A LOT in advance) to all from Marco Bravi |
You can try to exclude the branched particles by performing a shape
analysis based on the e.g. solidity values. Branched particles have a relative low solidity value compared to e.g. fibers. Alternatively try the form factor or aspect ratio of the particles combined with the particle size. Branched particles are large and have a large form factor compared to fibers and probably low aspect ratio. The shape descriptor plugin clears particles based on some shapes. I hope this helps, Gary. http://www.gcsca.net/IJ/Shapes.html On Nov 7, 2006, at 3:36 PM, Marco Bravi wrote: > Dear All, > > I have used ImageJ for some time now, mainly for particulate > processing > and food investigation. > > Recently I am focusing a new problem with my research group: the > hydrolysis of cellulosic waste (for the ultimate production of > ethanol). > > I would like to tackle this subject by resorting to Image Analysis for > the characterisation of the degradation of cellulose fiber > (obtained by > blending filter paper in water). > > When circulated in a flow microscope slide, this suspension may yield > clear (see a sample if figure > http://ingchim.ing.uniroma1.it/users/mbravi/tmp/reasonable.jpg) or > intermixed (see > http://ingchim.ing.uniroma1.it/users/mbravi/tmp/intermix.jpg). > > I was figuring that I can have at least two levels of > characterisation. > First is total cellulose mass which, assuming that all the fibers > are on > the focus plane (which is not true, but I have some ideas as to treat > that), could be related to total dark area (after binarisation). Bothe > figures above could be characterised easily by this approach. > > The subsequent level of investigation is that of characterising the > fiber length distribution: the fibers become more and more fragile > during hydrolysis and break, yielding shorter and shorter units. > > I thought an idea here would be to skeletonise the objects > contained in > the image. However, often they are (or appear, because of partial > superposition) branched; particularly complicated situations arise > here > in the case of tightly intermixed fiber aggregates, as shown in the > second figure above. > > Since I think that analysing aggregates would be an overwhelming > task, I > would be happy to limit the analysis to the case of "simple", > "individual" fibers. Therefore, I have the problem of characterising > what an "individual fiber" is (might be defined as one which has a > linear, non-branched skeleton?) and how to calculate its length > *algorithmically leaving out* all the aggregates. > > I would be more than happy to receive some criticism and ideas from > the > community. I have recently read the thread about "crack length > characterisation", which seemed to apply (llosely) to my case; > however, > here I don't know if, how many and where the worm-shaped objects > are in > my image; besides, aggregates should be left out for (current) lack of > interpretation ideas and tools. > > Regards (and thanks A LOT in advance) to all from > > Marco Bravi > > |
With either of the following syntax for setColor for use on 8 bit
images, the line drawn is always the color chosen by run("Colors...", "foreground=white background=black selection=yellow"); not the color set in variable i. The solution would be appreciated. makeLine(x1,y1,x0,y0); setColor(i,i,i); run("Draw"); makeLine(x1,y1,x0,y0); setColor(i); run("Draw"); Thanks! ____________________________________________________________________________ Michael Cammer Analytical Imaging Facility Albert Einstein Coll. of Med. URL: http://www.aecom.yu.edu/aif/ |
Use setForeGroundColor() to set the color used by the Edit>Draw command.
makeLine(x1,y1,x0,y0); setForegroundColor(i,i,i); run("Draw"); Use setColor(v) or setColor(r,g,b) to define the color used by the drawLine, drawRect and drawString macro functions. setColor(i); drawLine(x1,y1,x0,y0); The second method is much faster. -wayne > With either of the following syntax for setColor for use on 8 bit > images, the line drawn is always the color chosen by > run("Colors...", "foreground=white background=black selection=yellow"); > not the color set in variable i. > The solution would be appreciated. > > makeLine(x1,y1,x0,y0); > setColor(i,i,i); > run("Draw"); > makeLine(x1,y1,x0,y0); > setColor(i); > run("Draw"); > > Thanks! > _______________________________________________________________________ > _____ > Michael Cammer Analytical Imaging Facility Albert Einstein Coll. > of Med. > URL: http://www.aecom.yu.edu/aif/ |
Free forum by Nabble | Edit this page |