2017-10-02 1 views
0

を使用して、画像内のインクストロークの幅を検索:書き込みを見て私は、3つの異なる筆記具で撮影した手書き文字の次のサンプル持ちのOpenCV&C++

enter image description here

を、私はそこにいることを伝えることができます最初の2つと最後のものの明確な違いです。私の目標は、各文字のストロークの厚さの近似値を決定して、薄くて厚いということに基づいてグループ化することです。

これまでのところ、私はstroke width transformを調べてみましたが、私はそれを私の例に翻訳するのに苦労しました。

私は、問題のテストの輪郭だけが残っているように画像を前処理することができます。

enter image description here

+0

これは、ストローク幅変換のための完全な使用例です。おそらく、別の質問としてあなたの試行を投稿した場合、それを実装するのに役立つでしょうか?もちろん、この問題を解決する方法は他にもあります。私はKamilの答えは簡単に試してみることができますが、ストローク幅の変換は実際にはうまくいきます。 –

+0

@AlexanderReynolds申し出ていただきありがとうございます。私はSWTを調べるのにかなり時間を費やしました。主に人々がオンラインで投稿したさまざまな例を探し出し、自分のプロジェクトに幅の計算だけを抽出しようとしました。しかし、私は正確な価値を必要としないので、私は軽いアプローチに行きたいと思っていました。そういう意味で、SWTは将来的には他のアプリケーションにとって非常に有望であると考えています。 – CodeBender

答えて

1

私はあなたがやっているようcv::findContoursで輪郭を検出示唆して、矩形領域と輪郭領域の境界を比較します。たとえば、ここでは最後の行から厚いです。より厚い書き込みほど大きな係数(contourArea/boundingRectArea)になります。

+0

私はこのアプローチが本当に好きです。特に、OPは単にグループ化に興味があるので、値は太い文字と細い文字では十分に異なる限り重要ではありません。あなたは輪郭の周囲を使う方が良いと思いますか?もちろん、輪郭を滑らかにするために輪郭近似をしたいと思うでしょう。私は面積が小さいかもしれないが、面積が大きいかもしれないが、より強い適合バウンディングボックスがある場合と比較して、面積が小さいかもしれないが、大きなバウンディングボックスを考えている。例えば。 LとMは、同様のサイズのバウンディングボックスを生成する可能性がありますが、領域は大きく異なります。 –

+0

おそらく薄くなってから周辺が少し良くなる –

+0

@ KamilSzelagありがとう、私はこのアプローチを使って欲しいものを得ることができました。最初に、イメージをグレースケールに変換し、次にコントラストを求め、極値を除外して係数を計算する必要がありました。間伐や腐食に関しては、鉛筆のような細い線では問題になります。 – CodeBender

関連する問題