画像処理 入門

デジタル画像の基礎知識

入門の概要

画像処理とは、デジタル画像をコンピュータで解析・変換・改善する技術である。写真の補正から、医療画像の診断支援、自動運転やAIの画像認識まで、応用は幅広い。

入門では、画像処理を学ぶための基礎知識を習得する。デジタル画像の成り立ちから、色空間、ヒストグラム、基本的な画像操作まで、実装に入る前に押さえるべき概念を学ぶ。

学習目標

  • デジタル画像の構造(画素、解像度、ビット深度)を理解する
  • RGB、HSV、グレースケールなど色空間の概念を把握する
  • ヒストグラムの意味と使い方を理解する
  • Python と OpenCV の基本的な使い方を習得する
  • 画像の読み込み、表示、保存ができる

図解:デジタル画像とは

デジタル画像は、細かい四角い 画素(ピクセル) がびっしり並んだもの。1つの画素は R・G・B の 3つの数値(各 0〜255)で色を持つ。解像度スライダーで画素数を変えて粗さ(モザイク化)を体感し、画像に触れるとその画素の色の値が見える。

48 × 48 画素
画像に触れると
その画素の値を表示

画素数が少ないほど1つの画素が大きくなり、絵がカクカクに(モザイク化)。最大まで上げると元画像(オリジナル)が表示される。

図 1: 画像=画素の集合。滑らかに見える写真も、拡大すれば色のついた小さな四角の集まり。

目次

1. デジタル画像の基礎

画像処理の出発点。

  • 画素 (Pixel) とは
  • 解像度とサイズ
  • ビット深度
  • 画像フォーマット (JPEG, PNG, BMP)

2. 色空間

色の表現方法。

  • RGB 色空間
  • HSV/HSL 色空間
  • グレースケール変換
  • 色空間変換の用途

3. ヒストグラム

画像の統計的分析。

  • 輝度ヒストグラム
  • ヒストグラムの読み方
  • コントラストとの関係
  • ヒストグラム平坦化

4. 基本的な画像操作

実装の第一歩。

  • 画像の読み込みと保存
  • リサイズと回転
  • 切り抜き (ROI)
  • 画素値の直接操作

5. 点処理

画素単位の変換。

  • ネガポジ反転
  • 明るさ・コントラスト調整
  • ガンマ補正
  • 2値化 (閾値処理)

6. Python/OpenCV 入門

実装環境の構築。

  • 環境セットアップ
  • NumPy と画像配列
  • OpenCV の基本関数
  • Matplotlib での表示

図解:色空間と混色

画面の色は 光を足す加法混色(RGB)、印刷の色は インクで光を引く減法混色(CMY)。下の2つのミキサーで、それぞれスライダーを動かして混ざり方の違いを確かめよう。

加法混色(RGB・光)
#FFFFFF

黒地に光を足す。3色すべて最大 → 白(光の和)。

減法混色(CMY・インク)
#000000

白地から色を引く。3色すべて最大 → 黒(すべて吸収)。

図 2: 左=加法混色(黒地に光を足す。重なりは黄・シアン・マゼンタ、中心は白)。右=減法混色(白地から色を引く。重なりは青・緑・赤、中心は黒)。ディスプレイは加法、印刷・絵の具は減法。RGB を半透明で白地に重ねると減法混色に見えてしまうので、黒地+光の加算で描くのが正しい。

色相を軸にした HSV(色相・彩度・明度)や、輝度だけの グレースケール も、用途に応じて RGB から変換して使う。グレースケール変換式は 主要な概念 を参照。

図解:ヒストグラム

ヒストグラムは「各明るさの画素がどれだけあるか」を表すグラフ(横軸:暗い0〜明るい255、縦軸:画素数)。左が実際の画像、右がその画像の輝度ヒストグラム明るさコントラストのスライダーを動かすと、画像とヒストグラムが同時に変わる。端に寄せすぎると白飛び・黒つぶれで画像の細部が失われる(=もう戻せない情報の損失)。

画像(明るさ・コントラストを適用)
その画像の輝度ヒストグラム
バランスの良い露出。ヒストグラムは中央に山。
図 3: 明るさ=画像全体を明暗へ平行移動/コントラスト=明暗の差を強調・弱化。スライダーで画像とヒストグラムが連動する。端に寄せすぎると 白飛び・黒つぶれ(オレンジの棒)で細部が消え、元に戻せなくなる。

主要な概念

デジタル画像

デジタル画像は、2次元配列として表現される。各要素(画素)は輝度や色情報を持つ整数値。カラー画像は通常、RGB の3チャンネルを持つ3次元配列となる。

グレースケール変換

RGB画像をグレースケールに変換する一般的な式: $Y = 0.299R + 0.587G + 0.114B$。人間の視覚特性に基づく重み付け。

ヒストグラム平坦化

画像のコントラストを改善する手法。累積分布関数 (CDF) を用いて輝度値を再配分し、ヒストグラムを均一に近づける。

副読本(読み物)

本編に加えて、デジタル画像の仕組みを図でやさしく掘り下げる読み物。

標本化と量子化

連続的な光の像が「標本化」と「量子化」の2段階でデジタル画像になる流れを理解する。

ビット深度と階調

ビット深度が表現できる明るさの段階数を決めること、低いと階調が飛ぶことを理解する。

解像度・PPI・DPI

「解像度(画素数)」と「PPI/DPI(密度)」は別物だと区別できるようになる。

画像ファイル形式の選び方

可逆/非可逆圧縮の違いを理解し、写真とロゴで形式を使い分けられるようになる。

ガンマ補正の直感

ガンマ補正が「明るさを人の感覚に合わせて配分し直す」操作だと理解する。

トーンカーブとLUT

明るさ・コントラスト調整が「1画素ごとの写像(LUT)」で表せることを理解する。

補間によるリサイズ

拡大・縮小に「補間」が必要な理由と、代表的な3手法の違いを理解する。

アンチエイリアシングとジャギー

ジャギーが標本化の粗さから生じること、中間色でそれを和らげる原理を理解する。

モアレとエイリアシング

モアレが「標本化が細かさに追いつかない」ときの偽パターンだと理解する。

アルファチャンネルと合成

アルファが透明度を表すこと、合成が α による重み付け和であることを理解する。

前提知識

  • 基本的なプログラミング(Python 推奨)
  • 配列・行列の概念
  • 基礎的な数学(四則演算、関数)

よくある質問(FAQ)

画像処理入門では何を学ぶのか?
デジタル画像の基本概念(画素・解像度・ビット深度・色空間)、ヒストグラムの見方、明るさ・コントラスト・ガンマ補正などの点処理、リサイズや切り抜きといった基本操作、そして Python と OpenCV による実装の基礎を学ぶ。
デジタル画像はどのように表現されるのか?
2次元または3次元のグリッド上に並んだ画素値の配列として表現される。グレースケール画像は1チャンネル、カラー画像は RGB など3チャンネルの行列となる。各画素値は通常 0〜255 の整数(8bit)である。
画像の色空間にはどのようなものがあるのか?
RGB(赤緑青の3原色)、HSV(色相・彩度・明度)、YCbCr(輝度と色差)、Lab*(人間の知覚に近い均等色空間)などがある。用途に応じて変換して使い分ける。