ジグソーパズル:ピースを分離する(「スタック」ブロブを分離する)


7

私は画像処理の初心者で、足を濡らそうとしています。ジグソーパズルのピースの写真を撮りました。ピースを分離したいと思います。

ここに画像の説明を入力してください

私はこれを行うにはPython SimpleCVライブラリを使用していて、これまでのところ、私は使用してはかなりまともな結果を得ることができたfindBlobs()hueDistance()drawMinRect()。これが私がこれまでに得たものです

ここに画像の説明を入力してください

正直、かなり良い。それが間違っている唯一の場所は、これらの2つのピースが中心の少し右に触れていることです。

画像を拡張してみましたが、問題が悪化しているようです。これらのblobを「縮小」して重複を排除するにはどうすればよいですか?


(hueDistanceの後の)ある時点で、背景が暗く、前景が明るい画像があると思いますよね?(またはその逆。)この画像を取得して拡張すると、明るい領域が拡大します。侵食すると、明るい部分が縮小します。
Niki Estner 2013

1
こんにちは、あなたは絵を浸食する必要があります。パズルのサイズが小さくなりますが、関節も削除されます。オブジェクトを元のサイズにしたい場合は、流域アルゴリズムを使用できます。そして次回は、写真を撮る前にすべてのパズルを切り離してみてください:)
Abid Rahman K

1
均一な照明の下で、フラッシュなしで写真を撮影することを強くお勧めします。モルフォロジー演算のオープニングを使用でき、侵食と膨張に対応します。
Andrey Rubshtein 2013

回答:


1

私はAbid Rahman Kに同意しますが、侵食すると形状が収縮するだけです。ギャップをなくすために、Abid Rahmanは流域ベースのアプローチを提案していますが、より速くて簡単な方法として、次のことを試してみてください。

  • 領域を侵食する
  • 接続コンポーネントのラベル付けを適用します。
  • 領域を拡張します。

このようにすると、形状はほぼ同じになりますが(形態に起因するアーティファクトがいくつかあります)、確実に単一の接続されたコンポーネントになります。

流域と距離変換も強力であり、オーバーラップが多い場合に適しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.