ホーム
-------------------------------------------
Excel関数画像処理入門
   準備:画像の表示
   明るさ調整
   グレースケール
   ぼかす
   メディアンフィルター
   アンシャープマスク
   彩度調整
   平均色で塗り潰す
   モザイクをかける
-------------------------------------------
 空間フィルタ
   ローパスフィルタ
   ハイパスフィルタ
  エッジ検出
   ラプラシアンフィルタ
   プレウィットフィルタ
-------------------------------------------

Excel関数による画像処理入門(グレースケール)


 このページではExcel関数による画像処理入門(準備:エクセルシートに画像を表示)で作ったExcelファイルを元に、カラー画像をグレーの画像に変換する方法を紹介します。この画像をグレーに変換してみます。



 RGB値に同じ値を入力すればグレーの画像になります。カラー画像をグレー画像に変換する数式は、R*0.3+G*0.59+B*0.11です。 エクセルの式で表現すると以下のようになります。

【編集後R】=【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11
【編集後G】=【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11
【編集後B】=【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11


 この式は必ず0~255の範囲に入りますから、255を超えた場合はどうしようかと考える必要はありません。



 計算結果が小数点以下になる可能性はありますから、整数に切り捨てる処理は必要です。INT関数で囲います。INT関数は小数点以下を切り捨てて整数にします。

【編集後R】=INT(【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11 )
【編集後G】=INT(【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11 )
【編集後B】=INT(【編集前R】* 0.3 +【編集前G】* 0.59 +【編集前B】* 0.11 )



 【編集後R】シートのA1からKN200のセルに以下の数式を入力します。



 【編集後G】シートのA1からKN200のセルに以下の数式を入力します。



 【編集後B】シートのA1からKN200のセルに以下の数式を入力します。



 【編集後C】シートには以下の数式が入力されていますから、RGBの値を元に24ビットフルカラーの数値が表示されます。



 【編集後の画像を描く】マクロを実行します。マクロを実行したときに「実行時エラー'1004':セルの書式が多すぎるため、書式を追加できません。」というエラーが出る場合があります。その場合は【編集後画像】シートを一旦削除してファイルを保存して閉じて、開きなおして【編集後画像】シートを作り直してから、再度マクロを実行してみてください。 また、【編集後画像】シートを表示した状態でマクロを実行すると、PCの負荷が大きく途中で止まってしまうことがありますので別のシートを表示した状態で実行してください。



 「編集後画像」シートに写真が描かれました。編集前のカラー画像をグレーに変換する画像処理を行った結果です。



 編集前が下図です。上下の画像を比較してみてください。



 R*0.3+G*0.59+B*0.11でカラー画像をグレースケールに変換できることがわかりした。


このページで作成したエクセルファイルのダウンロード