Find the diameter of the parts in an image processing?

11 次查看(过去 30 天)
Hello,
Does anybody have any idea how can I calculate the average diameter of the parts attached here? The white parts ar cylinders actually with diameters in Nano size.
Would you please help me to write a code such that I can catch the diameters?
12.PNG
Thanks

回答(1 个)

Alex Mcaulley
Alex Mcaulley 2020-1-10
One approach would be:
  1. First, you need to segment the objects you want using any segmentation function, for example imbinarize, or a manual threshold.
  2. Then, Using regionprops you can obtain the perimeter of each segmented object
  3. Finally, to obtain the diameters is just:
diameter = perimeter/pi
  6 个评论
Matt J
Matt J 2020-1-10
Torkan's answer converted to comment:
I used stats = regionprops('table',BW,'Centroid','MajorAxisLength','MinorAxisLength') and it gives nothing for major and minor axis. It seems that as you said the resolution makes problem.
Guillaume
Guillaume 2020-1-10
As I said, use imtool or imshow to look at the image.
resolution is a bit of an overloaded word. You have the optical resolution, i.e. physical unit/pixel (in your case ) which you can determine by measuring the length of the line in your image (not the most accurate method but of it's all you have...). Resolution is also used for the size of the image in pixels. If your images are only 170x315, then that's a very low resolution. In that image your white cylinders are only 2 or 3 pixels in diameter, so an error of meaurement of one pixel is a 50 % mesurement error. The only way to reduce that error is to have a sensor with more pixels or increase the optical magnification so that the cylinders take more pixel. An error of 1 pixel for a cylinder of diameter 20 pixels drops the measurement error to 5 %.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by