How to "size-normalize" objects in a binary image? (e.g. make sizes of all non-zero objects to be the same)

3 visualizaciones (últimos 30 días)
Dear Community,
I have a binary image (attached in .jpg and .fig) with circles, pixel values inside circles =1 and outside =0. These circles look very similar, although they differ in size a little bit. For instance, the difference between two random circles in diameter can be about approx. 10 pixels. Is there a way to make all these circles to become of EXACTLY the same size? Size itself is not important btw, it can range from biggest possible (before circles start to overlap) to 1 pixel. Also a more general answer on how to make objects (not only circles) in a binary image equally sized will satisfy my needs.
I will appreciate any sugestions.
Thank you,
Vasilii
  5 comentarios
Vasya Mika
Vasya Mika el 22 de Abr. de 2020
If I'd ask something like: "How can I count all stars in universe in MATLAB?" and get an answer "You cannot", would it be worth staying?..
Regarding your approach: is there a way to centroid every object without cropping these objects from the image first?

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 4 de Abr. de 2020
Not if x and y can be anything (floating point) since you will have quantization error.
If you want to specify that the center or upper left corner is exactly on an integer coordinate, you can.
Just see the FAQ.
  3 comentarios
Image Analyst
Image Analyst el 22 de Abr. de 2020
If you want, you can use regionprops() to identfy the centroids of the existing circles. Then round them to the nearest integer. Next create a new, blank image and paste onto it a small template of the desired circle shape. I'm attaching a copy and paste demo.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by