Blood vessel analysis using 16-bit image

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Blood vessel analysis using 16-bit image

Schaffer, Beverly
Hi Everyone,

 

Thanks to everyone who responded to my previous email about imaging
blood vessels. I've tried the skeletonize and analyze skeleton plug-ins,
but they only work with an 8-bit grayscale image. The camera I am using
takes a 16-bit picture. I have tried converting the image to 8-bit in
ImageJ (type-8-bit) and then processing the image using skeletonize. All
I get is a single straight line in the middle of the image.

 

I've tried saving the image in AxioVision as a tif and then taking it
into ImageJ, converting it to 8-bit (as above) with the same result when
I process using skeletonize. I've also tried taking the tif image into
photoshop and saving it as an 8-bit grayscale image and get the same
result when I process with skeletonize.

 

Any other ideas?

 

Thanks!

 

Beverly Schaffer

[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Dianne Patterson
It matters how you convert to 8 bit....you can lose all values above 256, if
you don't take pains to preserve them.
I do  the following
# copy the 16 bit image to a new8
# Find the maximum intensity value in the image and put it in a variable
# Divide max by 255
# Use divisor to change the range of values in new8, then save it as 8-bit
char

When you are done, look at the old image and the new one...they should look
the same to you...and white values should be near 255.

-Dianne

On Tue, Jul 28, 2009 at 11:05 AM, Schaffer, Beverly <[hidden email]>wrote:

> Hi Everyone,
>
>
>
> Thanks to everyone who responded to my previous email about imaging
> blood vessels. I've tried the skeletonize and analyze skeleton plug-ins,
> but they only work with an 8-bit grayscale image. The camera I am using
> takes a 16-bit picture. I have tried converting the image to 8-bit in
> ImageJ (type-8-bit) and then processing the image using skeletonize. All
> I get is a single straight line in the middle of the image.
>
>
>
> I've tried saving the image in AxioVision as a tif and then taking it
> into ImageJ, converting it to 8-bit (as above) with the same result when
> I process using skeletonize. I've also tried taking the tif image into
> photoshop and saving it as an 8-bit grayscale image and get the same
> result when I process with skeletonize.
>
>
>
> Any other ideas?
>
>
>
> Thanks!
>
>
>
> Beverly Schaffer
>
> [hidden email]
>
>


--
Dianne Patterson, Ph.D.
[hidden email]
University of Arizona
SLHS 328
621-5105
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Kenneth Sloan-3
On Jul 28, 2009, at 1:59 PM, Dianne Patterson wrote:

> It matters how you convert to 8 bit....you can lose all values above  
> 256, if
> you don't take pains to preserve them.
> I do  the following
> # copy the 16 bit image to a new8
> # Find the maximum intensity value in the image and put it in a  
> variable
> # Divide max by 255
> # Use divisor to change the range of values in new8, then save it as  
> 8-bit
> char
>
> When you are done, look at the old image and the new one...they  
> should look
> the same to you...and white values should be near 255.
>
> -Dianne

That's just the first step.  You might also consider:

a) finding the Min value and mapping [Min,Max] -> [0,255]  (note that  
this might INCREASE the
    range of values)
b) computing further statistics, and performaing a more
    general transformation of the values

It all depends on whether or not the values themselves have any  
intrinsic meaning (other than "darker" and "lighter").  But, that ship  
already sailed when you re-scaled to fit in [0,255].


The point is: as soon as you decide that you have to modify the actual  
pixel values, you must have some information about what the pixels  
*mean* and how they will be processed in the next step.


--
Kenneth Sloan
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Gabriel Landini
In reply to this post by Schaffer, Beverly
On Tuesday 28 July 2009 19:05:37 Schaffer, Beverly wrote:
> I've tried the skeletonize and analyze skeleton plug-ins,
> but they only work with an 8-bit grayscale image. The camera I am using
> takes a 16-bit picture. I have tried converting the image to 8-bit in
> ImageJ (type-8-bit) and then processing the image using skeletonize. All
> I get is a single straight line in the middle of the image.

