SmTIAS-Evaluation/
├── src/
│ ├── config.py # ROI 設定(roi_config.json)の読み込み
│ ├── io/
│ │ ├── loader.py # PNG 読み込み・ROI 抽出(OpenCV)
│ │ ├── dng_loader.py # DNG(RAW_SENSOR) 読み込み(rawpy, linear 展開)
│ │ └── dng_pipeline.py # DNG 輝度化(LSC 補正・portrait 化・Rec.709 輝度化)
│ ├── analysis/
│ │ ├── uniformity.py # 照明均一性指標(CoV, 標準偏差, max/min, Rec.709 輝度)
│ │ ├── spatial.py # 空間解析(ゾーン・中心周辺勾配・動径プロファイル・動径 min/max 比)
│ │ ├── registration.py # 位相相関による並進位置合わせ
│ │ └── reproducibility.py # 位置合わせ付き SSIM 再現性評価
│ ├── visualization/
│ │ └── plotter.py # 輝度マップ・ヒストグラム・動径プロファイル・ゾーンマップ(Matplotlib)
│ └── export/
│ └── exporter.py # CSV 出力・バッチ集計(csv, NumPy)
├── scripts/
│ ├── run_uniformity.py # PNG 解析ランナー(単一画像/ディレクトリ一括)
│ ├── run_uniformity_dng.py # DNG 解析ランナー
│ ├── select_roi.py # 対話的 ROI 選択(OpenCV)
│ ├── viewer.py # 結果ビューア(Streamlit)
│ └── compare_*.py / plot_radial_clean.py # 報告書用の比較図・クリーン出力
├── tests/
├── config/
│ └── roi_config.json # ROI 定義(キー: smtias.whiteboard 等)
├── data/ # 入力画像(.gitignore 対象)
│ ├── smtias/{whiteboard,quantitative}/
│ └── tias/whiteboard/ # TIAS は今後取得(現状空)
└── output/ # 解析結果(.gitignore 対象)
├── figures/
└── results/
入力画像
├─ PNG → loader.py 読み込み(OpenCV, BGR→RGB)+ ROI 抽出
└─ DNG → dng_loader.py + dng_pipeline.py
linear 展開・LSC 補正・portrait 化・Rec.709 輝度化 + ROI 抽出
↓ uniformity.py 輝度分布・均一性指標(CoV, 標準偏差, max/min)
↓ spatial.py 空間解析(ゾーン別統計・中心周辺比・勾配・動径プロファイル・動径 min/max 比)
↓ reproducibility.py (バッチ時)位置合わせ付き SSIM による画像間再現性
↓ plotter.py 図生成(輝度マップ・ヒストグラム・動径プロファイル・ゾーンマップ)
↓ exporter.py CSV 出力・バッチ集計
アルゴリズムの詳細は SPEC_02 照明均一性評価アルゴリズム,DNG 経路の詳細は TECH_01 DNG 対応要求仕様 を参照.
| モジュール | 責務 | 主な依存 |
|---|---|---|
config.py | ROI 設定 JSON の読み込み | (標準ライブラリ) |
io/loader.py | PNG 読み込み・ROI 抽出 | OpenCV,NumPy |
io/dng_loader.py | DNG(RAW_SENSOR) を linear で読み込み | rawpy,NumPy |
io/dng_pipeline.py | DNG の LSC 補正・portrait 化・Rec.709 輝度化 | NumPy(uniformity の係数を参照) |
analysis/uniformity.py | 輝度変換・均一性指標(CoV,標準偏差,max/min)の算出 | NumPy |
analysis/spatial.py | ゾーン分割・中心周辺比・勾配・動径プロファイル・動径 min/max 比 | NumPy |
analysis/registration.py | 位相相関による並進位置合わせ(サブピクセル) | SciPy,NumPy |
analysis/reproducibility.py | 位置合わせ付き SSIM の画像間再現性評価 | scikit-image,NumPy |
visualization/plotter.py | 輝度マップ・ヒストグラム・動径プロファイル・ゾーンマップの生成 | Matplotlib |
export/exporter.py | 数値結果を CSV 保存・バッチ集計 | csv,NumPy |
scripts/run_uniformity.py | PNG 解析の実行(単一/一括) | 全モジュール |
scripts/run_uniformity_dng.py | DNG 解析の実行 | 全モジュール |
scripts/select_roi.py | 対話的 ROI 選択 | OpenCV |
scripts/viewer.py | 結果ビューア | Streamlit,pandas,Pillow |
data/smtias/{whiteboard,quantitative}/,data/tias/whiteboard/定量モード DNG(SH-02M, RAW_SENSOR)の取り扱い上の固有値:
SENSOR_BLACK_LEVEL_PATTERN)→ 除去後 0〜959rawpy.DemosaicAlgorithm.LINEAR).demosaic 引数で AHD/DHT に切替可ColorMatrix1/2)に埋め込み済み(rawpy が参照).ただし linear 評価経路では output_color=raw(非適用)で読むoutput/figures/ — グラフ画像(PNG,論文掲載用)output/results/ — 数値結果(CSV)