今回は「procesing で画像処理をする」の続編になるが、「デジタルクロスプロセス」という処理方法を述べたい。
いや、実はこの画像処理は手法が確立されていない技術で、大学で僕が考えた方法を改めてここに書き留めておきたいと思うのだ。
## クロスプロセスとは
そもそもクロスプロセスとは、## 写真を現像する際に用いられる技術である。写真を現像するときに持っていくフィルムにはポジフィルムとネガフィルムがある。いわゆる「ネガ」である。
これらにはそれぞれ対応する現像方法があり、それによって正しく現像されるのである。
クロスプロセスとは、この現像方法を入れかえてしまおうという手法である。
そして、これを現実のフィルムを使わずにデジタルで表現しようというのがデジタルクロスプロセスである。
## デジタルにおけるクロスプロセス
おそらくもっとも身近なデジタルクロスプロセスといえば「Instagram」というアプリだろう。画像を共有するサービスで、
Twitter や Facebook などへスマホの写真を投稿する時に画像を「ちょっといい感じ」に加工することができる。
こちらは専用のフィルターが用意されていて、非常にクロスプロセスっぽい画像ができあがる。ただ輝度をいじったりするのとは違い、独特の雰囲気が好まれているようだ。
## Processing でクロスプロセス
前回、Processing を使うことで比較的簡単に画像処理ができることを述べた。
今回も、get()した情報に何らかの変更を加え、それを set()することで反映させる 1 ピクセル対 1 ピクセルの処理で実装したいと思う。
## どう実装するか
前述したとおり、デジタルクロスプロセスには決まった手法がない。そこで、僕はまず既存のデジタルクロスプロセスがどのように行われているのかを調べてみた。
僕が参考になると思ったのは Photoshop による処理方法であった。Photoshop にはトーンカーブでのコントラスト調整をする際に、クロスプロセスのテンプレートがあるらしいのだ。
僕は Photoshop のテンプレートの値をそのままプログラムに落とし込めば簡単に作れるのではないかと考えた。しかし、これではただのパクリだ。それによく調べてみると、多くの場合はこのテンプレートを画像によって好みになるように調節しながら使うらしいことが分かった。
そこで僕は、トーンカーブを使うというのはそのままに既存の数値にとらわれない新しい方法でデジタルクロスプロセスを実装することに決めた
## トーンカーブ
いきなり「トーンカーブ」という言葉を出してしまったが、まずはこれがどんなものか説明したい。トーンカーブとは、入力されるデータ値を x 軸に、出力されるデータ値を y 軸にとった時の x と y の関係をグラフに表したものである。多くの場合は曲線になる(例外ももちろんある)ため、トーン(色調)のカーブ(曲線)ということでトーンカーブと呼ばれる。
画像処理をするときに、r
コメント