■ 画像の拡大方式(JavaScript版)
小さい画像を大きく拡大する方式には一般に次の2つがあります。
(1)最近隣点方式
拡大画像上のある点のピクセル値を、対応する元画像上の最も近いピクセル値とする。
(2)線形補間方式
拡大画像上のある点のピクセル値を、対応する元画像上の(厳密な)点の周囲4点のピクセル値
を直線で補間して求める。
元画像上の厳密な点の座標を (x, y)とし、整数 i, j が
i ≦ x < i + 1, j ≦ y < j + 1
を満たす時、点 (x, y) でのピクセル値 P(x, y) を次式で求める。
P(x, y) = (i+1-x)(j+1-y)P(i+1,j+1) + (x-i)(j+1-y)P(i,j+1) + (i+1-x)(y-j)P(i,j+1) + (x-i)(y-j)P(i+1,j+1)
ここでは、これら2方式に加えて、線形補間+鮮鋭化による画像の拡大も体験できます。 また、画像の縮小、平行移動もできます。
対象画像は(MyBlog の)フォトアルバム内の写真です。
・ズーム Up(定率)/Down(定率) はクリック点を中心に拡大、縮小する。
・ズーム Up/Down(2点指示)は拡大/縮小範囲を対角2点で指示する。
2点目が1点目の右側の時は拡大
2点目が1点目の左側の時は縮小
・平行移動(2点指示)は1点目を2点目に移動する。
・リセットで初期状態に戻る。
・鮮鋭化はラプラシアンフィルタを使用する。
P(i, j) = -P(i, j-1) - P(i-1, j) + 5P(i, j) - P(i+1, j) - P(i, j+1)
ホーム