Hi everyone,
Does anyone know a plugin to create a skeletonized image based on a grey-scale images instead of based on binary images. I have pictures which have an intense line of fluorescence which I want to localize precisely but there is quite some variation along the length of the line which makes a normal thresholding insufficient. If i do skeletonize the binary image I get the middle of my region back which does not necessarily coincide with the highest intensity skeleton from the region. All help is appreciated Joost willemse Leiden University -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Good day Joost,
an typical image would be helpful... Did you try to highpass filter the image? Best Herbie :::::::::::::::::::::::::::::::::::::::::::: Am 31.10.16 um 10:51 schrieb Joost Willemse: > Hi everyone, > > Does anyone know a plugin to create a skeletonized image based on a > grey-scale images instead of based on binary images. I have pictures which > have an intense line of fluorescence which I want to localize precisely but > there is quite some variation along the length of the line which makes a > normal thresholding insufficient. > > If i do skeletonize the binary image I get the middle of my region back > which does not necessarily coincide with the highest intensity skeleton > from the region. > > All help is appreciated > Joost willemse > Leiden University > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by Joost Willemse
Hi Joost,
if the intensity along the ridges is roughly constant, you could try 'Find Maxima' with output 'Maxima within tolerance', then skeletonize. Another option: Try a Laplace filter, i.e. convolution with this kernel: -1 -2 -1 -2 12 -2 -1 -2 -1 You might need some smoothing before or after this step to reduce noise; use 32-bit (float) images in any case. Then threshold and skeletonize. [Since Laplace is a linear operation, any linear smoothing operations can be done before or after the Laplace, with the same result; the only difference is numerical noise. If you need much smoothing, a difference of Gaussians filter, i.e. the difference of the image smoothed by gaussian Filters of different radius will do the same job with less numerical noise] If this is not sufficient, a slightly better ridge detection is finding the 4 values of the 2nd derivatives in the 4 directions separated by 45° and then some criterion that gives you the best score if you have a high negative second derivative in one direction, but approximately zero perpendicular to it. Michael ________________________________________________________________ On 2016-10-31 10:51, Joost Willemse wrote: > Hi everyone, > > Does anyone know a plugin to create a skeletonized image based on a > grey-scale images instead of based on binary images. I have pictures which > have an intense line of fluorescence which I want to localize precisely but > there is quite some variation along the length of the line which makes a > normal thresholding insufficient. > > If i do skeletonize the binary image I get the middle of my region back > which does not necessarily coincide with the highest intensity skeleton > from the region. > > All help is appreciated > Joost willemse > Leiden University > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by Herbie
Hi Joost,
You could try applying a 'tubeness filter' to the image prior to thresholding (try Fiji -> Plugins -> Analyze -> Tubeness). This can help to separate lines of variable intensity from background. Alternatively, a local thresholding method might be useful. As Herbie said, a sample image would be useful. Volko -----Original Message----- From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of Herbie Sent: 31 October 2016 10:04 To: [hidden email] Subject: Re: grey scale skeleton transform Good day Joost, an typical image would be helpful... Did you try to highpass filter the image? Best Herbie :::::::::::::::::::::::::::::::::::::::::::: Am 31.10.16 um 10:51 schrieb Joost Willemse: > Hi everyone, > > Does anyone know a plugin to create a skeletonized image based on a > grey-scale images instead of based on binary images. I have pictures > which have an intense line of fluorescence which I want to localize > precisely but there is quite some variation along the length of the > line which makes a normal thresholding insufficient. > > If i do skeletonize the binary image I get the middle of my region > back which does not necessarily coincide with the highest intensity > skeleton from the region. > > All help is appreciated > Joost willemse > Leiden University > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by Michael Schmid
You want to identify an intensity ridge.
A ridge might be defined as a continuous line of pixels that connects two end points while passing through the most intense intervening pixels. The problem is there will only be single solution if the intensity ridge has no branch points. In practice - roughly mark the two end points and make a local search for the most intense pixel around each - your start and target pixel. from the start pixel calculate the next location along a straight line to the target pixel, say 5 pixels in, and repeat the local search but at right angles to the line and find the location of an intensity peak (perhaps a pixel whose neighbors along the search line in both directions have a lower intensity). Then recalculate the line from this new location to the target pixel and repeat until you arrive at the end pixel. A better variant would be incrementally move from the two points that were initially identified as the ends of the intensity ridge. After the line is completed it could be extended from each end along the direction of the line, the problem being to set the criteria for the final end points of an intensity ridge - how do you define a ridge. Applying a local mean filter to the image will reduce the effect of noise. If the ridge is not linear then marking a number of intermediate points would help. The manual component is not ideal but precisely defining what is meant by an intensity ridge is difficult ________________________________________ From: ImageJ Interest Group [[hidden email]] on behalf of Michael Schmid [[hidden email]] Sent: 31 October 2016 12:42 To: [hidden email] Subject: Re: grey scale skeleton transform Hi Joost, if the intensity along the ridges is roughly constant, you could try 'Find Maxima' with output 'Maxima within tolerance', then skeletonize. Another option: Try a Laplace filter, i.e. convolution with this kernel: -1 -2 -1 -2 12 -2 -1 -2 -1 You might need some smoothing before or after this step to reduce noise; use 32-bit (float) images in any case. Then threshold and skeletonize. [Since Laplace is a linear operation, any linear smoothing operations can be done before or after the Laplace, with the same result; the only difference is numerical noise. If you need much smoothing, a difference of Gaussians filter, i.e. the difference of the image smoothed by gaussian Filters of different radius will do the same job with less numerical noise] If this is not sufficient, a slightly better ridge detection is finding the 4 values of the 2nd derivatives in the 4 directions separated by 45° and then some criterion that gives you the best score if you have a high negative second derivative in one direction, but approximately zero perpendicular to it. Michael ________________________________________________________________ On 2016-10-31 10:51, Joost Willemse wrote: > Hi everyone, > > Does anyone know a plugin to create a skeletonized image based on a > grey-scale images instead of based on binary images. I have pictures which > have an intense line of fluorescence which I want to localize precisely but > there is quite some variation along the length of the line which makes a > normal thresholding insufficient. > > If i do skeletonize the binary image I get the middle of my region back > which does not necessarily coincide with the highest intensity skeleton > from the region. > > All help is appreciated > Joost willemse > Leiden University > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by Joost Willemse
Hi,
thanks for the ideas, i'll try the suggestions and here is a sample image. I want to find the two higher intensity lines within the image. https://drive.google.com/open?id=0B0he4Ch7NRKlUjNpU19pQlhjM0U Joost Willemse -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
You might want to try the directional filtering of MorphoLibJ
<http://imagej.net/MorphoLibJ#Directional_filters> and then some edge detectors. On Tue, Nov 1, 2016 at 10:04 AM, Joost Willemse <[hidden email]> wrote: > Hi, > > thanks for the ideas, i'll try the suggestions and here is a sample image. > I want to find the two higher intensity lines within the image. > > https://drive.google.com/open?id=0B0he4Ch7NRKlUjNpU19pQlhjM0U > > Joost Willemse > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- Ignacio Arganda-Carreras, Ph.D. Ikerbasque Research Fellow Departamento de Ciencia de la Computacion e Inteligencia Artificial Facultad de Informatica, Universidad del Pais Vasco Paseo de Manuel Lardizabal, 1 20018 Donostia-San Sebastian Guipuzcoa, Spain Phone : +34 943 01 73 25 Website: http://sites.google.com/site/iargandacarreras/ <http://biocomp.cnb.csic.es/~iarganda/index_EN.html> -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Free forum by Nabble | Edit this page |