hirax.net::Keywords::「cmyk」のブログ



1998-01-08[n年前へ]

Photohoの乱数プラグインを作成する 

 「2項分布のムラについて考える」の関連して、Photoshopの乱数プラグインを作成したのでメモしておく。

 PhotShopはとても便利なソフトである。画像を取り扱うにはトップクラスと言っても良い。あえて、難を挙げるならば8Bit階調が基本という所である。もちろん、12bit階調なども扱えるのは知っているが、基本機能とは言えないと思う。
 しかし、PhotoShopで凝ったことをしようとすると、Pluginを作らざるを得ない。PhotoShopでPluginをつくるには2つのやり方がある。それは、

  • Adobe提供のPlugin SftwareDevelopmentKitを使ってPluginを作る。
  • FilterFactoryを使ってPluginを作成する。
である。目的によってどちらを使うか選択すれば良い。

 今回はランダムノイズをつくるためのプラグイン作成が目的である。その程度であれば、FilterFactoryを使うのが簡単で良い。

FilterFactoryを使う
 まずは、FilterFactoryを使う。
 今回は、ランダムノイズを作るのが目的である。ランダムな(0から255)の値を与えるプラグインである。最初にどんな画像があるかなど関係がない。とにかく乱数を計算し、画像に出力する。今回、1チャンネルにのみ乱数を与えるプラグインと、各チャンネルに独立に乱数を与えるプラグインの2種類を作成する。
 まずは、Redチャンネルにのみ乱数を与えるものをつくる。以下がそのパラメータである。
Redのチャンネルに (0...255)の乱数を与える。
 たった、これだけである。
Redに乱数を与え、Green,Blueのチャンネルには0を与える。
 このプラグインで作成した画像がこれである。ここでは、Redのレイヤーをグレースケールに変換してある。

 もうひとつ、各色に乱数を与えるプラグインのサンプル画像はこのようになる。

 今回作成したWindows版のプラグインをここにおいておく。Mac版も作るのは同じく簡単である。Mac版やCMYK版が欲しいという要望があれば教えて頂きたい。SDKを使う場合などはむしろMac版の方が簡単である。 このファイルを解凍して、プラグインをPhotoshopのPluginディレクトリのFiltersの下に置けば使えるようになる。JunHiraxというジャンルのRnd2redとRnd2RGBである。

 さて、試しに使ってみる。1000x1000ドットのランダムノイズ画像を作成してみる。その画像はここに載せるには大きすぎる。そのため、その一部を左下に示す。その画像に対して各領域10x10の100ドットで平均し、100x100に変換した画像を右に示す。詳しくは「2項分布を考える」を見て欲しいが、100ドットで平均したくらいではフラットにはならない。それどころか、有限のいくら広い範囲で平均しても正確にはフラットにはならない。もし、フラットになるのであれば、それはランダムな2項分布ではない。もちろん、PhotoShopの丸め誤差とかの話は別にしておく。また、「2項分布を考える」の際は1次元の1成分データであったが、今回は2次元3成分データである。そのため、人間にはよりフラットに見えにくい。相対的な色差に対しては人間の目は敏感だからである。

右が作成した1000x1000ドットのランダムノイズ画像の一部(137x90)、
左は作成した1000x1000ドットのランダムノイズ画像を各領域100ドット(10x10ドット)で平均することにより、100x100に変換したもの
 これを使って、適当に遊んでみると面白いのではないだろうか。
 今回の例も「2項分布の特性:どんなに広い領域であっても、領域中の平均が一定でない」の当然の結果である。仮に、ある広い領域中の平均が一定であるような確率過程を用いればこのようなことは生じない。もしも、そのような確率過程に基づくものがあったら、部分部分はランダムに見えても、広い領域ではフラットに見えるのである。

1999-09-17[n年前へ]

モアレ、デバイス、2項分布の三題話 

淡色インクの副作用

 今回は、9ヶ月間も寝かせた伏線にまつわる話である。いや、別に寝かせるつもりは無かったのだが、いつのまにかそんなに時間が経ってしまった。

 以前、

