ポリゴン(凹面または凸面)を使用するmatlabプログラムを開発しています。ポリゴンに対して imdilate や imerode などの画像処理関数を使用する必要があります。この目的のために、ポリゴンを画像に変換する必要があります。ポリゴンをバイナリ マトリックス (フォアグラウンドは 1、バックグラウンドは 0) で直接スケッチする方法があるかどうか疑問に思っています。
現在、「getframe」、「frame2im」、「im2bw」関数の順に使用しています。ただし、その欠点は、matlab がそのプロットをピクセル単位で表示しないため、最終的な画像 (= マトリックス) のサイズ (つまり、フレームを画像に変換するときのピクセル単位の画像のサイズ) を制御できないことです。 (?)。したがって、誰かがプロットを「ズームイン」または「ズームアウト」するたびに、結果のマトリックス (= 画像) は異なります。
私のコード:
Polygon = [ 15 45 33 30 40 23 ; 9 9 24 15 13 13]';
figure(1); clf; patch(Polygon(:,1),Polygon(:,2),'black');
axis off
%convert the plot to binary image
frame = getframe(gca);
im =frame2im(frame);
level = graythresh(im);
bw = ~im2bw(im,level);
%draw the resulting image
imtool(bw)
%dilate the image
SE = strel('square',5);
bw2 = imdilate(bw,SE);
%draw the dilated image
imtool(bw2)