HSV色空間を用いた特定色の抽出を行う対話的な学習ツールです。農業分野での色による作物や果実の識別に応用できる技術を学びます。
📚 システムの使い方#
1. 色の選択方法(3通り)#
以下の3つの方法から、抽出したい色を選択できます:
- HSV色相環をクリック:視覚的に色を選択
- スライダーで調整:色相範囲(H)、彩度範囲(S)、明度範囲(V)を細かく設定
- プリセットボタン:緑色抽出、赤色抽出、黄色抽出の定番設定
2. 色の許容範囲の調整#
色相、彩度、明度それぞれについて最小値と最大値を設定して、抽出する色の範囲を調整します。
3. プリセットの活用#
- 緑色抽出:葉の判定に利用
- 赤色抽出:果実の判定に利用
- 黄色抽出:熟度判定に利用
4. 結果の確認#
抽出結果を確認し、必要に応じて各パラメータを微調整します。
インタラクティブデモ#
選択色: H:0° S:100% V:100%
元画像
フィルタリング結果
HSV色相環
RGB色空間とHSV色空間#
RGB色空間#
RGB(Red, Green, Blue)色空間は、コンピュータディスプレイで最も一般的な色表現方法です。
- R(赤):0~255の値
- G(緑):0~255の値
- B(青):0~255の値
3つの原色を組み合わせて色を表現します。
HSV色空間#
HSV(Hue, Saturation, Value)色空間は、人間の色認識により近い表現方法です。
H(色相/Hue):0°~360°の角度で色の種類を表現
- 0°/360°:赤
- 60°:黄
- 120°:緑
- 180°:シアン
- 240°:青
- 300°:マゼンタ
S(彩度/Saturation):0~100%で色の鮮やかさを表現
- 0%:無彩色(グレー)
- 100%:純色
V(明度/Value):0~100%で明るさを表現
- 0%:黒
- 100%:最大の明るさ
農業における色抽出の応用#
1. 作物の生育状態診断#
- 葉色による栄養診断:窒素含量の推定
- 病害虫の早期発見:変色部分の検出
- 水ストレスの検出:葉の色変化を監視
2. 果実の熟度判定#
- 収穫適期の判断:色による熟度評価
- 品質分類:色による等級分け
- 収量予測:着色果実のカウント
3. 雑草の識別#
- 作物と雑草の分離:色の違いを利用
- 精密除草:特定エリアの雑草検出
- 薬剤散布の最適化:必要箇所のみ処理
4. 土壌分析#
- 土壌タイプの分類:色による土質判定
- 水分状態の推定:土色の変化を監視
- 有機物含量の推定:色の濃さから推定
HSV色空間を使う利点#
直感的な色選択
- 色相で「何色か」を直接指定
- 彩度と明度で微調整
照明変化への対応
- 明度を分離して扱える
- 屋外での光量変化に強い
特定色の抽出が容易
- 色相の範囲指定で簡単に抽出
- RGBより計算が単純
実習課題#
基本課題#
緑色抽出の最適化
- 葉だけを正確に抽出する設定を見つける
- 影や反射への対処
赤色果実の検出
- トマトやイチゴの検出設定
- 未熟果と完熟果の分離
黄色領域の抽出
- 黄化した葉の検出
- 花の領域抽出
応用課題#
複数色の同時抽出
- 複数の色範囲を組み合わせる
- 論理演算(AND/OR)の活用
ノイズ除去
- 小さな領域の除去
- モルフォロジー処理の適用
定量評価
- 抽出領域の面積計算
- 色の分布ヒストグラム作成
プログラミングでの実装例#
Python(OpenCV)での実装#
import cv2
import numpy as np
# 画像読み込み
img = cv2.imread('image.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 緑色の範囲定義
lower_green = np.array([40, 40, 40])
upper_green = np.array([80, 255, 255])
# マスク作成
mask = cv2.inRange(hsv, lower_green, upper_green)
result = cv2.bitwise_and(img, img, mask=mask)
まとめ#
HSV色空間を用いた色抽出は、スマート農業において非常に重要な基礎技術です。作物の状態診断、収穫適期の判断、品質評価など、様々な場面で活用されています。
このインタラクティブツールを使って、様々なパラメータの組み合わせを試し、色抽出の原理と実践的な応用方法を身につけてください。
次の講義「エッジ検出 」では、画像の輪郭を検出する技術について学びます。