# 要件定義書 (Requirements)

## プロジェクトの目的 (Purpose)

- 既存の舌診支援アプリ `tonguediagnosisMFC2`（C++ / MFC / OpenCV）を，**同一機能を保ったまま**保守・拡張しやすい構成で再構築する
- ビルド成果物やデータの混在を解消し，ドキュメント・テスト・規約の揃ったリポジトリとして管理できるようにする

## 対象ユーザー (Target Users)

- 舌診研究に携わる研究者・学生（画像から舌色の客観評価を得たい人）

## 現行機能（維持すべき機能）(Current Features to Preserve)

既存実装（`org/src/tonguediagnosisMFC2`）の解析に基づく機能一覧．

1. **入力**
   - 変換行列 CSV の読み込み（RGB→XYZ 多項式回帰係数 17×3）
   - 舌画像（PNG）の読み込みと中央クロップ（1024×1280）
2. **ROI 指定**
   - 画像上のクリック（1〜4 点）で 51×51 px の ROI を指定，平均 BGR を取得
   - 右クリックで選択リセット
3. **舌色診断**
   - ROI 平均 RGB → 多項式変換で XYZ → Lab（固定白色点 Xn=102.07, Yn=100.0, Zn=79.41）
   - `data.csv`（84 サンプル × [Lab 3 次元 + 医師評価 190 次元 = 38 名 × 5 色]）を学習データに，出力次元ごとに SVM（RBF, γ=0.011, C=12.0）を毎回学習して予測
   - 5 色（紫・暗赤・紅・淡紅・淡白紅）ごとの一致率（%）と上位 2 ラベルを算出
4. **結果表示**
   - L\*a\*b\* 値・5 色スコア・上位 2 ラベルの表示，結果ダイアログ（日本語/英語切替）
5. **連続診断**
   - 同じ変換行列を使い回して次の画像を診断できる

## スコープ外 (Out of Scope)

- 診断アルゴリズム自体の変更・精度改善（挙動は現行と一致させる）
- カメラ撮影・画像補正機能の新規追加（コメントアウトされた明るさ補正等は移植しない）
- 医師評価データの収集・更新フロー

## 成功基準 (Success Criteria)

- 同じ入力（画像・クリック位置・変換行列・data.csv）に対して現行実装と同じ診断結果を返す
- ソース・データ・ビルド成果物が分離され，`.gitignore` が整備されている
- 主要ロジック（Lab 変換・SVM 分類・CSV 読込）が UI から分離され，テスト可能になっている
