2

このようなビットマップ画像があります

ここに画像の説明を入力 私の要件は、画像をロードし、画像のコントラストやその他のものを変更するための GUI を作成し、C++ または C# を使用して図に示すように特定の領域を銀色でマークするアルゴリズムを作成することです。私の検索 必要な領域を見つけるために画像のヒストグラムを使用できることがわかりました。これらは手順です。

  • ヒストグラムを取得する
  • 強度差の検索
  • 改行を検索

誰かがここからどのように進めることができるかを教えてもらえますか.これにOpencvを使用できますか、または他の効率的な方法が利用可能ですか..?

ノート:

ここに画像の説明を入力この画像には多くの輝点があり、ブロブ アルゴリズムはうまくいきません。オブジェクトのような長方形の正しい座標を取得するためのその他の提案。

ありがとう

4

3 に答える 3

3

OpenCV が動作するはずです。

  1. 入力画像をグレースケールに変換します。
  2. adaptiveThreshold白黒に変換します
  3. 機能検出には、OpenCV 機能検出器の全リストがあります。検出しようとしている正確な機能に応じて、いずれかを選択してください。

たとえば、Simple Blob Detector必要な基本的な手順がリストされている を見てください。あなたの銀色の四角形は確かに「単純なブロブ」(穴やその他のハードビットなし)としての資格があります

于 2012-05-08T11:10:11.703 に答える
1

あなたの写真がすべてそのように見える場合、銀色の領域をセグメント化してその中心を見つけることは複雑ではないように思えます. 基本的に、これらのアルゴリズムを以下の順序で適用する必要があります。

  1. 大津適応しきい値アルゴリズムを使用して画像をバイナリ化することをお勧めします
  2. ラベル付け (ブロブ) アルゴリズムを適用する
  3. ノイズに問題がある場合は、ブロブ アルゴリズムの前にオープニング フィルターまたはメジアンを使用できます。
  4. ブロブが1つしかない場合(私が推測する最大の領域)、モーメントアルゴリズムを使用してその重心を見つけます。次に、探しているX、Y座標を取得します

これらのアルゴリズムは古典的な画像処理であり、見つけるのは難しくないと思います。いずれにせよ、私はそれらを C# で実装することができます。問題が解決したと思われる場合は、後でここに投稿できます。

于 2012-05-08T09:43:34.287 に答える
0

Microsoft のマルチ メディア フレームワークである Directshow に関する調査が、タスクの達成に役立つ可能性があります。

于 2012-05-07T03:48:38.693 に答える