という話があったが、その2つを結びつけるミッシングリンクについて考えてみたいと思う。「2項分布のムラについて考える(1999.01.08)」の最後に「今回の話はあることの前準備なので、これだけでは話しが全く見えないかもしれない。というわけで、続く...」と書いた。「その続き」というわけである。

 始めに「2項分布のムラについて考える(1999.01.08)」の要点をまとめると以下のようになる。それは、

  1. ランダムと呼ばれるものの内で代表的な2項分布においては、当然のごとく「ある領域での平均値はばらつく」。
  2. そして、そのばらつきは直感的に考える程度よりももっとばらつく。
  3. 例えば、2値画像で考えるならば、2048dpi程度の解像度でランダムなデータを並べた場合には、人間の目はざらつきを感じてしまう。
ということであった。

 そして、「モアレはデバイスに依存するか?(1998.11.20)」での要点は

  1. モアレにはデバイス依存性がある
  2. 線形な重ね合わせが成り立たない場合にはモアレが発生する。
ということであった。

 最近のインクジェットプリンターはCMYKの4色インクだけでなく、淡色インクも使うものもある。淡色のインクを使うことで階調豊かな画像を印字できるわけだ。4色インクだけではディザなどを使って、解像度を下げて階調を出さなければならないわけであるが、それが不要になるわけだ。

 解像度を下げないですむわけであるから、ディザのざらつきを感じないですむわけだ。しかし、淡色のインクを使った場合の効果というのはそれだけではないように思われる。HP(ヒューレッドパッカード)などのWEBのプリンター紹介を読んでいると、「淡色のインクを重ねて濃度を出す」というような記述を目にする。これは「少なくとも淡色インクでは線形性(あるいはそれに近い関係)が成り立つ」ということだ。

 インクジェットプリンターの解像度を上げたときに、インク滴が意図しないところへずれてしまうことはきっとあるだろう。その際に他のインク滴と重なったらどうなるだろうか?意図しなくても他のインク滴との重ね合わせは発生してしまうだろう。
 重ね合わせが成り立たない、非線型なインクではモアレが発生する。言いかえれば、意図しない濃度のばらつき・ざらつきが発生してしまう。「2項分布のムラについて考える(1999.01.08)」で考えたようにランダムに重ね合わさるから広い領域では一定だろうというのは予想外に成り立たないのである。でたらめというのは私の予想外に大きく効いてくるのである。
 しかし、重ね合わせに線形性が成り立つ淡色のインクではモアレが発生しない。すなわち、いくらランダムにインク滴の重ね合わせが生じてしまったとしても、意図した通りの濃度をだすことができ、ばらつき・ざらつきは発生しないことになる。参考までにインクジェットの印字画像の拡大写真を示してみる。

インクジェットの印字画像の拡大写真
(CQ出版 洪 博哲著 お話・カラー画像処理より引用したものとそれを加工したもの)
淡色インクを使った出力例
左をグレイ化したもの
 インク滴が重なったところで濃度の線形性が保たれている、すなわち、重なったところはちゃんと濃くなっている、のがわかると思う。

 「重ね合わせに線形性が成り立つ淡色のインクではモアレが発生しない。すなわち、いくらランダムにインク滴の重ね合わせが生じてしまったとしても、意図した通りの濃度をだすことができ、ばらつき・ざらつきは発生しない」と、書いただけでは意図するところが伝わらないと思うので、「モアレはデバイスに依存するか?(1998.11.20)」で使った画像を用いて考えてみる。この画像は重ね合わせがある幾何学模様で生じているが、この現象がランダムに起こっているものとして読み替えて欲しい。

淡くない色のインクで重ね合わせ(インク滴の意図しない重なり)を行う。
1回目の印字
2回目の印字
出力画像
 淡くない色のインクで重ね合わせ(インク滴の意図しない重なり)が生じると、黒と白の模様が生じる。もしこの重ね合わせ(インク滴の意図しない重なり)がランダムに起きるとしたら、ランダムな黒白模様が発生することになる。そして、「2項分布のムラについて考える(1999.01.08)」で調べたようにその影響は予想以上に大きいのである。

 下は、淡色のインクで重ね合わせ(インク滴の意図しない重なり)が生じた場合である。

淡色のインクで重ね合わせ(インク滴の意図しない重なり)を行う。
1回目の印字
2回目の印字
 出力画像

 なんの模様も生じていなく、意図した通りの画像出力ができているのがわかると思う。

 ということで、今回の話(というか前の2回の話)の繋がりは、
