1

画像に線を引くための関数ファイルを作成しました[img]=drawline(point1,point2,color,img)。これは、画像内にある任意の2点を接続するために使用されます。画像にボロノイ図を作成するように求められます(プロット機能を使用していません)。今のところ、画像に線を表示しようとしていますが、ポリゴンのエッジの頂点を取得する方法がわかりません。

私はいくつかのテストコードを使用しています:

x=[50 70 70 30 40 ];% this is just some simple values for testing, 
y=[50 30 90 30 80 ];% in further stage, i plan to use `x=rand(n,1)*200`.
img=zeros(200,200,3);
color=[255 0 0];
[vx,vy]=voronoi(x,y); 

私は上までしか知りません、次に私for loopは頂点を並べるために使う必要があると思います。どうやって始めたらいいのかわからない。また、ネガティブで無限の問題を画像(ピクセル座標)で表示する必要がある場合、それらを解決する方法にもこだわっています。

4

1 に答える 1

2

画像に線を引くこのdrawline関数があるとすると、これは、一連の点のボロノイ図のエッジをループする方法です。

%# set of points and voronoi diagram
X = rand(10,1)*200; Y = rand(10,1)*200;
[vx,vy] = voronoi(X,Y);

%# vertices connecting the edges
p1 = [vx(1,:);vy(1,:)];     % columns are "from" points
p2 = [vx(2,:);vy(2,:)];     % columns are "to" points

%# draw edges on top of image matrix
img = zeros(200,200,3);
clr = [255 0 0];
for i=1:size(vx,2)
    img = drawline(p1(:,i), p2(:,i), clr, img);
end
于 2011-10-19T10:21:52.177 に答える