Re: question on edge detection
Posted by
Mark Krebs-2 on
URL: http://imagej.273.s1.nabble.com/question-on-edge-detection-tp5019908p5019918.html
Hi Dave,
Another possibility for your task is the Tubeness plugin bundled with Fiji. Attached is an image showing the result after manually editing an orthogonal vessel touching the artery (I cut and pasted a neighboring region of the background over the bright object; a similar approach to get rid of all the orthogonal vessels could be automated), converting to 32-bit with Image>Type>32-bit to remove noise with Process>Noise>ROF Denoise (theta=100), converting to 8-bit with Image>Type>8-bit to run Plugins>Analyze>Tubeness (Sigma=10, uncheck Use calibration information), thresholding the result manually with Image>Adjust>Threshold followed by Edit>Selection>Create Selection and the letter "t" to send the region of interest to the ROI Manager. The ROI was then superimposed on the original image with Ctrl-D after selecting Image>Type>RGB Color and switching the default foreground color in the menubar to yellow.
Maybe this approach with some tweaking could reveal not only the width of the outer artery wall but also fluctuations in the width of the lumen and/or the walls themselves. An important issue is whether to assess changes in the width of the full extent of the imaged artery, which may be straightforward (divide total area by the length of the binary skeleton of the artery) or to assess changes at regular intervals along the artery, which is more difficult (assess the width normal to the longitudinal axis of the artery at regular intervals). I suspect that for a pulsatile change the latter may be the more appropriate solution. Also, there is of course a degree of arbitrariness in the thresholding operation, but if your images have similar intensities and you use the same thresholding parameters for all of them then you may be likely to obtain good relative results in monitoring fluctuations in artery parameters with the pulse. Herbie's concern about the desired accuracy is an important consideration.
For automation, the best way to start writing code is to turn on Plugins>Macros>Record as you perform the steps listed. By saving a *.ijm file from the result, you can create a snippet of code that will perform the steps on a selected image that you have open in Fiji/ImageJ. With experience you'll find that there are ways to run this snippet on folders containing many files, or on a stack of images, etc.
I hope this is helpful.
Cheers,
Mark
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html