# 技術スタック (Tech Stack)

## 言語 (Language)

- **Python 3.11+**（`pyproject.toml` の `requires-python = ">=3.11"`）

## 主要ライブラリ (Core Libraries)

| ライブラリ | 用途 | 選定理由 |
| --- | --- | --- |
| NumPy | 数値計算・配列操作 | 画像データの行列演算の基盤 |
| OpenCV (`opencv-python`) | 画像の読み込み・前処理 | PNG 読み込み，ROI 抽出，色空間変換に対応 |
| rawpy (`rawpy>=0.21.0`) | DNG (RAW_SENSOR) 読み込み | SmTIAS 定量モードの 10bit Bayer DNG をデモザイク・linear 展開（libraw ベース） |
| SciPy | 位置合わせ（位相相関）・フィルタ | 再現性評価の位置合わせで FFT 相互相関・`scipy.ndimage` を使用 |
| scikit-image | SSIM 再現性評価 | `skimage.metrics.structural_similarity` で画像間 SSIM を算出 |
| Matplotlib | グラフ・図の生成 | 論文掲載用の高品質な図を出力可能 |
| pandas | 数値結果の集計・表示 | ビューアでの集計表・データ管理に便利 |
| Pillow (`PIL`) | 図中の ROI オーバーレイ描画 | ビューアで矩形 ROI を画像へ重ね描き |
| Streamlit | 結果ビューア（GUI） | `scripts/viewer.py` の対話的な結果閲覧 UI |

## 開発ツール (Development Tools)

| ツール | 用途 |
| --- | --- |
| Ruff | リンター・フォーマッター（高速，Flake8 + Black + isort 互換） |
| pytest | テストフレームワーク |
| pip + venv | パッケージ管理・仮想環境（研究用途のため軽量構成） |

## 実行環境 (Runtime Environment)

- **OS**: Windows 11（ローカル PC）
- **実行方法**: CLI スクリプト（`python` コマンドで実行）
- **Jupyter Notebook**: 必要に応じて探索的解析に使用（メインの解析パイプラインはスクリプトで実装）

## 将来導入予定 (Planned)

以下は requirements に含めているが，**現状のコードでは未使用**（将来機能用の予約）．

| ライブラリ | 予定用途 |
| --- | --- |
| colour-science | CIE L\*a\*b\* 変換・ΔE2000 色差評価（CIE 規格準拠） |
| Jinja2 | 評価レポート（HTML 等）のテンプレート生成 |

## 選定の補足 (Notes)

- **SSIM は scikit-image**: 再現性評価の SSIM は `skimage.metrics.structural_similarity` を使用．将来の色差（ΔE）評価には CIE 規格準拠の `colour-science` を予定（上記「将来導入予定」）．
- **Ruff**: Flake8 + Black + isort を 1 つのツールに統合しており，設定が簡潔
