2016-10-06 11 views
-1

私の仕事でコンピュータビジョンプロジェクトに参加しました(私は エンジニアリング開業医です)、私は回路ボードの2つの画像を比較して、アセンブリを実行します。画像2値化、適応しきい値パラメータの問題

(これはイムがやっものです:http://www.electroschematics.com/10482/pcb-defects-detection-opencv/)私は私の方法が良いものであれば知らないけど、私は2つのバイナリイメージを比較して、二つの画像間の違いを発見したためにXOR演算を適用することがわかっ

しかし、私は自分のコードで適応閾値の関数は、結果の画像は、私は(それは黒いスペースがたくさんあるか、回線が欠落しているか太字である)結果ではありません私は多くのパラメータを試してみますが、私は見つけることができません良いもの。ここで

しきい値のコードです:私はちょうど(ラインをより明確にするためにいくつかのパラメータがあるかどうかを知りたい

[Imgproc.adaptiveThreshold(img1,src, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 13,10);] 

と、これは

circuit board

結果であり、またはちょうど私が逃した別のバイナリmehotd)

答えて

0

私はちょうど私が知りたいFいくつかのパラメータのラインをより明確にする(または多分私はちょうど逃した別のバイナリmehotd)

は、あなたがさらにフィルタリングによってラインをより明確にすることができますがあります。たとえば、参照したガイドでは、スレッショルドは2つの回路ボード上の欠けているオブジェクトを識別するため重要な役割を果たします。しきい値が0に設定されている場合、識別された小さな小さな白いドット(guideから示唆されるように、異なる照明による可能性が高い)は、2つのボード間の「差異」の検出とみなされます。閾値を上げることは、ピクセルの最小閾値を満たすセグメントを検出するために重要である。

が、私は自分のコードに適用されたときに適応閾値の機能が得られる画像は私が望む結果ではない(それは黒のスペースや回路線の多くが欠けていたり太字されている)、私はたくさんのを試してみてください私は良いものを見つけることができません。

異なるピクセルのクラスタ(出力 'xor'イメージに表示されているように)は、ボード全体でしきい値が異なる可能性があるため、何が必要なのかを正確に検出できます。私は、次のパラメータは、おそらくあなたはより多くの許容しきい値を設定するのに役立ちます見つけるImgproc.adaptiveThreshold

public static void adaptiveThreshold(Mat src, 
       Mat dst, 
       double maxValue, 
       int adaptiveMethod, 
       int thresholdType, 
       int blockSize, 
       double C) 

ためdoc'sを見て、あなたの特定のsitationについては

、。これらのパラメータ(すべてのパラメータが重要な役割を果たしている)であること:

maxValue - Non-zero value assigned to the pixels for which the condition is satisfied. See the details below. 
blockSize - Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on. 
C - Constant subtracted from the mean or weighted mean (see the details below). Normally, it is positive but may be zero or negative as well. 

はあなたが(あなたの元の質問の状態ごとに)255のmaxValueのを持っているとしましょう。ブロックサイズは13、Cは10です。

私の理解から、見張り者がここで何かをキャッチするならば、私も学習から利益を得ることができます.13 * 13ブロックは約169の合計ピクセルであり、しきい値は一定係数Cだから、私はこれらの数字がその可能性を最大限に引き出せないとは思わない。

私は、ソリューション提案:

  • 注意して、あなたは以下にリンクされているguide/articleで提案されているように5.0制限事項に改善しよう。
  • 画像全体を検索する代わりに、画像の一部で検索すると、画像のさまざまな部分に可変しきい値を設定できるため、精度が向上する可能性があります(たとえば、

注:使用しているソースイメージと使用しているコードを投稿することで、イメージの別のコーナーにノイズが多く表示される可能性があります。 (how to ask a good questionを参照してください)

編集:の例の関連情報を参照してくださいとopenCV(関連)。

関連する問題