「Windows11_23H2」で、画面に表示された文字を精度良く、効率的に取り出す方法は?/可能な限り自動化するには?

【投稿者コメント】


【キーワード】

[batファイル自動化]、[取出範囲指定のみ手動]、[画像内文字抽出効率化]


【件名】

「「Windows11_23H2」で、画面に表示された文字を精度良く、効率的に取り出す方法は?/可能な限り自動化するには?」


【投稿本文】


 https://note.com/miss_ephemeral/n/n7a55c476dbeb で、画面内の文字情報を手動でテキストファイルへ書き出す操作手順を報告した。

 ここで、以下の決まり切った操作手順を手動操作から、batファイル実行に依る自動化を行った。

【1】②SnipSavingTool.bat 及び SnipSavingTool.ps1 のbatファイルの実行に依って、スクリーンショット画像を自動的に、フォルダ:C:¥Users¥XXXXX¥Pictures¥スクリーンショット へ書き出す

【2】④SnipSavingTool2.bat のbatファイルの実行に依って、スクリーンショット画像の文字を自動的に、ファイル D:\デスクトップ\test\ファイル.txt へ書き出す

 全体の操作手順は、下記の【「スクリーンショット画像」や「画像内文字情報ファイル」をバッチファイルで自動作成する操作手順】に示す。


【「スクリーンショット画像」や「画像内文字情報ファイル」をバッチファイルで自動作成する操作手順】

(1)デスクトップへフォルダ名:「Snipping Tool」ー画像から文字取り出し のフォルダを作成する(添付図8)

 

(2)(1)項のフォルダ内へ次の5ファイルを作成する(添付図9)
・①「Snipping Tool」ー画像から文字取り出し→「Snipping Tool」アプリのショートカット・②SnipSavingTool.bat
・③C:¥Users¥XXXXX¥Pictures¥スクリーンショット - ショートカット
・SnipSavingTool.ps1
・④SnipSavingTool2.bat

※XXXXXは、C:¥Usersフォルダ配下のUserName

※①は「Snipping Tool」アプリのショートカット。

※②は、下記の【ファイル「②SnipSavingTool.bat」の内容】のbatファイル。
 rem 全コマンドを表示しないようにする から
powershell -ExecutionPolicy RemoteSigned -File "SnipSavingTool.ps1"
までをメモ帳へコピペして、ファイル名:②SnipSavingTool.bat で書き出す。

※③は、フォルダの C:¥Users¥XXXXX¥Pictures¥スクリーンショット
 ショートカット。

※SnipSavingTool.ps1 は、下記の【ファイル「SnipSavingTool.ps1」の内容】の
ps1ファイル。
 # クリップボードに保存してあるものを $img に代入する から、 } までを
メモ帳へコピペして、ファイル名:SnipSavingTool.ps1 で書き出す。

※④は、下記の【ファイル「④SnipSavingTool2.bat」の内容】のbatファイル。
 powershell get-clipboard >%tmp%\tmpfile.txt から
copy %tmp%\tmpfile.txt D:\デスクトップ\test\ファイル.txt
までをメモ帳へコピペして、ファイル名:④SnipSavingTool2.bat で書き出す。

(3)テキストを取り出す画面を表示させて、[Shiftキー]+[Windowキー]+[Sキー]を同時押して、スクリーンショットの矩形領域を指定して、クリップボードへ画像を取り込む(添付図10)

(4)(2)-②項のbatファイルを右クリック/「管理者として実行(A)」して、スクリーンショット画像を自動的に、フォルダ:C:¥Users¥XXXXX¥Pictures¥スクリーンショット へ書き出す(添付図11)

(5)(2)-③項のショートカットをクリックして、表示されたフォルダ内の
 スクリーンショット画像の スクリーンショット yyyy-mm-dd hhmmss.png を確認する(添付図12)

 

(6)(2)-①項のショートカットをクリックして、「Snipping Tool」アプリを起動する(添付図13)

(7)(5)項のフォルダ:C:¥Users¥XXXXX¥Pictures¥スクリーンショット 内の
 スクリーンショット画像の スクリーンショット yyyy-mm-dd hhmmss.png
 (6)項の「Snipping Tool」アプリのダイヤログの真ん中空欄へ、ドロップする(スクリーンショット画像を左クリックしたまま、空欄へ移動させて、マウスから指を離す)(添付図14)

(8)「Snipping Tool」アプリのダイヤログの右上の□をクリックして拡大して、上真ん中の右から3番目の「テキストアクション」をクリックして、下の「すべてのテキストをコピーする」をクリックする(添付図15)

 

(9)デスクトップへフォルダ名:test のフォルダを作成する(添付図16)

(10)(2)-④項のbatファイルを右クリック/「管理者として実行(A)」して、スクリーンショット画像の文字を自動的に、ファイル D:\デスクトップ\test\ファイル.txt へ書き出す(添付図17)


【ファイル「②SnipSavingTool.bat」の内容】

rem 全コマンドを表示しないようにする
@echo off

rem バッチファイル自身を再帰的に呼び出し、最小ウィンドウで実行する
if not "%~0"=="%~dp0.\%~nx0" (
    start /min cmd /c,"%~dp0.\%~nx0" %*
    goto :eof
)