淡色のインクを用いたインクジェットプリンターでは、意図しないインク滴の重ね合わせが生じてしまっても、濃度変化が生じにくく、意図しないインク滴の重ね合わせがでたらめに発生してしまったとしても、画像にはあらわれない可能性があるということである。

 うーん、マニアックな内容だ。「身近な疑問を調べる」という看板に偽り有り、である。しかも単なる推論だ。
 しかし、もしもインクジェットプリンターを買う人がいるならば、淡色のインクを使っているものを購入するといいかもしれない、ということがわかっただけでも良しとしておこう。

2000-02-07[n年前へ]

記憶の中の風景 

Photoshopで美術遊び 水彩画と色鉛筆 編

 
 
 

 大学時代のとある日にCanon Ftbというカメラをゴミ捨て場で拾ってから、写真が私の趣味の一つになった。大学院に入る頃には、使われていなかった暗室と写真焼き付け機をも研究室の地下で見つけ、せっせと写真を焼き付けることも大好きになった。その暗室は怪人二十面相が登場しそうな古〜いレンガ造りの建物の地下にあって、実に不気味な場所だったのだが、全然気にならなかったのが今から考えるにとても不思議だ。

 私が拾ったFtbはいつの間にか壊れてしまったから、他のカメラを買ったり(それでも中古だったが)、交換用のレンズを買ったりということはした。しかし、私の興味は風景や被写体の方には向いたが、カメラやレンズあるいは暗室機材といったものに対してはあまり物欲がわかなかった。

 そんなことを思い出したのは、私の職場の人達がCanon EOS D30(358000円ナリ)を買ったり、EF300mmF2.8L(690000円ナリ)を買ったりと、物欲大魔人に変身していたからだ。まるで、「この世の終わりまであと一ヶ月」の「宵越しの金は持たない江戸っ子状態」で買い物をしまくっているのである。マジメに、「こ、この世の終わりが来るのですか?」とか、「あそこに見える富士山はヤッパリ噴火するのですか?」はたまた、「あなたは実はスタパ齋藤なのですか?」とかおそるおそる尋ねたくなるホドなのである。
 

 ところで、ふと気付くと時はすでに二十一世紀になっていて、持ち歩いていたEOS620はデジタルカメラのFinePixに代わり、数学教室の地下にあった暗室はノートPCの中にあるPhotoshopに変わってしまっている。そんなことをつらつらと考えていると、ちょっとセンチメンタルな気分になったので、今回は暗室で印画紙上に浮かび上がる画像を眺めていた頃を思い出しながら、photoshopで少し遊んでみることにした。(こんなに無意味に前振りを書いたのは、そんなに大した話じゃないけどセンチな気分なのだから勘弁して欲しい、という気持ちである。)
 

 写真というのは何の考えも無しに撮ってしまうと、不必要にリアルになってしまう。不必要にリアルということは、逆に必要なところがリアルでなくなってしまったりする。あまりにリアルすぎて、「記憶の中の風景」とは違ってしまったりするのである。そうなると、私にとってはリアルな「昔見た風景」ではないのである。私の中の記憶が間違っているといえばそれまでなのだが、私の中ではその記憶が基準なのだ。

 そんな時、いっそのこと写真を絵画風に加工して、私の「記憶の中の風景」に合わせてしまおうかと思うことがある。写真を絵画風に加工するソフトというのはたくさんあるので、そんなことは簡単にできてしまう。Photoshopに含まれているフィルターでもそれっぽい(かなり不十分な機能ではあるが)ものはたくさんあるし、サードパーティー製のプラグインもたくさんある。そしてまた、インターネット上の情報でも、「絵画風&ソフトフォーカス(デタラメPhotoshop)」などがある。そんな中でも、特にこのVirtualPainterなどはかなりスゴイ。いくつかの処理ができるのだが、その中でも特にこのPlince(色鉛筆風)とRabica (水彩画風)の二つはとてもきれいである。
 

