YUVとHSVの違いと用途の比較

カラースペースの設計目的の違い

カラーモデル主な目的代表的な用途
YUV明度と色差を分離し、黒白テレビとの互換性と帯域効率を向上動画圧縮(テレビ放送、JPEG/MPEG)
HSV人間の色覚に近い直感的なカラーパラメータを提供画像編集、色選択、コンピュータビジョン

構成要素と定義

YUVの構造

  • Y成分: 明度情報(画像の主な帯域を占める)
  • U(Cb)とV(Cr): 色差情報。色階の解像度を低下させた4:2:0サムプリングによりデータ量を削減。

HSVの構造

  • H(色相): 色の種類(0°〜360°)
  • S(彩度): 色の純度(0%がグレースケール、100%が原色)
  • V(明度): 色の明るさ(0%が黒、100%が最大輝度)

変換式と幾何的特徴

YUVの変換

# BT.601基準の例
Y = 0.299*R + 0.587*G + 0.114*B
U = 0.492*(B - Y)
V = 0.877*(R - Y)

明度-色差分離型の三次元線形空間としての特性。

HSVの変換

# 簡易版の計算
max_val = max(R, G, B)
min_val = min(R, G, B)
V = max_val
S = (max_val - min_val) / max_val if max_val != 0 else 0
# Hの計算(色相帯ごとに処理が必要)

円筒座標系(Hが角度、Sが半径、Vが高さ)として表現。

用途の比較

用途YUVHSV
動画圧縮H.264/MPEGでの帯域節約非対応
色調整操作が非直感的色相/彩度の直接調整(Photoshopなど)
コンピュータビジョン肌色モデル(顔検出)色閾値による物体抽出
モノクロ互換性Yチャンネルで対応無し

主要な差異まとめ

特徴YUVHSV
主な利点圧縮効率、互換性色操作の直感性、人間認識に近い
データ分離明度(Y)と色差(UV)の分離色相(H)、彩度(S)、明度(V)の分離
適用分野動画処理画像処理、デザイン
人間の感度明度に最適化色覚次元を直接反映

コード例

YUVとRGBの変換(Python)

import cv2
import numpy as np

# RGBからYUV(OpenCVのYCrCbを使用)
rgb_data = cv2.imread("image.jpg")
yuv_data = cv2.cvtColor(rgb_data, cv2.COLOR_BGR2YCrCb)

# YUVからRGBに戻す
recovered_rgb = cv2.cvtColor(yuv_data, cv2.COLOR_YCrCb2BGR)

HSVの色閾値処理

import cv2

# 画像をHSVに変換
image = cv2.cvtColor(cv2.imread("image.jpg"), cv2.COLOR_BGR2HSV)

# 赤色範囲の定義(H: 0°〜10°と160°〜180°)
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(image, lower_red, upper_red)

# 赤色領域の抽出
result = cv2.bitwise_and(image, image, mask=mask)

選択基準

  • YUVを選択: 動画圧縮、リアルタイム伝送、モノクロ互換性が必要な場合
  • HSVを選択: 色の直接調整や色閾値によるオブジェクト抽出が必要な場合

タグ: YUV HSV 画像処理 カラースペース OpenCV

9月26日 12:11 投稿