diff --git "a/docs/04_SPEC/SPEC_01_\343\202\242\343\203\274\343\202\255\343\203\206\343\202\257\343\203\201\343\203\243\350\250\255\350\250\210.md" "b/docs/04_SPEC/SPEC_01_\343\202\242\343\203\274\343\202\255\343\203\206\343\202\257\343\203\201\343\203\243\350\250\255\350\250\210.md" new file mode 100644 index 0000000..ab37fa7 --- /dev/null +++ "b/docs/04_SPEC/SPEC_01_\343\202\242\343\203\274\343\202\255\343\203\206\343\202\257\343\203\201\343\203\243\350\250\255\350\250\210.md" @@ -0,0 +1,59 @@ +# アーキテクチャ設計 (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)