画像と 2 つの点があり、これらの 2 つの点の間のピクセルを読み取り、
それらを小さな 1x40 配列にリサンプリングし
たいと考えています。
OpenCV の C# ラッパーである EMGU を使用しています。
ありがとう、
SW
2227 次
3 に答える
4
あなたが探しているのはブレゼンハムのラインアルゴリズムです。これにより、直線に最も近いピクセル配列内のポイントを取得できます。ウィキペディアのリンクには、開始するための疑似コードも含まれています。
于 2011-02-12T13:35:08.140 に答える
2
回転とトリミング
私は最初に次のようにしようとします:
GetRotationMatrix2D
( )で回転行列を計算する- この線が水平になるように画像をゆがめます (
WarpAffine
) - 2 つのポイントの新しい位置を計算します ( を使用できます
Transform
) - 適切な幅と高さ 1 ピクセルの画像長方形を取得します (
GetRectSubPix
)
あちこちの補間は結果に影響を与える可能性がありますが、とにかく補間する必要があります。回転する前に画像をトリミングすることを検討してください。
線の 8 連結ピクセルを反復処理します
それ以外の場合は、ライン反復子を使用して、2 点間のピクセルを反復処理できます。のドキュメントを参照してくださいInitLineIterator
(申し訳ありませんが、リンクは OpenCV の Python バージョンです。EMGU については聞いたことがありません)。この場合、アンチエイリアス処理されていないラインのピクセルを反復処理すると思います。しかし、これははるかに高速である必要があります。
手動で補間する
最後に、画像を配列に変換し、線が通過する要素を計算し、手動でサブサンプリングして補間することができます。
于 2011-02-09T17:08:54.793 に答える