# アーキテクチャ設計 (Architecture)

## ディレクトリ構造 (Directory Structure)

```text
MiniTias-Evaluation/
├── src/
│   ├── io/
│   │   └── loader.py          # 画像読み込み（OpenCV）
│   ├── analysis/
│   │   ├── uniformity.py      # 照明均一性評価
│   │   └── color.py           # 色再現性評価（ΔE，L*a*b*）
│   ├── visualization/
│   │   └── plotter.py         # グラフ・図の生成（Matplotlib）
│   └── export/
│       └── exporter.py        # CSV・画像の出力（pandas）
├── scripts/
│   └── run_analysis.py        # 実行エントリーポイント
├── tests/
├── data/
│   ├── minitias/whiteboard/
│   └── tias/whiteboard/
└── output/
```

## 処理パイプライン (Processing Pipeline)

```text
PNG 画像
  ↓  loader.py        画像読み込み（OpenCV，BGR→RGB）
  ↓  loader.py        ROI 抽出（解析対象領域の切り出し）
  ↓  uniformity.py    輝度分布の計算（均一性指標: CoV 等）
     color.py         色空間変換（sRGB → L*a*b*）・ΔE 計算
  ↓  plotter.py       グラフ生成（輝度マップ，色差分布等）
  ↓  exporter.py      CSV・PNG 出力
```

## モジュール設計 (Module Design)

| モジュール | 責務 | 主な依存 |
| --- | --- | --- |
| `loader.py` | PNG 読み込み・ROI 抽出 | OpenCV，NumPy |
| `uniformity.py` | 輝度分布・均一性指標（CoV，標準偏差等）の算出 | NumPy |
| `color.py` | sRGB→L\*a\*b\* 変換・ΔE2000 計算 | colour-science，scipy |
| `plotter.py` | 輝度マップ・棒グラフ・散布図の生成 | Matplotlib |
| `exporter.py` | 数値結果を CSV，図を PNG で保存 | pandas，Matplotlib |
| `run_analysis.py` | 各モジュールを呼び出す実行スクリプト | 全モジュール |

## 入出力仕様 (I/O Specification)

### 入力 (Input)

- 形式: PNG（8bit RGB）
- 配置: `data/minitias/whiteboard/`，`data/tias/whiteboard/`

### 出力 (Output)

- `output/figures/` — グラフ画像（PNG，論文掲載用）
- `output/results/` — 数値結果（CSV）
