Inspiron5759は、Windows標準の画面解像度(DPI=96)に対し、ENVYはDPI=120です。その結果は、信じられないほどの認識率!!
上図に示す通り、第3局図2の(18,15)の黒77を認識できなかったことを除き、白△・黒▲以外の石は全て正常に読み取ることができました。
高DPIで取り込んだ画像データに対応するために行った修正は、以下の通りです。
- 白石処理 (ここを参照)
左右から、黒ピクセルの連続が3以下ならば、白ピクセルに置き換える。
この部分を4以下に変更。
くっつき対策で、縦方向に連続して2ピクセルが 黒ピクセルの場合、白に置き換える。
この部分を3ピクセルに変更。 - 黒石処理 (ここを参照)
周囲の白を黒で埋める際、左端・上端を無条件に黒に置き換えた部分に、右端・下端も加えた。(注1) - 輪郭を求める際、縦線・横線の座標を求めることに加え、念のために検出した輪郭上の石の中心座標で補正を加えていたが、この補正処理を除去。(注2)
(注1)標準DPI(96DPI)の場合、右端・下端も加えるとかえってエラーが増えた。そのため高DPIの場合のみ右端・下端も加えるようにした。
(注2)標準DPI(96DPI)の場合、補正を行わないとエラーが増える。そのため高DPIの場合のみ除去するようにした。
なお 標準DPIと高DPIの切り分けは碁盤のマス目の大きさで判断しました。マス目の大きさは
- 標準DPIの場合 おおよそ30ピクセル
- 高DPIの場合 おおよそ40ピクセル
なお白△・黒▲については、OpenCVのパターンマッチングでは、高い精度は期待できそうにありません。他の手段を考える必要がありそうです。(目をつぶるのも一つ??)
開発環境
OS:Windows10
言語:C#(WPF使用)
IDE:VisualStudio2019
仕様Tool:OpenCvSharp v4.0.0.20181129
Tesseract v3.3.0.0
使用電子本:電子書店パピレスのNHK 囲碁講座 テキスト
OS:Windows10
言語:C#(WPF使用)
IDE:VisualStudio2019
仕様Tool:OpenCvSharp v4.0.0.20181129
Tesseract v3.3.0.0
使用電子本:電子書店パピレスのNHK 囲碁講座 テキスト
0 件のコメント:
コメントを投稿