Open saipan-fez opened 6 years ago
スキル名取得処理に関しての処理提案&プルリクです。 現状:MD5による完全一致 提案:dHash(Difference Hash)とハミング距離を使ったPerceptual Hash検索
◇参考情報 Perceptual Hashを使って画像の類似度を計算してみる Difference Hashについては
手元の環境では ウィンドウが通常色以外でもスキル名が取得できるようになりました。
◇処理フロー 1, dHash 1-1,画像を1211にリサイズ (※1) ※1 リサイズサイズを1211に決めた理由はハッシュサイズを128バイト以下にしたかったからです。 1-2,グレースケール化 1-3,ピクセル比較して0/1の2値化 2, ハミング距離 2-1、FEZのクライアント画面のクリッピング画像をdHash化してハミング距離で算出。 SkillOcr#Process リンク先は変更する部分です。
<< 現状手元でテストして同一と判定されるもの >> ・スカウト コメットキャノン、バーストキャノン 理由:Resourcesの12*12の画像イメージがMD5値も完全に同一なため。
画像サイズを12*12から変更すると特微が増えて改善されると思われます(未検証)が、 画像イメージサイズが約6倍になります。= exeファイルサイズと使用メモリも増えます。 現状:486 バイト (486 バイト)→新:2.90 KB (2,974 バイト) 32ビット深度
色が微妙に異なっているためスキルを取得できない(RGB値が2-3違う)。 設定値に原因と思われる差分は無し。ゲイン値を変更しても改善せず。
また、国名取得でも色が異なるため、スキル部分だけでなく画面全体のスキル色が異なる模様。