Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1,003件51OCRをかける際になんらかの要因でノイズが入ったとします。直線に近いものであればハフ変換抽出で削除することができます。↓このような削除する方法もあります。文字とノイズの線の太さが異なれば膨張・収縮でもいけそうですが以下のような1濃さが同じ2太さも同じ3湾曲しているノイズ線を削除することは可能でしょうか?ノイズ入ったままOCRの学習モデルをつくればよい、というのもありますが現実的には難しいと考えておりまして何かロジックで解決できないか質問させてください。最終的な補正した結果のイメージ画像は以下になります。個の銅バッジ画像ノイズの低減は、通常、ガウスカーネルで行われます。OpenCVの場合、彼らは腐食と拡張と呼ばれます。カーネルは、画像操作のヒューリスティックスを含むテーブルです。手動で作成することも、例を機械学習することで作成することもできます。時々、カーネルは畳み込み行列と呼ばれ、原始的なオートマトンとして想像することができます。複雑な問題については、それらの多くをカーネル階層に組み込むことが可能です。コメントは足りない情報を求めるときなどにお使いください。票5「濃さが同じ・太さが同じ」という設定が難しいですね。3-15-1」ではないと認識できます(なぜなら、そういう住所はありえないので)。日本語が分からない人にとっては、ノイズなのか取り消し線なのか分からないので、本質的には、高レベルの認識が必要になると思います。高レベルの認識を諦めれば、色々とアプローチはあると思いますが、二通りの方法を考えたので書いておきます。どちらも満足の行く結果にはなりませんが。方法1文字の領域を探して、それ以外の場所を背景画素値で埋めてしまう。具体的には、2値化してy軸方向に文字領域を足し、その頻度が少ない領域を背景にしてしまいます。ご覧の通り、x軸が文字の領域と重なっているノイズ線は消えないという問題があります。hist)plt.subplot(2,1,2)plt.imshow(original_img)plt.show()方法2滑らかな曲線のクラスに対する一般化ハフ変換を考え、投票数が多い、つまり、一定の長さより長い曲線を検出して消す。この方法の問題として、今回の例での「高」の字のようにノイズ線と重なっている部分があると消えてしまいます。仮定として、ノイズ線がシグナルより長いとしているので、文字より短いノイズ線は消えません。設定した滑らかな曲線のクラスから外れるノイズ線(例えば、急激に曲がるノイズ線など)も消えません。ありがとうございます。3:39方法1ですと文字の分割はうまくできそうです。方法2ですと確かに「浦和」と「区高砂」それぞれハフ抽出して長さで判断して削除とできますが「高」や「砂」の一部が消えてしまいますね。あとはひたすらノイズをディープラーニングで学習して~みたいな方法しかないかなぁと感じております。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。