Virtual PainterのPlince(色鉛筆風)
オリジナル写真
フィルターをかけるとこうなる。

 
Virtual PainterのRabica (水彩画風)
オリジナル写真
フィルターをかけるとこうなる。

 ソフトが勝手に自動変換したとは思えないくらい、なかなかスゴイできばえである。最初見たときはちょっとビックリしたほどだ。少なくとも私が色鉛筆や絵の具の筆を手にしても、こんな絵は書くことができないに違いない。いや、正直に言えば「できないに違いない」どころではなくて、「できない」のである。

 ところで、このソフトはシェアウェアで、未だ購入していないので画面中に「Unregistered」という文字が恥ずかしくも輝いている。もちろん、素晴らしいソフトなので買うつもりではあるのだが、他人様の作ったソフトをただ使うのは今ひとつ面白くない。まずは、自分自身で同じようなことができるかどうか挑戦して、そしてできることならば自分の好きなような効果が出るようなプラグインなりソフトを作ってみたい。

 というわけで、自分の頭を整理するために、まずはPhotoshop5.5単体を使って、この二つの処理と似た処理をしてみることにした。まずは簡単そうな水彩画風からだ。

 下の写真はメキシコのティファナで撮ったよくある街並みの写真だ。何の変哲もない写真ではあるが、実はこの直後にデジカメを道路に落としてしまって、私のデジカメ様はこの後お亡くなりになってしまったという、私にとってはとても哀しい写真なのである。
 

メキシコのティファナの風景

 さて、この画像を水彩画風に変換する時の方針は、

  • 色が付いてる部分は、水彩絵の具で塗りつぶす。つまり、階調性をなくして、境界はにじませる。
  • 細かな部分は鉛筆で書くから、シャープに書く。
である。というわけで、まずは「イメージ→色調補整→色相・彩度」で彩度を最大にする。つまり、色鮮やかにしてしまうのだ。そうすると、もういきなり絵画風になる。JPEGの圧縮時のブロックノイズがもうなんというか良い感じに見えるのである。そして、次に「イメージ→モード→CMYKモード」に変換後、Kチャンネルのみ「フィルタ→シャープ→アンシャープマスク」をかける。それにより、細かい部分のエッジを強調しつつ、「イメージ→色調補整→トーンカーブ」でベタ黒部をさらに薄い色に変える。すると、シャッキリと黒のエッジ強調もされて、ポイントがはっきりしてくる。そうすれば、画を描いてる人の視点もシャープになるのだ。ちなみに、今回はしなかったが、アンシャープマスクの部分を「フィルタ→表現手法→輪郭検出」にすれば、VirtualPainterの水彩画風になる。

 そして、水彩絵の具っぽくするために、CMYチャンネルを選択して、「フィルタ→ノイズ→ダスト&スクラッチ」をかける。そうすると、もうかなり水彩画調に感じられるようになる。そして最後に水彩絵の具のにじみを再現するために、CMYチャンネルのみに「フィルタ→表現手法→拡散」あるいは、ランダムのグレーノイズを2チャンネル分用意して、「フィルタ→変形→置き換え」でにじみを表現しよう。ちなみに、今回は「フィルタ→変形→置き換え」の方を使ってみた。ここで、「フィルタ→ブラシストローク→はね」はCMYKモードでは使えなかったので、残念ながら却下である。また、色モード変換時に彩度が低下するので、彩度アップは適時しておいた方が良いだろう。

 こうして、紙の漉き目に沿った水彩絵の具のにじみも処理すると下のような画像が出来上がる。「できるかな?」の色鉛筆風のメキシコのティファナの風景である。
 

紙の漉き目に沿った水彩絵の具のにじみも入れて、ハイ出来上がり。
「できるかな?」の色鉛筆風のメキシコのティファナの風景

 私のセンスがいまいちなのはさておき、水彩画風にする処理としてはまぁ許せるレベルだと言えるかもしれない。処理自体は何段階もあるが、アクションファイルでも作ってやれば、簡単にできると思う。
 

 さてさて、このイキオイで一気に色鉛筆風も片づけてしまおう。こちらの色鉛筆風の方針は、

  • 画像を何色かに分解して、その色で斜線をひく。
  • 色が濃い部分は別の角度からも線をひく。
  • 細かい部分は黒鉛筆で少しだけシャープな線を入れておく。
