Newer
Older
TIASShot / docs / 03_SPEC / SPEC_01_機能仕様.txt
========================================================================
機能仕様 (Feature Specification)
========================================================================

1. 対応カメラ (Supported Cameras)
------------------------------------------------------------------------
起動時に Lucam → ImagingSource の順で接続を試みる.

■ ImagingSource カメラ(新カメラ)
    ・対応機種: DFK33UX178,DFK23UX249
        - ※ README には DBK33UX178 と記載されていたが,ソースコード上は DFK33UX178 として扱われている.実機の型番は要確認.
    ・SDK: IC Imaging Control (TIS.Imaging)
    ・設定ファイル: `[デバイス名].xml`(例: `DFK33UX178.xml`)

■ Lumenera カメラ(旧カメラ)
    ・対応機種: Lw110
    ・SDK: Lumenera SDK(`lumenera.api.dll`)


2. プレビュー (Preview)
------------------------------------------------------------------------
・起動後,接続したカメラのライブ映像をメインウィンドウに表示する.
・サブモニタへのプレビュー表示にも対応する(PreviewMonitor).
・ImagingSource カメラはプレビュー時に ROI クリップを適用する.


3. 自動キャリブレーション (Auto Calibration)
------------------------------------------------------------------------
プレビュー中に舌診チャートを検出すると自動でキャリブレーションを開始する.

3-1. チャート検出
    ・ArUco マーカー(ID 40, 41)を使用してチャートを自動検出する.
    ・チャートが一定フレーム数静止したことを確認してからキャリブを開始する.

3-2. ホワイトバランス調整
    ・チャートの白色票(24色票の13番)を基準にカメラのゲインを自動調整する.
    ・目標値は `config.xml` の `Calib/Reference` で指定する.

3-3. TCC(色変換行列)計算
    ・24パッチの平均 RGB 値を計測し,最小二乗法(SVD)で変換行列を算出する.
    ・変換次元数(多項式の次数)は `Calib/ConversionChannels` で指定する.
        - 4: 1次式(R,G,B,1)
        - 10: 2次式(+RG,RB,GB,R²,G²,B²)
        - 17: 3次式(+R²B,R²G,G²R,G²B,B²R,B²G,RGB)
    ・複数の次元数をカンマ区切りで同時に指定可能(例: `4,10,17`).
    ・算出した変換行列は CSV ファイルに保存される.


4. 撮影 (Shooting)
------------------------------------------------------------------------
キャリブレーション完了後に撮影ボタンが有効になる.

■ 1枚撮影
    ・撮影した画像を1枚保存する.

■ 連続撮影
    ・指定した枚数・間隔で連続撮影する.
    ・枚数・間隔は UI で変更可能(デフォルト値は `config.xml` で設定).

■ 保存される画像
    ・元画像(RGB): `Shot{NO}.png`
    ・sRGB 変換画像: `sRGB{CN}_{NO}.jpg`(指定した次元数ぶん生成される)


5. データ保存 (Data Saving)
------------------------------------------------------------------------
撮影・キャリブレーション結果は保存フォルダ以下に日時フォルダで自動保存される.

■ 保存先フォルダ構成
    ・`[SaveFolder]/[日付]/[時刻]-[データ名]/`

■ キャリブレーション保存ファイル
    ・`TCC.png`: キャリブ時の画像
    ・`TCC_ROIs.jpg`: チャートの ROI 確認画像
    ・`TCC_RGB.csv`: チャート24色票の RGB 値
    ・`TCC_sRGB{CN}.csv`: チャート24色票の sRGB 変換値
    ・`Conv_RGB-sRGB{CN}.csv`: RGB→sRGB 変換行列
    ・`Conv_RGB-XYZ{CN}.csv`: RGB→XYZ 変換行列
    ・`Conv_sRGB-XYZ{CN}.csv`: sRGB→XYZ 変換行列

■ 撮影保存ファイル
    ・`Info.csv`: 撮影情報(カメラ型番・SN,露光時間,ゲイン等)
    ・`Shot{NO}.png`: 元画像(RGB)
    ・`sRGB{CN}_{NO}.jpg`: sRGB 変換画像


6. 光源制御 (Light Source Control)
------------------------------------------------------------------------
・シリアル通信(USB-シリアル変換)で光源の ON/OFF を制御する.
・対応デバイス: Silicon Labs CP210x(`config.xml` で変更可能).
・キャリブレーション中は光源の切り替えが無効になる.
・光源デバイスが見つからない場合,光源ボタンが無効化される.