2017-11-06 28 views
1

実際のアプリケーションで問題を説明することから始めます。私は暗い表面を指しているカメラを持っています。給紙装置(制御コンピュータによって指示されたときにページを吐き出す単純な機械)は、カメラが見ている領域に用紙を給紙する。非常に正確なライン検出、openCV Java

私は画像を処理し、フィーダが正しくフィードしたかどうかを判断しています。

これは、ページが存在するだけでなく、複数のページが存在するかどうかを判断できる必要があることを意味します。時には、複数のページが混在しているため、ページが非常に密接に近く、相互に完全に一直線に並んでいるため、見た目が非常に似ていない限り、視覚的に1ページに見えます。

私が抱えている問題は、ハニートランスフォームと組み合わせたCanny Edge Detectionが、私に必要な精度を与えてくれないということです。画像の中で紙を見つけるためにCannyを使用する典型的な例は、各ページの端が多くの線(5-15)である結果を返す。 find contourを使用すると、これが長方形であると判断されます。

これらの典型的な例は、ページの端に非常に近い別の行があることを検出できるようにする必要があるため、役に立ちません。

私はハニートランスフォームのしきい値とCannyの前にどれほどのぼかしを適用し、それをかなり信頼できるものにしていましたが、問題は感度が低くなりすぎて、上記の例のフィード(お互いの上にある)は、このシステムでは検出されません。

例: Feed

上記画像は、2つの可視ページだけフィーダから出たものを有しています。ページにはテキストがあります。私はページの角度を特定できる必要があり、実際にはページが1つしかないことが必要です。

問題は、2つのページが一緒になっているかどうかを知るには十分な感度のライン検出が必要だということですが、検出されたページのテキストの行を持たないようにする必要があります。

+0

いくつかの画像を表示してください – Miki

答えて

0

私はあなたが他のものをカバーする1つの紙のかすかな線を探していないことをお勧めしますが、この白い部分の全体的な形を探します。これらのページがすべてA4サイズであることがわかっている場合は、白い領域の矩形を見つけ、角度が正しいか、辺の比率が2の平方根であるかどうかを確認します.2つの用紙が完全に整列している場合はあなたが何とか紙の厚さを測定しない限り、とにかくそれを検出しません。

長方形ABCDの角を見つけるのに役立つ角検出フィルターがあります。ベクトルABがBCとADに垂直であるかどうかを確認します。また、コンパクトな白い領域内に合理的な閾値で検出された4つ以上のコーナーがある場合、それはメッセージ「somethings not ok」である。

関連する問題