画像内のある点 (原点に設定) から別の点 (任意に設定) までの距離 (x、y 座標) を見つける簡単な方法を見つけようとしています。理想的には、これは画像を 2 回クリックして原点を設定し、次に 2 番目の点を設定してから座標を出力できるようにする matlab コードです。どうすればこれを行うことができますか?
質問する
1185 次
1 に答える
0
画像座標系の原点は、画像の左上隅の点 (1,1) ((0,0) ではない) にあります。とにかく、この点または他の点の原点を保持し、原点が P1(x1,y1) で、もう一方の点が P2(x2,y2) であるとします。いいえ、これらのポイント間の距離を計算するには、さまざまなメトリックを使用できます。3 つの有名なメトリックは次のとおりです。 3 つの有名なメトリック (2 点間の距離を計算するため): 1- マンハッタン距離
d = abs(x1-x2) + abs(y1-y2)
2-ユークリッド距離
d = sqrt((x1-x2)^2 + (y1-y2)^2)
3- ミンコフスキー距離
d = (abs(x1-x2)^c + abs(y1-y2)^c)^(1/c)
メトリックの詳細については、これらのリンク1、2、3を参照してください。
MATLAB では、マウスごとにピクセルを選択できる機能を提供する ginput 関数を使用できるため、最初に画像を読み込んでから点を選択できます。
I = imread('c:\test.jpg');
imshow(I);
[X,Y] = ginput(2);
2 はデータを選択する (画像からピクセルを選択する) 数であり、次のようなものを使用できます。
d = ((X(1) - X(2)) ^ 2 + (Y(1) - Y(2)) ^ 2) ^ 0.5;
他のメトリックを使用することもできます....
于 2013-04-24T20:46:52.780 に答える