この質問は、SIFT 機能と MATLAB での使用に関するものです。次の情報を含むデータがあります。
- 各特徴点の
x,y
座標 - 各特徴点のスケール
- 各特徴点の向き
- 各特徴点の記述子ベクトル。各ベクトルには 128 個のコンポーネントがあります。
キーポイントを対応する入力画像に描画する際に問題があります。これを行う方法を知っている人はいますか?使用できる組み込み関数はありますか?
どうもありがとう。
この質問は、SIFT 機能と MATLAB での使用に関するものです。次の情報を含むデータがあります。
x,y
座標キーポイントを対応する入力画像に描画する際に問題があります。これを行う方法を知っている人はいますか?使用できる組み込み関数はありますか?
どうもありがとう。
ポイント自体を表示するだけの場合は、x
とy
の座標を別々の配列に読み込んでから、イメージを表示し、hold on
コマンドを使用して、ポイントをプロットします。これにより、ポイントが画像の上にオーバーレイされます。
これらの座標が既に利用可能で および として保存されているx
とy
仮定し、画像が利用可能で として保存されていると仮定するとim
、次のことができます。
imshow(im);
hold on;
plot(x, y, 'b.');
x
座標は水平で、左から右に増加することに注意してください。y
座標は垂直で、上から下に向かって増加します。座標の原点は左上隅で、 です(1,1)
。
ただし、検出ウィンドウ、そのサイズ、および記述子の向きを表示したい場合は、それVLFeat
を行うための優れた機能があるため、ライブラリを確認することをお勧めします。
検出されたスケールを反映するように各ポイントを変更することもできます。このようにしたい場合は、スケールを という別の配列として保存したと仮定しますscales
。その後、次のことを試してください。
imshow(im);
hold on;
for i = 1 : length(x)
plot(x(i), y(i), 'b.', 'MarkerSize', 10*scales(i));
end
の定数係数10
はかなり恣意的です。キーポイントを検出するために使用したスケールの数がわからないため、スケールが 1.0 の場合、プロット時にキーポイントがデフォルト サイズで表示されます。納得のいく結果が得られるまで、数値をいじってみてください。ただし、スケールが問題にならない場合は、最初の方法で問題ありません。