C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

特徴抽出の方法 /ぶん (19/08/05(Mon) 10:48) #91802
Re[1]: 特徴抽出の方法 /ぶん (19/08/05(Mon) 10:50) #91803
  └ Re[2]: 特徴抽出の方法 /ぼーちゃん (19/08/05(Mon) 11:56) #91804
    └ Re[3]: 特徴抽出の方法 /ぶん (19/08/07(Wed) 10:47) #91838


親記事 / ▼[ 91803 ]
■91802 / 親階層)  特徴抽出の方法
□投稿者/ ぶん (1回)-(2019/08/05(Mon) 10:48:36)

分類:[.NET 全般] 

簡単なOCRソフトを自分で作成しようとしているのですが、
https://mediadrive.jp/technology/techocr05.html

このページの図8にある「特徴抽出」というものが
どういうアルゴリズムで行っているのか分かりません。

どうやれば、縦や横、斜めだけのラインを抽出することができますか?

自分で考えた方法だと、
上から下まで、X方向にスキャンし、
ある設定した閾値の以上、黒いピクセルが続いたら、ラインと見なす。
そして、そのすぐ下に隣接したピクセルにあるラインは上のラインと同じラインであるとする。

みたいな形で、スキャンしていく方法しか思いつかないのですが
もっと効率的な方法ってありますでしょうか?

[ □ Tree ] 返信 編集キー/

▲[ 91802 ] / ▼[ 91804 ]
■91803 / 1階層)  Re[1]: 特徴抽出の方法
□投稿者/ ぶん (2回)-(2019/08/05(Mon) 10:50:24)
あと、この方法だと、
縦と横のラインはうまくいくと思いますが
斜め方向に関しては正確に45度のラインしか認識できないと思います。

相互相関関数とか使って計算すべきなのでしょうか?

[ 親 91802 / □ Tree ] 返信 編集キー/

▲[ 91803 ] / ▼[ 91838 ]
■91804 / 2階層)  Re[2]: 特徴抽出の方法
□投稿者/ ぼーちゃん (12回)-(2019/08/05(Mon) 11:56:06)
ハフ変換とか。

https://qiita.com/YSRKEN/items/ee94c7c22599c2374722

OpenCVにメソッドがあるので気軽に試せます。
ハフ変換はノイズに弱いので、
新聞スキャンなどの場合フィルタ処理でノイズを除去する
必要があるでしょう。

https://qiita.com/tifa2chan/items/d2b6c476d9f527785414
[ 親 91802 / □ Tree ] 返信 編集キー/

▲[ 91804 ] / 返信無し
■91838 / 3階層)  Re[3]: 特徴抽出の方法
□投稿者/ ぶん (3回)-(2019/08/07(Wed) 10:47:10)
ありがとうございます。

ハフ変換に関してですが
DLLを使わずに自分で実装したいと考えています。

検索すると
http://uno036.starfree.jp/PRGmanual/vcpp_01/vcpp05_g15/vcpp05_g15.htm
c++で書かれたページと

https://qiita.com/YSRKEN/items/ee94c7c22599c2374722
JAVAで書かれたページは見つかったのですが、

VBで書かれたページは見つかりませんでした。

翻訳サイトを使ってVBに変換してみましたが、
エラーだらけで使えそうにありません。

VBで書かれたページがあれば教えていただけないでしょうか?


あと、真円の場合にはハフ変換で認識できると思いますが
数字の「0」のように、楕円に近いが側面が直線になっているようなケースや
「3」のように開いた円の場合にはどのように検出すれば良いのでしょうか?




[ 親 91802 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -