How can I calculate the thickness for the attached images?
6 次查看(过去 30 天)
显示 更早的评论
How can I calculate the thickness for the attached image??
I did segmentation for all the nerves in the image and I labelled each object in the image. What I want is how can I calculate the thickness of each nerve? And how can I highlight a specific part of the nerve if there is an inflation in any nerve?
Your help in this regard is highly appreciated, thank you in advance
0 个评论
采纳的回答
Image Analyst
2015-3-4
Use regionprops to measure area and perimeter. Then assume blobs are long and thin. So area = length*width and perimeter = 2*w+2*l = 2*w+area/w. So
w*P = 2*w^2 + A
or
0 = 2*w^2-w*P + A
Use quadratic formula to solve
w = (P - sqrt(P^2-4*2*A))/(2*2)
w = (P-sqrt(P^2-8*A))/4
5 个评论
Image Analyst
2015-3-8
First you need to get a good binary image like you had before. Maybe you can just threshold it, or maybe use a Frangi filter or maybe use anisotropic diffusion (demo attached).
Then you need to use bwdist() to get the thickness of each place in the nerves. But the thickness will only be along the centerline of the distance transform and you want the entire thickness to be represented by some color, not just the centerline so you need to dilate out the centerline to that it takes up the whole binary image. To do this, use imdilate() which is a local max filter. Dilate it out a lot, like twice as big as the nerve. Then mask the dilated image by the original binary image to crop it to just the nerve boundaries. Now you have a solid color all the way out to the edge and you can simply apply a colormap. So the steps are
- process and get a binary image
- call bwdist
- call imdilate
- mask: out = dilatedImage .* binaryImage
- colorize: colormap().
If you have trouble, post your code.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!