2016-05-02 5 views
0

Example Imageバイナリイメージ

から非周期的な線を削除するにはどうすれば彼らが故障しているとして(赤色で示されている)の行を削除します。黒色で示された線は、同じ周期(約)で繰り返されている。期間はあらかじめわかっていません。非定期ライン(赤色で表示)を自動的に削除する方法はありますか?

注:画像はバイナリです(背景は&です)..説明のためだけに赤い色で示されています。

+0

周期的な線よりも非周期的な線は少なくなりますか? –

+0

@Balaji x座標をとる(行ごとに開始点と終了点の座標をとるため)行間の平均距離..しかし、非周期行が多い(確率は低い)...平均距離は期間の良い指標ではありません。 。マーク - より少なくなる可能性がより低く – OpenCVHelp

+1

あなたのコードを示してください –

答えて

0

もちろん、方法はあります。ほとんどいつでも何かをする方法があります。

残念ながら、特に問題はありません。全体が広すぎてここで答えることはできません。あなたが始める支援するため

:(私は非常には、ペン、紙とあなたの脳で始まるをお勧めします)

ラインを検出 - > Googleやと思いますが、画像内の線を検出するために、多くの標準的な方法があります。あなたのバイナリイメージに騒音がないなら、それは簡単です。

任意のaequidistantセットを見つける - > は残りの部分を削除すると思います - >を考える(あなたが良いものを知っているので、他のすべてが離れて行かなければならない)

+0

ありがとうございました...これまでに与えられた最も有益な提案.. – OpenCVHelp

+0

あなたは歓迎です<3 – Piglet

0

私は仮定し、あなたの行が(ほぼ)垂直です。

(潜在的に適切に画像をパディング)信号に対してフーリエ変換を試みる列合計ヒストグラム

  • に画像を向ける
    • を動作するはず
    • フーリエから最大値/ピークを選択し、以下のスペクトルをベース期間として使用

    線の位置ではなく線が必要な場合は、適切な間隔で線でマスクを生成します前に分析して)、画像に適用します。

  • +0

    いいえ!必ずしも垂直ではない。それらは実際に検出されたハフ系であり、周期性がある。しかし、私たちは悪いものも持っています(ほとんど非定期的です)。 – OpenCVHelp

    関連する問題