I guess that you are missing the step of segmenting/converting/thresholding
your 16 or 8 bit image into a binary image (which is also 8 bit).
After you have a binary image you skeletonise it.
(There are greyscale skeletons, but I do not think that is what you are
looking for).

Cheers

G.
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Schaffer, Beverly
That sounds easy. Are those additional plug-ins (completely clueless) or
something available in ImageJ. I looked through all the drop down menus
and didn't find the options. I did find a threshold option under the
colocalization and a multi-threshold under the filter plug-in.

Could clarify for me?

Thanks!

Bev
-----Original Message-----
From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of
Gabriel Landini
Sent: Tuesday, July 28, 2009 2:28 PM
To: [hidden email]
Subject: Re: Blood vessel analysis using 16-bit image

On Tuesday 28 July 2009 19:05:37 Schaffer, Beverly wrote:
> I've tried the skeletonize and analyze skeleton plug-ins,
> but they only work with an 8-bit grayscale image. The camera I am
using
> takes a 16-bit picture. I have tried converting the image to 8-bit in
> ImageJ (type-8-bit) and then processing the image using skeletonize.
All
> I get is a single straight line in the middle of the image.

I guess that you are missing the step of
segmenting/converting/thresholding
your 16 or 8 bit image into a binary image (which is also 8 bit).
After you have a binary image you skeletonise it.
(There are greyscale skeletons, but I do not think that is what you are
looking for).

Cheers

G.
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Dianne Patterson
Play with Process->Math...it will let you add, subtract etc.I think
Analyze->Measure will give you things like maximum and minimum values.

What you are trying to avoid is truncating the values in the 16 bit
image...so you need to know the range.

Once you figure out what steps you want, you should be able to create a
macro to do them.

-Dianne

On Tue, Jul 28, 2009 at 1:21 PM, Schaffer, Beverly <[hidden email]>wrote:

> That sounds easy. Are those additional plug-ins (completely clueless) or
> something available in ImageJ. I looked through all the drop down menus
> and didn't find the options. I did find a threshold option under the
> colocalization and a multi-threshold under the filter plug-in.
>
> Could clarify for me?
>
> Thanks!
>
> Bev
> -----Original Message-----
> From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of
> Gabriel Landini
> Sent: Tuesday, July 28, 2009 2:28 PM
> To: [hidden email]
> Subject: Re: Blood vessel analysis using 16-bit image
>
> On Tuesday 28 July 2009 19:05:37 Schaffer, Beverly wrote:
> > I've tried the skeletonize and analyze skeleton plug-ins,
> > but they only work with an 8-bit grayscale image. The camera I am
> using
> > takes a 16-bit picture. I have tried converting the image to 8-bit in
> > ImageJ (type-8-bit) and then processing the image using skeletonize.
> All
> > I get is a single straight line in the middle of the image.
>
> I guess that you are missing the step of
> segmenting/converting/thresholding
> your 16 or 8 bit image into a binary image (which is also 8 bit).
> After you have a binary image you skeletonise it.
> (There are greyscale skeletons, but I do not think that is what you are
> looking for).
>
> Cheers
>
> G.
>
>


--
Dianne Patterson, Ph.D.
[hidden email]
University of Arizona
SLHS 328
621-5105
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

Gabriel Landini
In reply to this post by Schaffer, Beverly
On Tuesday 28 July 2009 21:21:26 Schaffer, Beverly wrote:
> That sounds easy. Are those additional plug-ins (completely clueless) or
> something available in ImageJ. I looked through all the drop down menus
> and didn't find the options. I did find a threshold option under the
> colocalization and a multi-threshold under the filter plug-in.

