2017-08-22 9 views
0

アルファシェイプをいくつかのポイント(コードの例)から作成し、シェイプをラスタグラフィックス形式にエクスポートします。私はプロットマーキング(軸、スケールなど)ではなく、形状のみが必要です。アルファシェイプをビットマップにエクスポート/ラスタライズ

ビットマップとして白地に結果として生じる三角形だけが必要です。 スケールは1単位= 1ピクセルである必要があります。

x = [0 10 20 30 30 30 15]; 
y = [0 0 0 0 15 30 15]; 

shape = alphaShape (x',y'); 

plot (shape, 'FaceColor', 'black'); 

alpha shape plotted

私は図形をエクスポートするか、それらをラスタライズする方法をどのように何かを発見していません。それを行う方法はありますか?

答えて

0

あなたの後に次のコードを実行します。行わ

imgwidth = max(1, ceil(max(x) - min(x))); 
imgheight = max(1, ceil(max(y) - min(y))); 
ax = gca; 
ax.Visible = 'off'; 
ax.XTickMode = 'manual'; 
ax.YTickMode = 'manual'; 
ax.ZTickMode = 'manual'; 
ax.XLimMode = 'manual'; 
ax.YLimMode = 'manual'; 
ax.ZLimMode = 'manual'; 
ax.Position = ax.OuterPosition; 
af = gcf; 
figpos = getpixelposition(af); 
resolution=get(0, 'ScreenPixelsPerInch'); 
set(af, 'paperunits','inches', .... 
    'papersize',[imgwidth imgheight]/resolution, .... 
    'paperposition',[0 0 [imgwidth imgheight]/resolution]); 
print(af,'out.png','-dpng',['-r',num2str(resolution)],'-opengl') 

もの:

  • は、データ範囲を取得し、画像の大きさに変換します。
  • 軸とティックをオフにします。
  • 実際のコンテンツを囲むパディングスペースを最小化/削除します。
  • 出力画像の1単位のデータを1ピクセルにマップします。行われていない

もの:

  • 保証アスペクト比。

このスクリーンショットは、非統一アスペクト比出力を示す(ただし、動作するはず):

example screenshot

参照の

Mathworks - Save Figure at Specific Size and Resolution

MATLAB Central - saving a figure at a set resolution

Mathworks - print

Mathworks - Save Figure with Minimal White Space

関連する問題