rem PowerShellスクリプトファイルを実行する
powershell -ExecutionPolicy RemoteSigned -File "SnipSavingTool.ps1"


【ファイル「SnipSavingTool.ps1」の内容】

# クリップボードに保存してあるものを $img に代入する
$img = Get-Clipboard -Format Image

# $img を名前つけて保存する
If ($img -ne $null) {
    $date_time = Get-Date -Format yyyyMMdd_HHmmss
    $img.Save("$date_time.png")
    [System.Windows.Forms.MessageBox]::Show("保存成功!","Result")
} Else {
    [System.Windows.Forms.MessageBox]::Show("たぶん画像じゃない","Result")
}


【ファイル「④SnipSavingTool2.bat」の内容】

powershell get-clipboard >%tmp%\tmpfile.txt
copy %tmp%\tmpfile.txt D:\デスクトップ\test\ファイル.txt

 

【追 記】(2023年12月14日)

 これで、自動化はある程度達成されたが、実際は、ワンクリック操作にはなってはいない。
 どなたか、これらのGUIやbatコマンドを統合して、文字とおりのワンクリック操作アプリに仕上げてもろうたら、有り難いどすが・・・

 文字を抽出する矩形範囲を指定せずに、全画面指定なら、面倒なGUIは無くなるけれど、抽出した文字をTextファイルへ単純に垂れ流し・羅列すれば、不要文字が混在して、識別が煩雑になるので、抽出矩形範囲指定モードは外せませんなあ。

 画像ファイルから、文字情報や図形・地図情報を抽出して、イメージ/デジタル変換する用途は格段に増えており、デジカメ・iPhoneiPad・PC等から、時刻表・診療時間・案内図・チラシ・図書頁をスナップ撮影して、備忘メモや文書ファイルへ取り込む要件は激増しているから、専用アプリ化しても、当該アプリの需要は相当多いだろう。

 この「イメージ/デジタル変換アプリ」の主な仕様は次の通りだ。

①主な機能は、イメージデータから、テキスト文字情報や図形情報を抽出して、Text/Word/PowerpointExcel/PDFファイル等へ書き込める事

②抽出したテキスト文字情報や図形情報は、原本イメージデータ上の配置を維持して、原本イメージデータと重畳表示する

③抽出精度を向上させる為に、AI機能も併用する

④取り貯めた多くの情報を高速検索する為の全文検索機能を具備する

⑤多種多様な端末から、情報にアクセス出来る様に、抽出データはクラウドサーバへ蓄積する

⑥既存のiCloud、OneDrive、Googleドライブ等のクラウドデータサービスと差別化・峻別させる為に、有用な、目玉機能として、最適化、自動更新、妥当性評価、テーマに沿った自動レポート機能等の機能を提供する

⑦蓄積したデータには、Keywordを付与して、文書データ作成中に、日本語変換の要領で、自由に呼び出して、引用等が可能とする

⑧蓄積したデータには、Keywordを付与して、最新情報へ自動更新可能とする(例:生成系アプリというKeywordが付与されておれば、最新の生成系アプリの研究開発成果も更新付与する)

⑨蓄積したデータに付与するKeywordには、URLも含まれ、例えば、時刻表や診療時間や引用文献等であれば、引用元のURLへ適時アクセスして、自動更新する

⑩疑似データや卑近データや同類データ等は、集約・収集・分類・比較・評価して、データの鮮度や妥当性を評価して、評価点数の低いデータは、アーカイブへ自動退避・移行させる

⑪或る分野の文献の様に、Keywordには、分野・テーマ・領域も含まれて、分野・テーマ・領域毎に、シソーラス的に統合して、件名・テーマ毎に、時系列的な、データ遷移の流れが追跡可能とする

⑫蓄積したデータは、関連データ同士は紐付け出来るものとする

⑬イメージ/デジタル変換後の修正・校正結果は、変換処理に深層学習的に反映されて、変換精度向上に寄与するものとする

⑭変換後に取り込んだデータは、レイヤー構成・構造として、多角的な情報付与が可能とする

⑮変換後に取り込んだデータは、レイヤー構成・構造として、レイヤー別に、セキュリティ・アクセス権限を変える事が可能とする(作成者のみアクセス可、決済・認証者のみアクセス可、所属グループのみアクセス可、外部公開可を指定可能とする)

⑯Backupは、安全性と冗長性の観点から、サーバー及び各端末間にまたがるRAID5構成の分散Backupとする

⑰取り貯めたデータを自動分類・分析・評価して、各テーマ・主題に沿った報告書をAI自動作成可能とする

⑱関係者が一同にアクセスして、ひとつのデータ・文書・報告書・設計図・地図・プログラムソースリスト等をもとに、グループ討議を行い、データコンテンツの修正・追加・削除等の集団校正作業が可能とする

⑲関係者が一同にアクセスして、データコンテンツの修正・追加・削除等の集団校正作業を行う場合は、発言者の会話・文献は、自動翻訳可能とする

⑳最高機密データ・コンテンツは、暗号化した上で、作成者や許認可・認証者等の複数の認証が揃わない限り、アクセス出来ないものとする(核ミサイル発射キー方式)