はま
2024/07/19 (金) 14:12:53
e9db9@c6453
ご返信、ありがとうございます。ご検討いただけてうれしいです。
>白色部分はアンチエイリアスの影響で単色ではないように思います
はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。
①橙色(画面から取得)を範囲100で橙色に変更
②白(画面から取得)を範囲100で橙色に変更
これにより文字をすべて橙色に変換した結果がこんな感じです。
この画像(ハードコピーしたpng)に対してサンプルソースで
③橙色以外を黒に変換
という処理を重ねた結果が以下画像になります。
この画像をPCOTで翻訳すると以下のようになりました。
こんな感じで実用性はありそうに感じています。
前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。
(1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。
(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
(3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。
というイメージです。
今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。
通報 ...
ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。
>(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。