未来の自分へ知識貯金

ゆーきのエンジニアブログ

約4分 Windows

画面の文字をテキスト化する【PowerToys】【Text Extractor】

画面の文字をテキスト化する【PowerToys】【Text Extractor】

画面に見えている文字をコピーしたいのに、選択できない——そんな場面は意外と多いです。

  • エラーダイアログのメッセージ(右クリックもコピーもできない)
  • 画像化された PDF や、スクリーンショットの中の文字
  • 動画のスライド、リモート画面の向こう側の文字

昔は Tesseract で OCR ツールを自作したりしていましたが、今は Microsoft 公式ツールの PowerToys に入っている Text Extractor を使えば、ショートカット一発で画面上のどこでもテキスト化できます。設定も簡単なので手順を紹介します。

PowerToys とは

PowerToys は Microsoft が無料で公開している Windows 用ユーティリティ集です。ウィンドウ整列の FancyZones や一括リネームの PowerRename など便利機能の詰め合わせで、その中のひとつが今回使う Text Extractor(画面の文字抽出)です。

PowerToys のインストール

公式ドキュメントからインストールできます。

https://learn.microsoft.com/ja-jp/windows/powertoys

インストール方法はいくつかありますが、どれでも同じものが入ります。

  • Microsoft Store で「PowerToys」を検索してインストール(更新も自動で楽)
  • winget ならコマンド一発:
winget install Microsoft.PowerToys

Text Extractor を ON にする

PowerToys をインストールできたら設定画面を開いて、Text Extractor が ON になっていることを確認します。既定で ON になっているはずですが、動かないときはまずここを見てください。

使い方

Win + Shift + T を押すと画面が薄暗くなり、エリアを選択できるようになります。

抽出したい文字の範囲をマウスでドラッグして選択します。

選択した瞬間に OCR が実行され、抽出したテキストがクリップボードに入ります。あとは貼り付けたいところ(メモ帳・検索窓・チャットなど)で Ctrl + V するだけです。

画面に表示されているものなら何でも対象にできるので、「ブラウザだろうが動画だろうがエラーダイアログだろうが、見えていれば拾える」のが強力なところです。

日本語が認識されないときは

Text Extractor は Windows 内蔵の OCR エンジンを使っており、認識できる言語は Windows にインストールされている言語パックに依存します。日本語の文字を選択したのに空文字や英数字の羅列しか取れない場合は、日本語の言語パックが入っているかを確認してください。

  1. Windows の「設定」→「時刻と言語」→「言語と地域」を開く
  2. 「日本語」が言語一覧にあることを確認(なければ追加)
  3. PowerToys 設定の Text Extractor に「優先する言語」の項目があるので、日本語を選択

日本語 Windows なら通常は最初から使えますが、英語版 Windows を使っている場合や、逆に英語の文書を精度よく抽出したい場合は、この言語設定を切り替えると結果が変わります。

精度を上げるコツ

使ってみて感じた傾向です。

  • 印刷文字・画面上のフォントは得意。手書き文字や崩れたフォントは苦手
  • 小さい文字は拡大してから撮ると精度が上がる。ブラウザなら Ctrl + マウスホイールで拡大してから Win + Shift + T
  • 日本語の抽出結果には不要な半角スペースが混ざることがあるので、長文は貼り付け後に軽く整形が必要
  • 複数行を選択すると改行位置もそのまま入るため、1行で欲しいときは行単位で選択した方が早いこともある

まとめ

  • 画面上の選択できない文字は PowerToys の Text Extractor でテキスト化できる
  • 使い方は Win + Shift + T → 範囲選択 → Ctrl + V の3ステップ
  • 日本語が認識されないときは言語パックと優先言語の設定を確認する
  • 小さい文字は拡大してから撮ると精度が上がる

OCR ツールを自作していた身からすると、OS 標準機能に近いところでここまで手軽にできるのは感動ものです。エラーメッセージを手打ちで転記している方は、ぜひ一度試してみてください。

この記事をシェアする

ゆーき
ゆーき

プログラマー経験10年以上。好きなプログラム言語はC#。使える言語はC++, Python他。好きな開発環境はVisual Studio。

プロフィールを見る →