如何在Voronoi图中找到特定区域?如何放大图以选择小区域?

5次浏览(最近30天)
Amit Ifrach
Amit Ifrach 2021年8月15日
评论: 图像分析员 2021年8月15日
לק"י
大家好,我叫阿米特。
我试图在Voronoi图中找到特定多边形的区域,该区域将由inpolygon命令选择,或者其他可以让我绘制我想要的区域的命令。
例如:
一般选定对象的voronoi图为(忽略绘制的多边形):
正如我提到的,我想要得到一个选定圆上的多边形的面积或者voronoi图中选定的多边形。
我试过的原始代码(KSSV先前答案的一部分)- //www.tianjin-qmedu.com/matlabcentral/answers/446168-how-can-i-get-the-area-of-each-polygon-of-a-voronoi-diagram) 只是用来从散点图中取出一个大物体。
xnm=csvfilecontainingdots(:,1);
ynm=csvfilecontainingdots(:,2);
%CSV中带有填充圆圈(点)的散点图
散射(xnm,ynm,1,“填充”)
%保存多边形的坐标。多边形将有j个点。
[xpoly,ypoly]=ginput(10);
%控制图
持有
%从绘图中取出选定的多边形
%h=drawpolygon('FaceAlpha',0)
roi=inpolygon(xnm、ynm、xpoly、ypoly);
%掩盖投资回报率
xroi = xnm。* roi;
yroi=ynm.*投资回报率;
%对所选区域进行散点绘制
持有
图(1)
散射(xroi yroi 1,“填充”);
相同的
%voronoi,使用的代码来自://www.tianjin-qmedu.com/matlabcentral/answers/446168-how-can-i-get-the-area-of-each-polygon-of-a-voronoi-diagram
vor=VORONI(X ROI,yroi);
[v,c] = voronoin([xroi yroi]);
%身材
%等一下
%泰森多边形法(xroi yroi)
VORAEA ACD45NUM10THIN2ND=零(长度(c),1);
对于i=1:长度(c)
v = v(c{i},1);
v2=v(c{i},2);
%补丁(v1,v2,兰德(1,3))
Vorareaacd45num10thin2nd (i) = polyarea(v1,v2);
终止
最后一件事…当我尝试使用多边形时,我不能放大图片以获得所需区域的高细节。你有解决办法吗?
在这里,您可以看到放大按钮为灰色且无法使用:
非常感谢。
埃米特。

答复(1)

马特J
马特J 2021年8月15日
你应该使用 polyarea() .
2评论
图像分析员
图像分析员 2021年8月15日
当你计算每个多边形的面积时(你说你已经可以做了),然后 简单地调用inpolygon () 确定该多边形的所有顶点是否在您手工绘制的轮廓内。如果 内, 保持 那个区域,如果是 在,然后 丢弃 那个地区。

登录以发表评论。

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!