2012-03-07 14 views
3

私は非常にうまくやりたいことを説明していないので、再度質問全体を書き直して説明を助けるグラフィックを追加します。イメージ上の2点間のピクセルを計算する

私はアンドロイド/ iPhone用のアプリケーションを設計しています。私はすでにそのアルゴリズムを設計していますが、次のアルゴリズムに固執しています。私がしようとしているのは、画像上に2本の水平線を置いて(どの画像でも、iPhone/Androidで撮影した画像だけ)、その線がどんなピクセルであるかを計算し、それらの間のピクセル数を計算することです。 I. このイメージを取る:

http://i.stack.imgur.com/41vS1.png

そうのように続いて、画像上の任意の場所に2本の水平線を配置します。私は計算したい何

http://i.stack.imgur.com/ne4tV.png

は、yの値であるか、どのように多くの垂直ピクセルは2つの線の間にある。これを行うには、私は2つのラインがどんなピクセルであるか知っていなければなりません。 水平線が両方とも高さが1ピクセルだけであると仮定すると、画像内のどのピクセルが線上にあるのか分かりません。私。各水平ライン上のy切片(y = mx + c)またはcの値は何ですか? さらに私が何を意味するのかを説明するために、画像はグラフであると仮定できます。各ピクセルは1の値に等しいので、1920x2560の解像度を持つ画像の場合、y軸の最大値は1920になり、x軸の最大値は2560になります。両方のラインのy切片は?

+0

@alextsc、これまでのところ...高さを計算するオブジェクトのピクセル数と距離に基づいて高さ(m)を計算するアルゴリズムを開発しました。私は、イメージ全体のピクセルの高さと幅のメタデータを読み取るだけでなく、イメージ内のピクセルを計算する方法についても失われています。 – Vigi

+1

ピタゴラス式を探していますか?;)距離は√(高さ^ 2 +幅^ 2) – KarlKarlsom

答えて

3

二点(Pythagora)間の距離:2本の水平線の間

dx = x1 - x2; 
dy = y1 - y2; 

dist = sqrt (dx*dx + dy*dy); 

距離:

d = y1 - y2; 

あなたのラインがy1 = k1x + n1とのように定義されている場合は、(彼らは水平だ、​​k2は0)、それらの間の距離はn2 - n1です。

EDIT:あなたの質問を編集した後は、もうちょっと意味があります。しかし、まだ:あなた(またはユーザー)が行を追加しているので、あなたのコードは常にのどこにあるか知っています。その端座標は次のようになります

LINE1:{(0、Y1):(picture.width、Y1)} LINE2:{(0、Y2):(picture.width、Y2)} 距離:| Y2 -y1 |

両者は水平なので横断することはありません。

y1とy2(行配置コードから)の参照を適切なスペースにとどめてください。あなたの質問はAndroidとiOSのため、答えは:MVCのmodelに対応するコードの部分です。

+0

私はちょうど私の質問を編集しました。 – Vigi

+0

@Vigi:あなたの質問はそれほど明確ではありません。あなたは画像をスキャンし、これらの2つのラインを見つけるグラフィカルなアルゴリズムを探していますか? –

+0

私は質問を書き直しましたが、今はもっと意味がありますか? – Vigi

関連する問題