- First, you need to segment the objects you want using any segmentation function, for example imbinarize, or a manual threshold.
- Then, Using regionprops you can obtain the perimeter of each segmented object
- Finally, to obtain the diameters is just:
Find the diameter of the parts in an image processing?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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?
Thanks
0 comentarios
Respuestas (1)
Alex Mcaulley
el 10 de En. de 2020
One approach would be:
diameter = perimeter/pi
6 comentarios
Matt J
el 10 de En. de 2020
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
el 10 de En. de 2020
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 %.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!