このページではExcel関数による画像処理入門(準備:エクセルシートに画像を表示)で作ったExcelファイルを元に、画像をぼかす方法を紹介します。この画像をぼかしてみます。
画像をぼかすには周囲の点の平均値を入力すればよいです。B2のセルに注目しているとして、周囲9点の平均値を取るのであればB2のセルに式AVERAGE(A1:C3)を入力すればよいです。
【編集後R】=AVERAGE(編集前R!A1:編集前R!C3)
【編集後G】=AVERAGE(編集前G!A1:編集前G!C3)
【編集後B】=AVERAGE(編集前B!A1:編集前B!C3)
この式は必ず0~255の範囲に入りますから、255を超えた場合はどうしようかと考える必要はありません。
計算結果が小数点以下になる可能性はありますから、整数に切り捨てる処理は必要です。INT関数で囲います。INT関数は小数点以下を切り捨てて整数にします。例えばB2のセルに入力するのは以下の数式です。
【編集後R】=INT(AVERAGE(編集前R!A1:編集前R!C3))
【編集後G】=INT(AVERAGE(編集前G!A1:編集前G!C3))
【編集後B】=INT(AVERAGE(編集前B!A1:編集前B!C3))
【編集後R】シートのB2からKM199のセルに以下の数式を入力します。端の列、端の行と四隅の4点は平均を取る範囲が異なります。少し異なる式を入力しますのでサンプルファイルを参照しくください。
【編集後G】シートのB2からKM199のセルに以下の数式を入力します。端の列、端の行と四隅の4点は平均を取る範囲が異なります。少し異なる式を入力しますのでサンプルファイルを参照しくください。
【編集後G】シートのB2からKM199のセルに以下の数式を入力します。端の列、端の行と四隅の4点は平均を取る範囲が異なります。少し異なる式を入力しますのでサンプルファイルを参照しくください。
【編集後C】シートには以下の数式が入力されていますから、RGBの値を元に24ビットフルカラーの数値が表示されます。
【編集後の画像を描く】マクロを実行します。マクロを実行したときに「実行時エラー'1004':セルの書式が多すぎるため、書式を追加できません。」というエラーが出る場合があります。その場合は【編集後画像】シートを一旦削除してファイルを保存して閉じて、開きなおして【編集後画像】シートを作り直してから、再度マクロを実行してみてください。
また、【編集後画像】シートを表示した状態でマクロを実行すると、PCの負荷が大きく途中で止まってしまうことがありますので別のシートを表示した状態で実行してください。
「編集後画像」シートに写真が描かれました。ぼかす画像処理を行った結果です。
編集前が下図です。上下の画像を比較してみてください。ぼけていますね。今回は注目画素の周囲9点(3×3)の平均値を取ってぼかしました。この範囲を広くして25点(5×5)とか、49点(7×7)とすれば、ぼけの程度は大きくなります。
このページではやりませんが、興味のある方は試してみてください。
|