======================================================================== 機能仕様 (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` で変更可能). ・キャリブレーション中は光源の切り替えが無効になる. ・光源デバイスが見つからない場合,光源ボタンが無効化される.