2016-07-02 8 views
0

私はpythonを使ってopencvの初心者です。私は多くの16ビットグレースケールの画像を持っており、毎回異なる画像で同じオブジェクトを検出する必要があります。 opencv pythonでのテンプレートマッチングを試しましたが、望ましくない可能性のあるさまざまな画像に対して異なるテンプレートを使う必要がありました。誰でも私に効率的にそれを行うためのPythonのアルゴリズムを提案することができます。opencv-pythonオブジェクトの検出

+1

参考:[あまりにも限定的ではないスタックエクスチェンジサイトがありますか?](http://meta.stackoverflow.com/questions/252777/is-there- a-less-restrict-restriction-stack-exchange-site-special-for-not-too-spe) – nlloyd

+0

あなたはまだ答えを探していますか? – user1269942

+0

私は**ガウスピラミッド**を提案します –

答えて

0

あなたの質問はあまりにも一般的です。フィーチャマッチングは非常に広大な分野です。 完全に使用されるアルゴリズムのタイプは、検出するオブジェクト、環境などによって異なります。

オブジェクトのサイズや角度を変更しない場合は、テンプレートマッチングを使用してください。

イメージのサイズと向きが変わる場合は、SIFTまたはSURFを使用できます。

オブジェクトに背景と異なる独自の色の特徴がある場合は、hsvメソッドを使用できます。

画像のグループをオブジェクトとして分類する必要がある場合は、たとえば、すべてのクリケットのコウモリを検出して、コンピュータにオブジェクトの外観を教えるためのポジティブなイメージを訓練し、そうではありませんが、ハートトレーニングを使用して行うことができます。

0

uはスライディングウィンドウ方式を試すことができます。すべてのサンプルでオブジェクトが同じである場合

0

既知の色、形、サイズを検索する方法の1つです。

あなたはHSV色空間にあなたの画像を変換して、次は

cv2.inRange(source, (minHue, minSat, minVal), (maxHue, maxSat, maxVal)) 
を呼び出すことによって、あなたはを満たし、あなたのイメージ内のすべての領域を見つけるために cv2.findContoursを使用することができ、あなたのイメージにHSVしきい値を実行することにより開始することができます色の要件。次に、 boundingRectcontourAreaなどのメソッドを使用して、必要なオブジェクトの特定の属性を見つけることができます。

最終的には、フレームを取り、設定した基準に合った形を探すことができる「パイプライン」です。あなたがしたいことの複雑さ(あなたが探しているものを言っていない)によっては、これはうまくいかないかもしれませんが、私はそれを妥当な成功で使用しました。

GRIPは視覚的に物事をしきい値処理できるアプリケーションであり、必要に応じてPythonコードを生成します。私は実際に生成されたコードをそのまま使用することをお勧めしません。なぜなら、私はいくつかの問題に遭遇したからです。 GRIPへのリンクは次のとおりです。https://github.com/WPIRoboticsProjects/GRIP