という感じだろう。実際の手順はこんな感じだ。

 まずは、まずは「イメージ→色調補整→色相・彩度」で彩度を最大にする。「イメージ→色調補整→トーンカーブ」で少し明るめの画像にする。次に、「フィルタ→ピクセレート→点描」で、何色かの色に分解しつつ、なおかつ点画像にすることであとで色鉛筆風の斜線に変形する準備をしておく。そして、「フィルタ→ブラシストローク→ストローク(斜め)」で点を斜線に変形させ、その後「フィルタ→シャープ→アンシャープマスク」をかけて、エッジをシャープにして、色も鮮やかにして色鉛筆っぽくする。また、現画像を「イメージ→色調補整→トーンカーブ」ですご〜く明るめの画像にしたものに対して、同様の処理をかけて(ただし、斜線の角度は変え)、先程の画像にαチャンネルで重ね合わせる。また、現画像を「イメージ→色調補整→トーンカーブ」でものすご〜く明るくしたものもさらにαチャンネルで重ね合わせる
 この色鉛筆風の処理のコツは点描で分解して、ストローク(斜め)+アンシャープマスクで長めの鮮やかな線にすることである。

 すると、こんな感じで「できるかな?」の色鉛筆風の藤原紀香のできあがりである。Photoshop付属のフィルタだけで処理している割には、なかなか良い感じのできに思えるのだが、それは単に藤原紀香の色香に惑わされているだけかもしれない。
 

「できるかな?」の色鉛筆風の藤原紀香
例:1

例:2

 今回は、写真画像を会画風にするためにはどんな処理をすればよいかを考えるために、Photoshopの内蔵フィルタだけを使って処理してみた。次回は、今回考えた処理の流れを自作アプリで組んでみたいと思う。そうそう、あと「こんな処理をしてみたい」という希望メールも大歓迎です。そういう希望を教えていただければ幸いです。だからといって多分何をするわけでもありませんが、ハイ。
 

2002-03-09[n年前へ]

ハーフトーン化プラグイン 

 前にも書いたような気もするけれど、書けー、と言われたのでここにメモ。
 Photoshopでは「他の大抵のこともそうであるように」上手くハーフトーン化はできない。例えば、二値モードになってしまうのはとてもイヤなところ。で、Toneやhalftoneといったものはグレイスケールのままハーフトーン化ができて便利。特にToneなんかはアンチエイリアジングをかけたハーフトーンで画質も高い。
 が、いずれもCMYKの分解には対応していない。AndromedaやVanDerLeeなんかもハーフトーンプラグインを出していてそれはそれで高機能なのだけれど、CMYK別に線数を変えて、アンチエイリアジングさせて…といった設定はできない。
 でもって、案外良い線いっているのがGIMPのNewsprintプラグイン。オーバーサンプリングの具合も選択できるのも素晴らしいところだ。足りないところは、各色毎の線数を選べなかったりするところと、何と言ってもGIMPがCMYKに対応していないがゆえにCMYKモドキの変換になってしまうことだろうか。
リンク)(リンク)(リンク)(リンク)(リンク)(リンク

2002-09-24[n年前へ]

Photoshop表計算プラグイン 

  Photoshopの選択領域を表計算ソフト方式で表示して、編集するプラグイン。画像の値をExcelで表示したり、Excelで作ったパターンをPhotoshopで表示したりすることができる。セルからのコピー、セルへのコピー、セルへの直接代入もできる。ちなみに、領域選択とセル直接入力はセルウィンドーの下部(ボタンの右の辺とか)をクリックすると切り替わる。また、データをCSV形式で出力することもできる。
 プレビュー画面で、選択領域確認後、OKを押すとセル画面が表示される。そこで、色々作業をした後に、もし値をPhotoshopに反映したい時にはOKボタンを押し、そうでなければCancelボタンを押すこと。Photoshopへデータを反映させたいのでなければ、基本的にCancelボタンを押すべし。また、選択している一つのプレーン、もしくは最初のプレーン(RGBであればB)のみがセルへ出力される。Gray,RGB,CMYK,Lab…などに対応。もちろん、8bit,16bit両方に対応。

 CSVf.8BFはプラグイン・ディレクトリのフィルタ・ディレクトリの中におく。photoshopDLL.dllはPhotoshopのアプリケーションがあるディレクトリの中に直接おくこと。画像解析やなんかをする人には必須アイテムになるのではないか、と。が、言うまでもなく作ったばかりなので、動作報告・非動作報告お待ちしております。
 というわけで、C++BuilderとPhotoshopの連携もできるようになったので、これから続々とプラグイン作成開始、です。ちなみに、開発日記も別途公開、されるかも。されないかも。(リンク)(リンク



■Powered by yagm.net