I think (not sure what you did so far) you need to reduce the 16 or 8 bit
image of your blood vessels into a binary image that shows vessels in white
and background in black (or viceversa). That is a binary image (2 values: 0
and 255).
One method is via thresholding (Image>Adjust>Threshold). Depending what
version of the ij.jar file you've got, you might have 1 method or about 15.
However if that does not work, you might have to use a different approach
(like Laplacian of Gaussian [LoG] filter, or region based segmentation or
something different).
Once you have your binary image, call the "skeletonize" command. That will
thin the binary object to a skeleton.
Cheers,

Gabriel
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

karo03
In reply to this post by Schaffer, Beverly
Attached these macro lines show how to threshold and to skeltonize the  
M51 Galaxy. Possibly you can try it with your own images?

run("M51 Galaxy (177K, 16-bits)"); // File->Open ... a 16-bits sample  
image
setAutoThreshold(); // Image->Adjust->Threshold (with set and apply)
//run("Threshold...");
setThreshold(594, 10106);
run("Convert to Mask");
run("Skeletonize"); // Process->Binary->Skeltonize

Copy this piece of macro into a File->New->Text Window and let it run  
(Macros->Run macro). After managing this step the analysis of the  
skeleton in terms of branches etc can be done.

Regards
Karsten

Am 28.07.2009 um 22:21 schrieb Schaffer, Beverly:

> That sounds easy. Are those additional plug-ins (completely  
> clueless) or
> something available in ImageJ. I looked through all the drop down  
> menus
> and didn't find the options. I did find a threshold option under the
> colocalization and a multi-threshold under the filter plug-in.
>
> Could clarify for me?
>
> Thanks!
>
> Bev
> -----Original Message-----
> From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of
> Gabriel Landini
> Sent: Tuesday, July 28, 2009 2:28 PM
> To: [hidden email]
> Subject: Re: Blood vessel analysis using 16-bit image
>
> On Tuesday 28 July 2009 19:05:37 Schaffer, Beverly wrote:
>> I've tried the skeletonize and analyze skeleton plug-ins,
>> but they only work with an 8-bit grayscale image. The camera I am
> using
>> takes a 16-bit picture. I have tried converting the image to 8-bit in
>> ImageJ (type-8-bit) and then processing the image using skeletonize.
> All
>> I get is a single straight line in the middle of the image.
>
> I guess that you are missing the step of
> segmenting/converting/thresholding
> your 16 or 8 bit image into a binary image (which is also 8 bit).
> After you have a binary image you skeletonise it.
> (There are greyscale skeletons, but I do not think that is what you  
> are
> looking for).
>
> Cheers
>
> G.

Karsten
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Blood vessel analysis using 16-bit image

David Webster
In reply to this post by Schaffer, Beverly
Beverly ,

I  ran the user developed plugin "Skeletonize (2D/3D)" on the built in image
grayscale "blobs.gif". I got a straight line in the center of the image like
you did. So, if you were processing an 8-bit grayscale, try using
"Process/Binary/Make Binary" first.

David Webster

On Tue, Jul 28, 2009 at 11:05 AM, Schaffer, Beverly <[hidden email]>wrote:

> Hi Everyone,
>
>
>
> Thanks to everyone who responded to my previous email about imaging
> blood vessels. I've tried the skeletonize and analyze skeleton plug-ins,
> but they only work with an 8-bit grayscale image. The camera I am using
> takes a 16-bit picture. I have tried converting the image to 8-bit in
> ImageJ (type-8-bit) and then processing the image using skeletonize. All
> I get is a single straight line in the middle of the image.
>
>
>
> I've tried saving the image in AxioVision as a tif and then taking it
> into ImageJ, converting it to 8-bit (as above) with the same result when
> I process using skeletonize. I've also tried taking the tif image into
> photoshop and saving it as an 8-bit grayscale image and get the same
> result when I process with skeletonize.
>
>
>
> Any other ideas?
>
>
>
> Thanks!
>
>
>
> Beverly Schaffer
>
> [hidden email]
>