最近、急にラスター画像の拡大・縮小のことが気になりだした。私の知っていること、分かったこと、疑問などを書きとめておこう。
画像を縮小・拡大する最適なアルゴリズムは対象画像に大きく依存する。拡大・縮小する、ともともと存在しなかったピクセルを補間する必要がある。ニアレストネイバー法、バイリニア法、バイキュービック法が有名。ニアレストネイバー法とは、いちばん近いピクセルを複製するか削除するだけのアルゴリズムである。もとのドットをそのまま拡大したい場合に適するが、ジャギーも目立つ。バイリニア法は近隣2×2ピクセルを使って線形補間する方法。バイキュービック法は近隣4×4ピクセルを使って3次式をつくり補間するもの。通常の写真のサイズ(厳密にはピクセル数)を変更する場合は、(この三つのアルゴリズムのうちでは)バイキュービック法がよいと言われている。(計算量が多いのが欠点と言われるが、アマチャアが少量処理する場合は問題にならないだろう)Photoshop Elementsでも写真のサイズを変更する場合、バイキュービック法が初期設定されている。しかし実際には画像によって、方法を使い分ける必要がある。二値画像ではニアレストネイバー法を使う必要がある。日の丸のような画像をバイリニア法やバイキュービック法でサイズ変更すると赤の周りにピンクの部分ができてしまう。二値画像だけでなく局部的に見て二値になっていて中間の色があってはいけない画像にはバイリニア法やバイキュービック法は使えない。バイキュービック法で画像を拡大するとアンシャープマスクをかけたように、エッジが強調される。つまりアンシャープマスクをかけたくない画像には向かないと考えた方がよい。 イラストをバイキュービック法で10倍に拡大して、細部を表示したサンプルを示す。(左から元画像、元画像の拡大標示、バイキュービック法で拡大した画像)なおサンプルはこのサイトから借用。 同一の色で塗った部分があるイラストやそれに似た写真をバイキュービック法で拡大してはいけない。 (標示している画像は間違った使い方)つまり、イラストは初めからラスター画像ではなくベクター画像にするべきである。たとえラスター画像として描いても、まずベクター画像(拡張子svg)に変換してしまう。そうしたら縮小・拡大が自由にできる。(ただしベクター画像が扱えるソフトたとえばInkscapeが必須)ただしベクター画像をラスター系ツールに読み込むとその時点でラスタライズされてしまう。 文字を書き込んだ画像で拡大縮小の実験結果を示したブログがある。実験としては分かりやすいが、実際は文字のない画像で拡大縮小を行い、その上に文字を書き込むようにしなければならない。(Photoshop Elementsなどのラスター系のツールでも、ラスタライズしない限り文字はベクター画像として取り扱われる) 疑問点:Photoshop Elementsでサイズ変更する場合、上の三つ以外に「バイキュービック法(滑らか)」と「バイキュービック法(シャープ)」がある。名前から意味は推察がつき使えそうではあるが、がそのアルゴリズムはどうなっているのだろうか。 画像を縮小する場合には平均画素法という方法が有力であろう。たとえば赤2個と白2個の4ピクセルを1ピクセルに縮小すると赤と白の平均値ピンクに見えるはず、というのは直感にも合っている。縮小アルゴリズムの決定版のように思うが、プログラムを作る立場からは工夫がいるらしい。通常平均するピクセルに端数ができる場合があるので、元画像を最小公倍数で一旦拡大する必要がある。それにしてもPhotoshop Elementsでもサポートしてほしいものだ。 画像の拡大にはLanczos法(ランツォシュと読むらい)が優れていると言われる。 こちらを参照。 上の記事にあるようにLanczos3では6×6のピクセルを考慮している。遠くのピクセルの影響を受けるといことは、「ピンボケ画像にアンシャープマスクをかけたような画像なる」と考えたほうがよいだろう。 手元にあるソフトではGIMP2.6.7がLanczos3をサポートしている。ただし「GIMP2.6には画像縮小には無条件で平均画素法が使われる」というブログを見かけるため注意が必要かもしれない。IrfanViewという有名なフリーソフトは、多数の画像拡大・縮小アルゴリズムを実装している。 IrfanViewのサイズ変更で指定できるもの;Hermite(最高速)、Triangle、Mitchell、Bell、S-Spline、Lanczos(高画質) 残念なことにirfanViewはWindows7での作動実績が思わしくない。(Microsoft Office2007 IMEとの関係らしい) フリーソフトの中にもLanczos3をサポートするものがいくつかある。 藤‐Resizer- 「R13」 Ralpha しかし「座標(距離)の小数部を丁寧に処理していないために、Lanczos関数の値が正確に計算できていない物もあった」という ブログ記事を見かけたので注意が必要であろう。 Corel Paint ShopPro Photo X2にはバイキュービック法はサポートされているが、「スマートサイズ」、「ピクセルリサイズ」は何を意味するのか分からない。
by takaminumablog
| 2010-03-07 14:25
| 写真:画像
|
カテゴリ
以前の記事
2021年 05月 2021年 01月 2020年 01月 2019年 03月 2019年 01月 2018年 11月 2018年 08月 2018年 07月 2018年 05月 2018年 04月 2018年 01月 2017年 06月 2017年 05月 2017年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 07月 2015年 06月 2015年 05月 2015年 04月 2015年 03月 2015年 02月 2014年 02月 2013年 02月 2012年 11月 2012年 08月 2012年 07月 2012年 06月 2012年 05月 2012年 03月 2012年 02月 2012年 01月 2011年 12月 2011年 11月 2011年 07月 2011年 04月 2011年 01月 2010年 12月 2010年 10月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2009年 10月 2009年 08月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 01月 2008年 12月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 10月 2007年 09月 2007年 08月 2007年 07月 2007年 06月 2007年 05月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 12月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 2006年 06月 2006年 05月 2006年 04月 2006年 03月 2006年 02月 2006年 01月 2005年 12月 2005年 11月 2005年 10月 2005年 09月 2005年 08月 2005年 07月 フォロー中のブログ
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||