画像処理 入門
デジタル画像の基礎知識
入門の概要
画像処理とは、デジタル画像をコンピュータで解析・変換・改善する技術である。写真の補正から、医療画像の診断支援、自動運転やAIの画像認識まで、応用は幅広い。
入門では、画像処理を学ぶための基礎知識を習得する。デジタル画像の成り立ちから、色空間、ヒストグラム、基本的な画像操作まで、実装に入る前に押さえるべき概念を学ぶ。
学習目標
- デジタル画像の構造(画素、解像度、ビット深度)を理解する
- RGB、HSV、グレースケールなど色空間の概念を把握する
- ヒストグラムの意味と使い方を理解する
- Python と OpenCV の基本的な使い方を習得する
- 画像の読み込み、表示、保存ができる
図解:デジタル画像とは
デジタル画像は、細かい四角い 画素(ピクセル) がびっしり並んだもの。1つの画素は R・G・B の 3つの数値(各 0〜255)で色を持つ。解像度スライダーで画素数を変えて粗さ(モザイク化)を体感し、画像に触れるとその画素の色の値が見える。
その画素の値を表示
画素数が少ないほど1つの画素が大きくなり、絵がカクカクに(モザイク化)。最大まで上げると元画像(オリジナル)が表示される。
目次
1. デジタル画像の基礎
画像処理の出発点。
- 画素 (Pixel) とは
- 解像度とサイズ
- ビット深度
- 画像フォーマット (JPEG, PNG, BMP)
2. 色空間
色の表現方法。
- RGB 色空間
- HSV/HSL 色空間
- グレースケール変換
- 色空間変換の用途
3. ヒストグラム
画像の統計的分析。
- 輝度ヒストグラム
- ヒストグラムの読み方
- コントラストとの関係
- ヒストグラム平坦化
4. 基本的な画像操作
実装の第一歩。
- 画像の読み込みと保存
- リサイズと回転
- 切り抜き (ROI)
- 画素値の直接操作
5. 点処理
画素単位の変換。
- ネガポジ反転
- 明るさ・コントラスト調整
- ガンマ補正
- 2値化 (閾値処理)
6. Python/OpenCV 入門
実装環境の構築。
- 環境セットアップ
- NumPy と画像配列
- OpenCV の基本関数
- Matplotlib での表示
図解:色空間と混色
画面の色は 光を足す加法混色(RGB)、印刷の色は インクで光を引く減法混色(CMY)。下の2つのミキサーで、それぞれスライダーを動かして混ざり方の違いを確かめよう。
#FFFFFF
黒地に光を足す。3色すべて最大 → 白(光の和)。
#000000
白地から色を引く。3色すべて最大 → 黒(すべて吸収)。
色相を軸にした HSV(色相・彩度・明度)や、輝度だけの グレースケール も、用途に応じて RGB から変換して使う。グレースケール変換式は 主要な概念 を参照。
図解:ヒストグラム
ヒストグラムは「各明るさの画素がどれだけあるか」を表すグラフ(横軸:暗い0〜明るい255、縦軸:画素数)。左が実際の画像、右がその画像の輝度ヒストグラム。明るさとコントラストのスライダーを動かすと、画像とヒストグラムが同時に変わる。端に寄せすぎると白飛び・黒つぶれで画像の細部が失われる(=もう戻せない情報の損失)。
主要な概念
デジタル画像
デジタル画像は、2次元配列として表現される。各要素(画素)は輝度や色情報を持つ整数値。カラー画像は通常、RGB の3チャンネルを持つ3次元配列となる。
グレースケール変換
RGB画像をグレースケールに変換する一般的な式: $Y = 0.299R + 0.587G + 0.114B$。人間の視覚特性に基づく重み付け。
ヒストグラム平坦化
画像のコントラストを改善する手法。累積分布関数 (CDF) を用いて輝度値を再配分し、ヒストグラムを均一に近づける。
副読本(読み物)
本編に加えて、デジタル画像の仕組みを図でやさしく掘り下げる読み物。
標本化と量子化
連続的な光の像が「標本化」と「量子化」の2段階でデジタル画像になる流れを理解する。
ビット深度と階調
ビット深度が表現できる明るさの段階数を決めること、低いと階調が飛ぶことを理解する。
解像度・PPI・DPI
「解像度(画素数)」と「PPI/DPI(密度)」は別物だと区別できるようになる。
画像ファイル形式の選び方
可逆/非可逆圧縮の違いを理解し、写真とロゴで形式を使い分けられるようになる。
ガンマ補正の直感
ガンマ補正が「明るさを人の感覚に合わせて配分し直す」操作だと理解する。
トーンカーブとLUT
明るさ・コントラスト調整が「1画素ごとの写像(LUT)」で表せることを理解する。
補間によるリサイズ
拡大・縮小に「補間」が必要な理由と、代表的な3手法の違いを理解する。
アンチエイリアシングとジャギー
ジャギーが標本化の粗さから生じること、中間色でそれを和らげる原理を理解する。
モアレとエイリアシング
モアレが「標本化が細かさに追いつかない」ときの偽パターンだと理解する。
アルファチャンネルと合成
アルファが透明度を表すこと、合成が α による重み付け和であることを理解する。
前提知識
- 基本的なプログラミング(Python 推奨)
- 配列・行列の概念
- 基礎的な数学(四則演算、関数)