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] |
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 |
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] |
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. |
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. |
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 |
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 |
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] |
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] > |
Free forum by Nabble | Edit this page |