情報メディア基礎ユニット I イメージメディア 2 週目資料 
Processing による画像の拡大・縮小 
バイリニア関数を用いた画像の拡大・縮小 
任意の倍率の拡大縮小を行うためには、補間が必要となる。補間とは、原画像においては
定義されていないピクセル間のピクセル値を、周囲のピクセルから決定する数学的手法で
ある。補間にはいくつかの手法があるが、ここではバイリニア関数による補間によって画像
の拡大・縮小を行うプログラムを作成する。以下に、手順を示す。 
1. 原画像の高さをh、幅をw、各ピクセル値をP(x, y)、拡大縮小率をαとする。 
2. 拡大縮小後の画像の高さをℎ2 = ⌊𝛼ℎ⌋、幅を𝑤2 = ⌊𝛼𝑤⌋とする。 (⌊𝑤⌋はxを超えない最大
3. 原 画 像 の 中 心 を (𝑐𝑤, 𝑐𝑤) = (
2 ) 、 拡 大 縮 小 後 の 画 像 の 中 心 を (𝑐𝑤2,𝑐𝑤2) =
2 )と定義する。 
4. 拡大縮小後の画像の全ピクセル𝑃2(𝑤, 𝑤)について、以下の手順でピクセル値を計算する。 
A) 拡大縮小後の画像の座標(𝑤2, 𝑤2)のピクセルの明るさを求めることとする。 
B) (𝑤2,𝑤2)に対応する原画像の座標(x,y)を以下のように求める。 
x = (𝑤2 − 𝑐𝑤2)
𝛼+ 𝑐𝑤 
y = (𝑤2 − 𝑐𝑤2)
𝛼+ 𝑐𝑤 
C) ただし、座標(x,y)は必ずとも整数とは限らない。そこで，当該座標を取り囲む整数
値の４つの座標（左上・右上・左下・右下）を以下のように定義する。 
左上：(𝑤𝐿𝑈,𝑤𝐿𝑈) = (⌊𝑤⌋, ⌊𝑤⌋) 
右上：(𝑤𝑅𝑈,𝑤𝑅𝑈) = (⌊𝑤⌋ + 1, ⌊𝑤⌋) 
左下：(𝑤𝐿𝐷, 𝑤𝐿𝐷) = (⌊𝑤⌋, ⌊𝑤⌋ + 1) 
右下：(𝑤𝑅𝐷, 𝑤𝑅𝐷) = (⌊𝑤⌋ + 1, ⌊𝑤⌋ + 1) 
D) 以下のように、上述の座標を用いて元画像の座標(x,y)のピクセル値を補間によっ
て求めることができる。 
𝑃2(𝑤2,𝑤2) =
(⌊𝑤⌋ + 1 − 𝑤) × (⌊𝑤⌋ + 1 − 𝑤) × 𝑃(𝑤𝐿𝑈, 𝑤𝐿𝑈) +
(𝑤 − ⌊𝑤⌋) × (⌊𝑤⌋ + 1 − 𝑤) × 𝑃(𝑤𝑅𝑈, 𝑤𝑅𝑈) +(⌊𝑤⌋ + 1 − 𝑤) × (𝑤 − ⌊𝑤⌋) × 𝑃(𝑤𝐿𝐷, 𝑤𝐿𝐷) +
(𝑤 − ⌊𝑤⌋) × (𝑤 − ⌊𝑤⌋) × 𝑃(𝑤𝑅𝐷, 𝑤𝑅𝐷)
[演習問題 5] 上記手順を参考に、読み込んだカラー画像ファイルを任意の倍率で拡大・
縮小して保存するプログラムを作成してください。保存する際のファイル名は、入力画
情報メディア基礎ユニット I イメージメディア 2 週目資料 
像ファイル名が〇X〇X.jpg であり、拡大した場合には〇X〇X_s1.jpg、縮小した場合に
は〇X〇X_s2.jpg にしてください。ソースプログラムと複数の実行結果(拡大と縮小)を
つけて報告してください。 