(2018.7.5 作成)
このページではレーザー刻印を行う際のガンマ調整(gamma correction for laser engraver)について、簡単なツールを作成したのでその使い方について紹介しています。実際のソフトはこちらに置いてあります(Download)。
ガンマ調整についてはよくご存じない方もおられると思いますので簡単に説明すると、人の目というのは明るさに対して感度が線形でないため、2倍明るいものを見ても2倍明るいと感じません。そこでこの特性を補正してやって人の感じる明るさに合わせて補正してやろうという話です。奥が深いので詳しくはWikipediaなどを見てみてください。
そしてなぜレーザー彫刻にこのガンマ調整を行うかというと、レーザー刻印は光を当てて焦げ始めると吸収が良くなってますます黒くなりやすくなるという性質があります。そのためレーザー強度に対して線形に焼き色がつきません(2倍の強度にしても2倍の濃さにならない)。このため写真などをレーザーカッターで焼こうとすると微妙に濃さがが元と異なる結果になります。
例えば下の画像を見てください。100均で購入したMDF材に一番左のテストパターンを焼いてみたものです。Beforeと書かれた補正前は途中から急激に黒くなって一番上の行はほぼ真っ黒になっています。一方補正を行ったAfterの方は階調性が多少は残っていると思います。
写真ではよくわからないですが、実際に測ってみたものが右のグラフになります。印刷業界で使われているガンマ1.8に対して補正前(青)はずれていますが、補正することで幾分ましになっていることが分かると思います。
このような補正を実際にできるようにツールを作成してみたのでそれをご紹介してみようというのが本ページの趣旨です。
ちなみにソフトとしてのツールの出来は良くないので、あまり自信はないのですが、、、まぁ誰かのお役に立てればなと思います。
やっていることは単に元の画像の画素値を入れ替えるだけの単純な作業なのですが、測定して補正するためにいろいろと準備が必要になります。
もちろんレーザーカッターは必要なのですが、それは当然として他にも計測する手段が何か必要です。
このサイトではキャノンのプリンタを使用しました。しかし普通にスキャナで取り込むだけではスキャナの持つ画質調整を行われてしまって本来の焼き色?を計測することができません。そこでスキャナの画質補正関連のスイッチはすべてオフにします。キャノンさんのプリンタの場合、具体的にはScanGearというソフトを用い、詳細設定を含めすべての補正処理をOffにしました(下の写真クリックで拡大します)。
測定時は焼き色をその値で取得したいのでガンマ1が理想なのですが、それっぽい項目はScan Gearの場合モニタガンマとして記載されています。
説明書もなくイマイチ具体的に何をしている処理なのかよくわかりませんがこの項目も1にしてみました。
通常私はGUIのあるプログラムはC#を使用してプログラムを作成するのですが、今回はお勉強も兼ねて Python + Qt + OpenCV という組み合わせてプログラムを作成してみました。すべてフリーで使用できるのですが、このページで紹介しているソフトを使用するためにはこれらをインストールしていただく必要があります。
Pythonに詳しい方は最小限の構成だけを構築するのが良いと思うのですが、依存関係があったりすると面倒なのでここでは以下の方法をお勧めします。使わないライブラリも大量にインストールされるのでHDDは無駄に消費しますが、、、
Pythonのインストール
いろいろなパッケージをまとめてくれているAnacondaというディストリビューションをインストールします。これだけでOpenCVを除くほぼすべてのパッケージがインストールできます。明示的に使用しているパッケージはpython本体, numpy, scipy, matplotlib, PyQt5なので詳しい方はこれらだけをインストールしても動くかもしれません。またPythonは2系と3系がありますが、ここで紹介しているソフトはどちらでも動くことを確認しています。
OpenCVのインストール
画像処理関係で高名なOpenCVを使用しています。インストールについてはAnacondaインストール後スタートメニューから”Anaconda prompt"を開き
"conda install -c menpo opencv3"
と入力し、後は指示どおりにインストールするだけです。
プログラムの実行
ここまでくればあとは実行するだけです。ここからプログラムをダウンロードし、適当なフォルダに展開します。あとはスタートメニューからAnaconda promptを起動し、そのフォルダに移動したのち
"python LaserPowerAdjuster.py"
と入力すれば右のようなGUIが起動します。
DOS窓での操作が不慣れな場合はAnacondaと同時にインストールされるSpyderなどで開いて実行しても同じくGUIが起動します。
ちょっとここの説明は不親切ですね。。。もし困ったら連絡ください。
長くなったので、その2に続きます。