Calculate radius from scatter plot

12 次查看(过去 30 天)
yonatan s
yonatan s 2020-6-22
编辑: yonatan s 2020-7-9
Hi,
I need to calculate the radius of a circle, ignoring all surrounding particles (image attached). The circle itself consists of many particles (over 100,000). Note that the center of the circle is not at the origin.
Thanks.
EDIT: here is how I solved it:
posn=normal(poscm); %poscm is the coordinates matrix
[k,edges]=histcounts(posn,1e5);
[~,imaxk]=max(k);
R=edges(imaxk+find(k(imaxk:end)==0,1)); %find the first zero value after the maximum
  5 个评论
yonatan s
yonatan s 2020-6-23
It's not perfect, but it seems isoutlier is the right approach.
pdist consumes too much memory.
I tried using some image processing tools, the problem is that axes change when transforming the plot to an image.
Thanks.
Adam Danz
Adam Danz 2020-6-23
If you're still looking for a solution, attach the fig file containing the data, or attach a mat file containing the (x,y) coordinates.

请先登录,再进行评论。

回答(3 个)

Matt J
Matt J 2020-6-22
You could try using clusterdata to find the big concentration of points. Then minboundcircle from the File Exchange to get the radius,

darova
darova 2020-6-23
Try density function hist3
r = rand(500,1)/5;
t = rand(500,1)*2*pi;
x = [rand(50,1); r.*cos(t)+0.5];
y = [rand(50,1); r.*sin(t)+0.5];
n = 20;
k = hist3([x y],[n n]);
k(k<2) = nan;
pcolor((0:n-1)/n,(0:n-1)/n,k)
hold on
plot(x,y,'.r')
hold off
  4 个评论
Matt J
Matt J 2020-6-23
[centers,radii] = imfindcircles(A,radiusRange)
yonatan s
yonatan s 2020-6-23
the axes change as I transform a plot to an image.

请先登录,再进行评论。


darova
darova 2020-6-24
Here is the idea
  • scale your data
  • create an image (fill pixels)
  • dilate image to create solid round object (circle)
  • use imfindcircles
  5 个评论
yonatan s
yonatan s 2020-7-9
编辑:yonatan s 2020-7-9
Hi darova, went over it again. How do I scale the radius back? If I simply multiply it by the scaling factor it doesnt come out right.

请先登录,再进行评论。

类别

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

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by