# 画面仕様 (Screen Specification)

DeepTIAS の画面構成と操作を定める．本書は v2.7 時点の動作を記録したものであり，[要件定義書](../03_PLAN/PLAN_01_要件定義書.md) で修正対象とした不具合は「既知の不具合」として区別して記す．

## 画面構成 (Layout)

画面は 1 つ（`Form1`，タイトル「DeepTIAS2.7」）．処理の途中経過を画像で表示するパネルと，操作・状態表示の領域からなる．

### 操作部 (Controls)

| 部品 | 表示 | 役割 |
| --- | --- | --- |
| モード選択 | `Image(画像のみ)` / `Image&Calib(画像とカラーチャート)` | 解析モードを選ぶ．既定は `Image(画像のみ)` |
| Start ボタン | `Start` | 解析を開始する |
| Pause ボタン | `Pause` / `Continue` | 解析を一時停止・再開する．解析中のみ押せる |

### 画像表示パネル (Image Panels)

各パネルの見出しラベルは，その処理を実行している間だけ背景が赤になり，進行中の工程を示す．

| 見出し | 表示する画像 |
| --- | --- |
| Input | 入力した舌画像 |
| Calibration | 色補正後の画像（Image&Calib のみ） |
| Detection | 検出した舌の矩形を描いた画像 |
| Segmentation | セグメンテーション結果（二値画像） |
| Mask | 元画像サイズに戻したマスク |
| Extraction | マスクで切り出した舌 |
| view | 領域分割の結果 |
| view2 | 未使用（常に空） |

### 状態表示 (Status)

| 表示 | 内容 |
| --- | --- |
| 状態 | 実行中の工程（日本語） |
| Processing File | 処理中のファイル名．待機中は `None` |
| Total Progress | 処理済み枚数 / 全枚数（例: `Total Progress: 3/10`） |

## 操作の流れ (Operation Flow)

1. 入力画像を所定のフォルダに置く（[入出力仕様](SPEC_03_入出力仕様.md)）
2. モードを選ぶ
3. Start を押す．Start とモード選択が押せなくなり，Pause が押せるようになる
4. 画像を 1 枚ずつ解析し，各パネルと状態表示が更新される
5. Pause を押すと，処理中の画像を終えた時点で停止する．ボタンが `Continue` に変わり，押すと再開する
6. 全画像を処理すると「Finished!」のメッセージが出る．Start とモード選択が再び押せるようになり，Pause は押せなくなる
7. 続けて別のモード・同じモードで解析できる（アプリの再起動は不要）

## エラー時の表示 (Error Display)

| 状況 | 表示・動作 |
| --- | --- |
| 舌を検出できない | 表示なし．`analysis.csv` に `<画像名>,Tongue detection error` を書き，次の画像へ進む |
| 舌領域が 1 つにまとまらない | 表示なし．`analysis.csv` に `<画像名>,Tongue segmentation error` を書き，次の画像へ進む |
| 小領域除去 DLL を呼べない | エラーダイアログ（`Unable to reprocess! ...`）を出し，残りの画像を処理せずに終了する |
| 上記以外の例外 | エラーダイアログ（`Error: <例外のメッセージ>`）を出し，残りの画像を処理せずに終了する．Start とモード選択が再び押せる状態に戻る |

## 既知の不具合 (Known Issues)

- Pause の停止は画像 1 枚ごとにしか効かない（1 枚の処理中は止まらない）
- 小領域除去 DLL を呼べないときのダイアログは解析スレッドから出ており，閉じたあとに「Finished!」も出る
- 解析中にウィンドウを閉じると例外になる可能性がある
- ※ v2.7 にあった「`dst2` ウィンドウで解析が止まる」「Start を押すたびに解析が重複する」「モード選択が押せないままになる」「例外が起きると何も表示されずに止まる」は修正済み（[開発ステップ](../03_PLAN/PLAN_02_開発ステップ.md) のステップ 2）
