2016-06-18 3 views
1

私はOpenCV 3.1とVisual Studio C++を使用しています。OpenCV "Blured Corners"検出器(C++)

が、私はコーナーではなく、曲線、四角形や円を検出したい目標。つまり、ぼやけた文字の場所を探したいのです。ここに私の関心領域面積:彼らは現在の市-Tomasiのコーナー検出器で検出することができオレンジ1よりもぼやけているので

Areas of interest

赤い領域は、より高い優先度を持ちます。

私は

を試してみました私は市-Tomasiのコーナー検出器をテストしている - コードは、あなたが鮮明な画像を持っているときにテキストで領域を見つけるのが素晴らしいです、このチュートリアルhttp://docs.opencv.org/2.4/doc/tutorials/features2d/trackingmotion/good_features_to_track/good_features_to_track.htmlに配置されます。私は類似した(非常に良い)性能を持ち、bluredテキストを検出できるOpenCVを使ってアルゴリズムを見つけたいと思います。テキストがぼやけている部分(それを読むことはできません - コーナーを検出するために)は無視すべきです。また、良好な鮮明度を有する領域は無視すべきである。ここで

は、私が試したものを一例である - これは市-Tomasiのチュートリアルからの結果である:

これは、元の画像です:

Source image

そして、これは私が

得るものですResults

上側画像パラメータminDistance = 5、qualityLevel = 0.01、下側画像minDistan CE = 10は、qualityLevel = 0.05のparamsの残りの部分は、両方の画像のために同じです。

int blockSize = 3; bool useHarrisDetector = false; double k = 0.04; 

間違った結果が、それはblured、テキストを発見していないということです - 右上または左下にある番号「195」を、例えば「14ms」および/または「19ms」である。 むしろ、私が欲しいものではない最高の鋭い結果を見つけました。

私はシャープな領域をぼかし、blured領域をシャープにする何らかのカーネルを使うことができたら、Shi-Tomasiコーナー検出器が結果を見つけるかもしれないと私は信じています。

どのようにヒントを達成するためのヒント?

+0

この場合、信頼性はあまり期待しないでください。ゴミ出し入れの原則は完全に適用されます。 –

答えて

0

小さなアイデアだとは思うけど、性能が枯渇するかもしれません。窓(3 * 3やパフォーマンス向上のために、より大きな)によると、各反復での画像窓から

反復を実行します。

  1. ブラーこのウィンドウ。
  2. ぼかし前のウィンドウとぼかし後のウィンドウの間にcv::Normを計算します。この値を各ウィンドウのどこに保存するか。ブラーが高い場合

    1. は、彼らが低い:

    これらの値は、ある特性を有しています。

  3. ブラーは今、これらの値を通過し、あなたの基準を満たす値を見つける

低いときに彼らは高いです。