code-ocr について
code-ocrは、画像からコードを取り出したい人向けに、コードのスクリーンショットをテキストファイルへ変換するスキルです。百度 OCRの位置情報から行とインデントを再構成し、パラメーター調整や結果の照合にも対応します。
主な機能
- 01コード画像をテキストに変換
- 02文字位置から行とインデントを再構成
- 03OCR中間JSONの保存と読み込み
- 04平均文字幅の比率を調整
- 05OCR結果の目視確認を促す
活用シーン
- 01スクリーンショットからコードを抽出
- 02認識したコードのインデントを調整
- 03APIを再度呼ばずにOCR結果を再利用
- 04コード内の類似文字や記号を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mhliulgy/ my-skills --skill code-ocrインストール後、Claude Code で/code-ocrを入力して読み込まれたか確認します。
同梱ファイルscripts/code_ocr.py
詳細
コード OCR
コードのスクリーンショットをテキストファイルに変換します。百度 OCR の高精度・位置情報付き API を使用し、元のインデントを保持します。
環境設定
使用する前に、百度 API キーを設定する必要があります(システム環境変数)。ユーザーはデフォルトで設定済みです。
# Windows
setx BAIDU_API_KEY "your_api_key"
setx BAIDU_SECRET_KEY "your_secret_key"
または、現在のターミナルで設定します。
# Windows (当前终端)
set BAIDU_API_KEY=your_api_key
set BAIDU_SECRET_KEY=your_secret_key
使用方法
基本的な使い方
# 保存 OCR 中间结果(避免重复调用 API)
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" <图片路径> --save-json <json文件路径>
# 从 JSON 加载结果,多次调整 ratio 参数实验
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" <json文件> --load-json <json文件路径> --ratio <值>
# 仅识别图片(不推荐)
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" <图片路径> [输出目录]
パラメーターの説明
| パラメーター | 説明 |
|---|---|
图片路径 | 省略可能です。スクリーンショットファイルのパス(PNG、JPG、BMP などの形式に対応)、または JSON ファイルのパスです |
输出目录 | 省略可能です。デフォルトでは画像と同じディレクトリに保存します |
--ratio / -r | 省略可能です。平均文字幅の倍率で、インデント計算の微調整に使用します。デフォルトは 0.955 です |
--save-json FILE / -s FILE | 省略可能です。OCR 成功後、中間結果を JSON ファイルに保存します |
--load-json FILE / -l FILE | 省略可能です。JSON ファイルから OCR 結果を読み込み、OCR の手順をスキップします |
使用例
# 1. 首次运行:OCR 识别并保存中间结果
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" screenshot.png -s screenshot.json
# 2. 后续实验:加载 JSON(使用 -l 参数),多次调整 ratio 参数
# 只需指定 -l JSON文件路径 和 --ratio 值,无需其他参数
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.96
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.955
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.95
# 3. 简写形式
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json -r 0.955
ヒント:初回の OCR 認識後に JSON ファイルが生成されます。インデントを調整する場合は、
-lパラメーターを使用してその JSON ファイルを読み込み、再実行してください。
出力ファイル
- ファイル名の形式:
{原文件名}_{时间戳}_{ratio}.txt - 例:
screenshot_20260220_143052_0.955.txt - エンコーディング:UTF-8
AI ツールが提示する必要のあるプロンプト
重要:AI ツールは、JSON ファイルを基に再実行するコマンドを積極的に提示する必要があります。例:
# 使用 -l 参数加载 JSON 文件,调整 ratio 参数
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.96
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.955
python "C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py" -l screenshot.json --ratio 0.95
また、異なる ratio 値による効果の違いをユーザーに説明し、最適なインデントパラメーターを選択できるよう支援してください。
動作原理
- API 呼び出し:百度 OCR の「高精度・位置情報付き」(accurate)インターフェースを使用します
- 位置情報の解析:返された位置情報(location)を利用して、各文字の座標を計算します
- 行の再構築:文字の top 座標に基づいてグループ化し、すべての行を識別します
- インデントの保持:各行の最初の文字の left 座標に基づいて、インデントの空白数を計算します
クロスチェック(モデルによる自己検証)
OCR 結果の出力後、AI モデルは自身のマルチモーダル機能を積極的に使用して元画像を「視覚 OCR」で認識し、百度 OCR の出力結果とクロスチェックする必要があります。
検証手順
- 元画像の読み込み:AI モデルがユーザー提供のコードスクリーンショットを直接確認します
- 視覚認識:モデルの視覚機能を利用して、画像内のコードテキストを認識します
- 比較・校正:視覚認識の結果を百度 OCR の出力と比較します
- 誤りの修正:相違が見つかった場合は、視覚認識の結果を正として修正します
よく確認が必要な項目
| 確認項目 | 説明 | 例 |
|---|---|---|
| 似た文字 | O vs 0、I vs l vs 1、S vs 5 | list が 1ist と誤認識される |
| 記号の混同 | ' vs ''、" vs ""、-> vs → | don't が don''t と誤認識される |
| 特殊記号 | @, #, $, %, &, |, \, / | @staticmethod 内の @ |
| インデントの整合性 | 空白とタブの混在 | Python コードのインデントレベル |
| コメント記号 | //, /*, */, #, <!-- | コメントの開始位置と終了位置 |
| 括弧の対応 | (), {}, [], <> | 入れ子になった括弧の整合性 |
| 記号の欠落 | コード行末のセミコロンやカンマなど | return x が return x; と誤認識される |
| 英語・中国語の記号 | 英語のカンマ , vs 中国語のカンマ , | print("Hello, World") が print("Hello,World") と誤認識される |
柔軟な検証:コードの言語とコンテキストに応じて言語を判断し、その言語の構文規則に基づいて、より的を絞った検証を行います。
校正後の出力形式
=== 百度 OCR 原始结果 ===
[原始识别文本]
=== 交叉验证修正 ===
- 第 X 行: "原始错误" → "修正后"
- 第 Y 行: "原始错误" → "修正后"
=== 最终修正结果 ===
[校对后的最终文本]
使用上の推奨事項
- キー、設定、正規表現などの重要なコードは、必ずクロスチェックしてください
- OCR 結果に明らかな構文エラーがある場合は、モデルによる視覚認識を優先してください
- 画像がぼやけている場合や特殊なフォントが使われている場合は、より鮮明なスクリーンショットを提供するようユーザーに案内してください
スクリプトの場所
スクリプトのパス:C:\Users\12556\.claude\skills\code-ocr\scripts\code_ocr.py