2

画像処理初心者です。スキャナー出力用のbmpフォーマットとファイルのイメージがあります。.binbin ファイルには、hex値または生データが含まれています。

まず、プロセスを説明します。13桁の数字を使用しています。各数値には、ドット形式で表されるパターンがあります。たとえば、13 桁の数字には 20 個のドットがあります。各ドットの位置は桁によって異なります。これがencryption部品です。現在、これらのドットは繰り返し印刷されています。これらは、出力として上記のファイルを提供するスキャナーを使用してスキャンされます。

次のステップは、これらの出力を処理して 13 桁の数字を返すことです。と を使用openCVしてCいます。誰かがこれを行う方法についていくつかのアイデアを教えてもらえますか? binファイルを投稿できません。ただし、bin ファイルの内容は次の形式です。

10 78 84 88 84 84 8c 88 88 8c 8c 90 88 88 8c 8c 90 90 88 90 8c 8c 8c 8c 8c 94 90 90 8c 90 90 94 8c 8c

画像に適用されたキャニー エッジ検出の出力を追加しました。

画像で行われた巧妙なエッジ検出の出力

前もって感謝します...!

4

1 に答える 1

0

私は本当にopencvユーザーではありません。ただし、ドット領域を抽出したいと仮定すると、これに対処するための簡単で汚い方法は、巧妙なエッジ検出を使用してバイナリ イメージ内の連結成分を識別することです。これを参照してください

すべての接続コンポーネントにラベルを付けたら、それぞれの循環性を確認できます

次に、各連結成分の円形度または面積 (各連結成分の 1 の合計として計算) にフィルターを適用します。フィルターを通過したものだけがあなたのドットです。

外側の円にマージされたドットはおそらく除外されるため、これはおそらく最善の方法ではありませんが、孤立したドットのみを気にする場合は、原則として機能するはずです. また、エッジ検出を適用するのではなく、画像に適切なしきい値を設定することをお勧めします

幸運を

于 2013-05-01T16:26:30.157 に答える