ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cpselect

コントロール ポイント選択ツール

構文

cpselect(moving,fixed)
cpselect(moving,fixed,CPSTRUCT_IN)
cpselect(moving,fixed,movingPoints,fixedPoints)
h = cpselect(moving,fixed,___)
cpselect(___,param1, val1,___)

説明

cpselect(moving,fixed) は、コントロール ポイント選択ツールを起動します。このツールは、2 つの関連するイメージの中のコントロール ポイントを選択可能にするグラフィカル ユーザー インターフェイスです。moving は、fixed イメージの座標系に含めるため歪める必要のあるイメージです。movingfixed は、グレースケール イメージ、トゥルーカラー イメージ またはバイナリ イメージを含む変数か、これらのイメージを含むファイルを指定する文字列になります。コントロール ポイント選択ツールはコントロール ポイントを CPSTRUCT 構造体で返します (詳細は、「コントロール ポイントの選択手順」を参照してください)。

cpselect(moving,fixed,CPSTRUCT_IN) は、CPSTRUCT_IN に格納されたコントロール ポイントの初期セットで cpselect を開始します。この構文を使用すると、CPSTRUCT_IN にあらかじめ保存されたコントロール ポイントの状態で cpselect を再開できます。

cpselect(moving,fixed,movingPoints,fixedPoints) はコントロール ポイントの組の初期セットを使用して cpselect を開始します。movingPointsfixedPoints は、それぞれ movingfixed の座標を格納する m 行 2 列の行列です。

h = cpselect(moving,fixed,___) はハンドル h をツールに返します。close(h) 構文を使用すると、コマンド ラインからツールを閉じることができます。

cpselect(___,param1, val1,___) は、このツールのさまざまな側面を制御するパラメーターと対応する値を指定して cpselect を開始します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。パラメーターには次のものが含まれます。

パラメーター説明
'Wait'

cpselect がユーザーによる点の選択が完了するまで待機するかどうかを制御する論理スカラー。false (既定の設定) に設定されている場合は、MATLAB® の他のプログラムと同時に cpselect を実行できます。true に設定されている場合は、点の選択を完了しないと MATLAB で他の作業を行うことはできません。

値は出力引数に影響を与えます。

h = cpselect(...,'Wait',false) はハンドル h をツールに返します。close(h) はツールを閉じます。

[moving_out,fixed_out] = cpselect(...,'Wait', true) は選択した点の組を返します。moving_out および fixed_out は P 行 2 列の行列で、それぞれ移動イメージと固定イメージの座標を格納します。

クラス サポート

イメージはグレースケール、トゥルーカラー またはバイナリです。グレースケール イメージは、uint8uint16int16singledouble のいずれかです。トゥルーカラー イメージは、uint8uint16singledouble のいずれかです。バイナリ イメージのクラスは logical です。

保存されたイメージを使用してコントロール ポイント選択ツールを起動します。

cpselect('westconcordaerial.png','westconcordorthophoto.png')

ワークスペース内の変数に格納されたイメージとコントロール ポイントを使用してコントロール ポイント選択ツールを起動します。

I = checkerboard;
J = imrotate(I,30);
fixedPoints = [11 11; 41 71];
movingPoints = [14 44; 70 81];
cpselect(J,I,movingPoints,fixedPoints);

航空写真から正射写真へのレジストレーションを行います。コントロール ポイントの選択が完了するまでブロックする 'wait' パラメーターを指定します。

aerial = imread('westconcordaerial.png');
figure, imshow(aerial)
ortho = imread('westconcordorthophoto.png');
figure, imshow(ortho)
load westconcordpoints % load some points that were already picked     
 
% Ask cpselect to wait for you to pick some more points
[aerial_points,ortho_points] = ...
       cpselect(aerial,'westconcordorthophoto.png',...
                movingPoints,fixedPoints,...
                'Wait',true);
 
t_concord = fitgeotrans(aerial_points,ortho_points,'projective');
Rortho = imref2d(size(ortho));
aerial_registered = imwarp(aerial,t_concord,'OutputView',Rortho);
figure, imshowpair(aerial_registered,ortho,'blend')                

詳細

すべて展開する

アルゴリズム

cpselect では、コントロール ポイントの予測に次の一般的な処理が使用されます。

  1. コントロール ポイントの有効な組をすべて検出します。

  2. 有効な組の数に基づいて次のように異なる方法を使用して、moving コントロール ポイントと fixed コントロール ポイントの間の空間変換を推測します。

    2 組

    無反射類似

    3 組

    アフィン

    4 組以上

    射影

  3. 空間変換を新しい点に適用して、予測点を生成します。

  4. 予測点を表示します。

参考

| | | |

この情報は役に立ちましたか?