Cellulose fiber degradation by IA (with IJ)

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

Cellulose fiber degradation by IA (with IJ)

Marco Bravi
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
Reply | Threaded
Open this post in threaded view
|

Re: Cellulose fiber degradation by IA (with IJ)

Gary Chinga
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
>
>
Reply | Threaded
Open this post in threaded view
|

line always black

Michael Cammer
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/ 
Reply | Threaded
Open this post in threaded view
|

Re: line always black

Wayne Rasband
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/