# 画面仕様 (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 は押せなくなる

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

| 状況 | 表示・動作 |
| --- | --- |
| 舌を検出できない | 表示なし．`analysis.csv` に `<画像名>,Tongue detection error` を書き，次の画像へ進む |
| 舌領域が 1 つにまとまらない | 表示なし．`analysis.csv` に `<画像名>,Tongue segmentation error` を書き，次の画像へ進む |
| 小領域除去 DLL を呼べない | エラーダイアログ（`Unable to reprocess! ...`）を出し，残りの画像を処理せずに終了する |
| 上記以外の例外 | 表示されない（既知の不具合を参照） |

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

[要件定義書](../03_PLAN/PLAN_01_要件定義書.md) の「実行を妨げる不具合の修正」で直す対象．

- 舌領域が 1 つにまとまらない画像で，二値画像のウィンドウ（`dst2`）が開き，キーを押すまで解析が止まる
- 2 回目以降に Start を押すと，押した回数だけ解析が重複して実行される
- モード選択は一度 Start を押すと押せないままになる（モードを変えるにはアプリの再起動が必要）
- 解析中に想定外の例外が起きると，何も表示されずに止まり，Start も押せないままになる
- Pause の停止は画像 1 枚ごとにしか効かない（1 枚の処理中は止まらない）
