Newer
Older
TIASShot / docs / 04_SPEC / SPEC_01_機能仕様.md

機能仕様 (Feature Specification)

対応カメラ (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)

プレビュー (Preview)

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

自動キャリブレーション (Auto Calibration)

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

チャート検出

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

ホワイトバランス調整

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

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 ファイルに保存される.

撮影 (Shooting)

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

1枚撮影

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

連続撮影

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

保存される画像

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

撮影失敗時の挙動

  • カメラからのフレーム取得に失敗した場合,その時点で撮影全体を中止する(残り枚数は撮影しない).
  • 中止した旨をダイアログで通知する.通知は撮影終了処理(プレビュー復帰)の完了後に表示される.
  • 取得済みの画像は破棄せずそのまま保存し,Info.csv に中止した旨と理由を記録する.失敗した1枚は成功として記録されない.
  • 撮影開始前の準備(保存フォルダの作成等)やカメラ制御でエラーが起きた場合も,ダイアログで通知して撮影ボタンを操作可能な状態に戻す.
  • 画像の保存に失敗した場合は,保存処理の終了後にダイアログで通知する.
  • ※ 撮影ボタンは保存が完了するまで無効のままとなる(保存中に次の撮影を開始できない).

データ保存 (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,Time(ms),Note.3 列目は撮影を中止した行にのみ理由が入る
  • Shot{NO}.png: 元画像(RGB)
  • sRGB{CN}_{NO}.jpg: sRGB 変換画像

光源制御 (Light Source Control)

  • シリアル通信(USB-シリアル変換)で光源の ON/OFF を制御する.
  • 対応デバイス: Silicon Labs CP210x(config.xml で変更可能).
  • キャリブレーション中は光源の切り替えが無効になる.
  • 光源デバイスが見つからない場合,光源ボタンが無効化される.
  • 起動時にポートを開いて点灯する.
  • アプリ終了時は消灯せず,ポートを閉じるだけにする(終了後も光源は点いたまま残る).上流 v1.7 と同じ動作で,2026-10-08 にユーザーが仕様として確定した.