1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

筆圧救済「手書きレポートをPDFにしたら文字が消えた」と絶望する大学生を、Pythonで救いたい。

1
Posted at

はじめに

「せっかく徹夜で書き上げたレポートをスキャンしたら、文字が薄すぎて読み取れない…。」
そんな悲劇、ありませんか?
教授からは「判読不能につき再提出」の非情な宣告。PDF提出するくらいなら
最初からWord、Excelで書かせてくれればいいのに、なぜか指定される生協のレポート用紙。 
本当に2026年なのか。
手書きしたものをわざわざPDFにして提出させるのはなぜ。

もう一度ボールペンでなぞり書き(二度書き)なんてしたくないですよね。
そこで、 「筆圧をデジタルでブーストする」 ツールを作りました。

作ったもの:PDF Text Enhancer

PythonとOpenCV、PyMuPDFを使って、PDF内の「薄い黒」を検出し、力強い文字へと置換します。
さらに七色に輝くレポートにすることで高評価?も間違いありません。
(手書き文字で検証済みですが うすい灰色の文字色の文書で使用例をご紹介します。)

リポジトリを公開しておきます。

主な機能

  1. 黒の強調(筆圧救済): しきい値を調整して、鉛筆の薄い文字をクッキリさせます。

  2. カラー保持: 赤ペンで入れられた修正や注釈は消さずに保護します。

  3. ネタ枠モード:

    • 青焼き風: 設計図のようなレトロな雰囲気に。
    • レインボーモード: レポートがゲーミングPCのごとく七色に輝きます(※提出は自己責任)。

技術のポイント

  • LAB色空間の活用: 明度(L)チャンネルに対してCLAHE(制限付き適応ヒストグラム平坦化)を適用することで、背景のノイズを抑えつつ文字の輪郭を際立たせています。

  • HSVによる色保護: 彩度(S)を見て、文字ではない「色付き部分」を判定。黒強調の巻き添えで色が潰れないように処理しています。

  • GUI: 忙しい学生が直感的に使えるよう、Tkinterでリアルタイムプレビューを実装しました。

実行画面 スキャンしたPDFを読み取ります。(絶望)
image.png
↓ 筆圧ブースト!
image.png
↓ さらに目を引くレポートにすることも
image.png

判定のロジック

  1. 彩度(S)をチェック: 鉛筆の「黒」や「グレー」は、彩度がほぼゼロです。

  2. マスク作成: 一定以上の彩度(S > 50など)がある場所を「これは意図的なカラー書き込みだ」と判定し、マスク(保護領域)を作ります。

  3. 合成: 文字強調処理をした画像に対して、この「カラー部分」だけを元の画像から上書き(または別途明るく補正して合成)します。

これにより、「鉛筆の文字だけが濃くなり、赤ペンは鮮やかなまま残る」 という、実用性の高い処理が実現できています。

まとめ

技術は、理不尽な「アナログ縛り」を打破するためにあります。
二度書きする時間があるなら、その時間でPythonを書きましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?