座標と面積を対応させたい

Voronoi図形の面積とその領域の座標を対応させてワークスペースに格納したいです。しかし、以下のコードを打つと図上では面積は表示されますが座標がわかりません。どうコードを書けば良いでしょうか?
figure, imshow(rgb2);
hold on
A = zeros(length(C),1);
for i = 1:length(C)
if all(C{i}~=1)
pat = patch(V(C{i},1),V(C{i},2),i);
A(i) = polyarea(V(C{i},1),V(C{i},2));
center = mean([V(C{i},1),V(C{i},2)]);
text(center(1),center(2),num2str(A(i)));
plot(center(1),center(2),'b x')
end
end
disp(A);
hold off

回答(1 个)

KSSV
KSSV 2018-10-11

2 个投票

clear all ;clc
figure, imshow(rgb2);
hold on
A = zeros(length(C),1);
coor = cell(length(C),1) ;
for i = 1:length(C)
if all(C{i}~=1)
pat = patch(V(C{i},1),V(C{i},2),i);
A(i) = polyarea(V(C{i},1),V(C{i},2));
coor{i} = [V(C{i},1) V(C{i},2)] ;
center = mean([V(C{i},1),V(C{i},2)]);
text(center(1),center(2),num2str(A(i)));
plot(center(1),center(2),'b x')
end
end
disp(A);
hold off
coor gives you the required coordinates.

3 个评论

Senka Okamoto
Senka Okamoto 2018-10-11
编辑:Senka Okamoto 2018-10-11
1つのcellにdoubleが入っています。これは何ですか?
If any error, show the error...the coordinates are stored in coor variable.
coor{i} = [V(C{i},1) V(C{i},2)] ;
If any error, you have to change the way the are joined.
KSSV
KSSV 2018-10-11
Yes..those are the coordinates you need. As the region has different sides..you cannot store all coordinates into a matrix. So every regions coordinates are stored in a respective cell.
region i'th coordinates are C{i}

请先登录,再进行评论。

类别

标签

编辑:

2018-10-12

Community Treasure Hunt

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

Start Hunting!

Translated by