2017-10-18 9 views
4

私は以下のスクリプトのようにimpoly使用していますし、私は2つの質問があります。リミットimpolyクリックして長方形に変換 - MATLAB

  • を私は(例えば、5)をクリックし、近いポイントに制限することができますそれは自動的に?

  • 添付画像(赤いボックス)のようにインポリを正解に変換する方法はありますか?

スクリプト:impolyのドキュメントから

clc; 
clear; 

figure, imshow('pout.tif'); 
hpoly = impoly(gca); 

enter image description here

答えて

0

、私はそれが直接可能ではないと思います。そのようなカスタム動作のために、あなた自身のポイントピッキング機能を書くべきでしょう。

いくつかの機能がこの方向に役立ちます。

  • [x,y] = ginput(n)

  • line
  • ポイント間のライン、および長方形のバウンディングボックス描画するために、ポイント
  • impoint(hparent,x, y)ドラッグポイントを描くを選択します。

impointは、'PositionConstraintFcn'パラメータを持ちます。これは、ポイントを移動したときにあなたの関数を呼び出します。ポイントを移動すると線の描画を更新することができます。

ポイントピッキング(ポイントの数などを制限する)と、境界ボックスを計算する "表示"関数を扱うメイン関数を持ち、ポイント間の線を描くことをお勧めしますポイントが追加されたとき(メイン関数内)、またはポイントが移動されたときに呼び出すことができます('PositionConstraintFcn'パラメータを使用)。

関連する問題