0
Help us understand the problem. What are the problem?

posted at

updated at

カラーのPDFを白黒2値に変換するやつ

はじめに

この記事は苫小牧高専アドベントカレンダー2021 6日目の記事です。
これを作った話です

導入

とある先生がノート提出を白黒2値のpdfで出せとのたまいました。
そこでカラーのPDFを白黒2値で印刷する必要があったのですが、調べた感じAcrobat Proが必要っぽかったです。
その先生はライセンスを持っていますが、我々学生はそんな高いものは持っていません。
大変キレたので自分用にこれを作成しました。
MacOSなら普通に二値化できるらしい

成果物

使い方

CTRL+ENTERでセル内のコードを実行しつつ次のセルに進むことができます。
セルを順番に実行したいときはCTRL+ENTERを連打すると良いでしょう

  1. 1つ目のセルを実行します。
    (pdfをアップロードするためのフォルダ(pdf_file)が生成されます。)
  2. 左のファイルアイコンをクリックしてファイル管理する画面を開きます。
    image.png

  3. pdf_file/以下に変換したいPDFファイルをアップロードします。
    複数のpdfをアップロードできます!!
    image.png

  4. 残ったすべてのセルを上から順に実行します。

  5. ファイルを開きなおします(更新するため)。
    ↓開きなおした後のファイル画面
    image.png

増えたフォルダについての解説は以下の通りです。

  • result_dir
    • 白黒変換後のpdfが格納されているフォルダ。
  • img_dir
    • 白黒変換後のpdfの内容がページ毎に画像化したものが格納されているフォルダ

こんな感じで格納されています。
image.png

  1. ほしいデータをダウンロードします。
    1. 補足:二値化のしきい値は1つ目のセルにある変数threshに代入する値をいじることで変更できます(0~255)

実行例

before
image.png

after(thresh==170)
01.jpeg

after(thresh==200)
01 (2).jpeg

ソースコード

ここに載ってます。
やってることはpdf2imageでpdfを画像に変換し、その画像をcv2で二値化してimg2pdfでpdfにくっつけなおしているだけです。

終わりに

奴先生は多分この課題を出し続けると思われます。
そうなったときにこの記事を思い出して楽をしてもらえたらなと思いこの記事を執筆しました。
ちなみに紙でノートを取っている人はスキャンの段階で二値化できるのでそうしたほうが速いですね。
私はiPadのGoodNotesを使ってノートを取っていたのでバックアップのpdfファイルをこれに投げて提出しました。締め切り後に

苫小牧高専アドベントカレンダー2021、明日は[nullpointerexception]さんです!!

それでは!!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?