# How can I find the radius of this object, preferably at multiple x,y points for a consistent output?

4 Ansichten (letzte 30 Tage)
Sanam Pun am 7 Feb. 2024
Bearbeitet: Matt J am 7 Feb. 2024
Hi,
Using the grid as a scale and performing spatial calibration on Matlab, I have managed to find the radius using r = s^2+L^2/2*s^2. However this only uses 3 data points. I was looking for a more "robust" method of doing this - i.e fitting multiple points in the image and finding multiple radius/curv values that should ideally all be the same since x^2+y^2 = r^2.
##### 2 KommentareKeine anzeigenKeine ausblenden
Dyuman Joshi am 7 Feb. 2024
Have you tried searching on the forum for similar questions asked (and answered) before?
Sanam Pun am 7 Feb. 2024
Hi, I have found some similar topics and have looked into it, however I was unable to apply it to my specific scenario...

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Matt J am 7 Feb. 2024
Bearbeitet: Matt J am 7 Feb. 2024
It will allow you to fit the arcs based on more than 3 points. However, it will only fit one object at a time. So, if you have multiple arcs from different objects, you must process them separately.
Also, bear in mind that the circularity of the arcs in your image may be warped depending on the perspective of the camera. The fitting tool doesn't take camera perspective into account.
##### 10 Kommentare8 ältere Kommentare anzeigen8 ältere Kommentare ausblenden
Sanam Pun am 7 Feb. 2024
Does viscircles use a particular unit measurement? Or does it automatically scale? Also, from my understanding, all I need is a center points and radius?
hold on;
hold off
Matt J am 7 Feb. 2024
Bearbeitet: Matt J am 7 Feb. 2024
viscircles will be in whatever scale the XData and YData of imshow are. You can change the default scale using,

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Image Analyst am 7 Feb. 2024
See the FAQ:
or my attached function.
##### 2 KommentareKeine anzeigenKeine ausblenden
Sanam Pun am 7 Feb. 2024
Hi, cheers for this! I used your function and it works perfectly! (doubled checked with a circle I already know the values of i.e xcentre, ycentre ).
Matt J am 7 Feb. 2024
Bearbeitet: Matt J am 7 Feb. 2024
Comparing the fitting performances of the two methods is a bit subjective, I suppose, seeing as it's such a short arc. But, I like mine better ;-)
cf1=circularFit(xy); %Matt J
[xCenter, yCenter, radius] = circlefit(xy(1,:), xy(2,:));
%%Compare
H(1)=plot(cf1);
hold on;
H(2)=plot(cf2,{'Color','g','LineStyle','--'});
hold off
legend(H,'Matt J','Image Analyst','Location','SE')
axis([1.2180 3.0 1.6036 3.3441]*1000); axis equal

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Image Category Classification finden Sie in Help Center und File Exchange

R2023b

### Community Treasure Hunt

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

Start Hunting!

Translated by