# SmTIAS-Evaluation

SmTIAS（定量撮影モード）の白板画像から **照明均一性** を評価するツール群です．
PNG / DNG(RAW_SENSOR) を入力に，各種均一性指標の算出と可視化を行います．

## 主な機能

- **均一性指標**: CoV・max/min 比・平均/標準偏差
- **空間解析**: 中心/中間/周辺ゾーンの輝度勾配，中心周辺比，動径輝度プロファイル，動径 min/max 比
- **再現性**: 位置合わせ付き SSIM による画像間再現性評価
- **DNG 対応**: RAW_SENSOR DNG を linear で読み込み，`meta.json` の lscMap によるレンズシェーディング補正を順適用
- **可視化**: 輝度マップ・ヒストグラム・動径プロファイル・ゾーンマップ，Streamlit ビューア

## セットアップ

Python 3.11 以上が必要です．詳細は [docs/02_ENV/ENV_02_環境構築手順.md](docs/02_ENV/ENV_02_環境構築手順.md) を参照してください．

```bash
python -m venv .venv
.venv\Scripts\activate          # Windows（macOS/Linux は source .venv/bin/activate）
pip install -r requirements.txt
pip install -r requirements-dev.txt
```

画像データは `data/`，解析結果は `output/` に置きます（どちらも `.gitignore` 対象）．

## 使い方

```bash
# PNG（白板画像 1 枚 / ディレクトリ一括）
python scripts/run_uniformity.py --image data/smtias/whiteboard/xxx.png
python scripts/run_uniformity.py --image data/smtias/whiteboard/

# DNG（定量モード，LSC 補正あり）
python scripts/run_uniformity_dng.py --image data/smtias/quantitative/xxx.dng

# ROI 選択（対話的に矩形を選び config/roi_config.json へ保存）
python scripts/select_roi.py --image data/smtias/whiteboard/xxx.png

# 結果ビューア（Streamlit）
streamlit run scripts/viewer.py
```

ROI は `config/roi_config.json` のキー（既定 `smtias.whiteboard`）で指定します．

## プロジェクト構成

```text
src/
├── config.py            # ROI 設定の読み込み
├── io/                  # 画像 I/O（PNG / DNG）と DNG 輝度化パイプライン
├── analysis/            # 均一性・空間解析・位置合わせ・再現性
├── export/              # CSV 出力・バッチ集計
└── visualization/       # matplotlib による各種プロット
scripts/                 # 解析ランナー・ビューア・比較図生成
tests/                   # pytest
docs/                    # 規約・設計・報告書（索引は CLAUDE.md）
```

## テスト

```bash
python -m pytest
```

## ドキュメント

設計・規約・評価報告は `docs/` 以下にカテゴリ別で整理しています（全体の索引は [CLAUDE.md](CLAUDE.md)）．

- `01_GUIDE/` — 規約・運用ルール（命名規則・Git 運用・コーディング規約・テスト方針 等）
- `02_ENV/` — 技術スタック・環境構築手順
- `03_PLAN/` — 要件定義・開発ステップ
- `04_SPEC/` — アーキテクチャ設計・照明均一性評価アルゴリズム
- `05_TECH/` — 技術設計（DNG 対応要求仕様）
- `06_TEST/` — テスト・評価報告（照明均一性 / PNG・DNG 比較 / 外乱光影響）
- `PROGRESS.md` — 開発進捗のフルログ
