現行アプリの画面構成を踏襲する.画面は 2 つ(メイン画面・結果画面).
メイン画面 ├─ 変換行列 CSV 選択 → 画像 PNG 選択 → 画像上を 1〜4 点クリック ├─ [舌色診断] → 結果画面(モードレス表示) └─ [診断続行] → 入力をリセットして次の診断へ
| 要素 | 仕様 |
|---|---|
| 変換行列選択 | ファイル参照(.csv のみ受付.他拡張子はエラー表示) |
| 画像選択 | ファイル参照(.png のみ受付).読込時に中央基準で 1024×1280 にクロップ |
| 画像表示 | クロップ後画像を 1/2 縮小表示.未読込時はプレースホルダ画像 |
| ROI 指定 | 画像上の左クリックで 51×51 px の ROI を追加(最大 4 点.5 点目はエラー).クリック位置に赤枠を描画,クリック済みマーク(●1〜●4)を表示 |
| リセット | 右クリックで全クリックを取り消し,画像を元に戻す |
| 舌色診断 ボタン | 1 点以上クリックで有効化.診断を実行し結果画面を開く.実行後は再クリック防止のため無効化 |
| L*a*b* 表示 | 診断時に算出した L*・a*・b* を表示 |
| 5 色スコア表示 | 紫・暗赤・紅・淡紅・淡白 の各一致率(%)を表示 |
| 診断続行 ボタン | 診断後に有効化.「同じ変換行列を使用するか」を確認し,画像・クリック状態をリセット |
※ 端クリックのガードは旧実装に無い追加仕様(旧実装は OpenCV 例外でクラッシュしていた.ステップ 6 で追加).
| 要素 | 仕様 |
|---|---|
| 診断画像 | クロップ後の元画像を 1/2 縮小表示 |
| 結果パネル | 5 色の行(色名 + 説明)を一覧表示し,上位 2 色のみスコア(%)と下線を描画 |
| 言語切替ボタン | 日本語 ⇔ 英語を切替(ボタンラベルは切替先の言語名) |
| 診断失敗表示 | 診断失敗時(SPEC_02「診断失敗の判定」参照)に「Diagnosis failed / Please try again.」を表示 |
| 注記 | 「本結果は疾患の診断を行うものではない」「表示画像は明るさ補正されている」 |
| 色名(日) | 色名(英) | 説明(英語版) |
|---|---|---|
| 淡紅 | Pink | Normal |
| 紅 | Red | Hot flush / feverish |
| 暗赤 | Dark red | Blood slightly thick |
| 紫 | Purple | Blood is thick |
| 淡白紅 | Pale red | Cold / fatigue / anemia |
※ 現行の日本語版は文字入り背景画像(img_student2.bmp)を使用している.新実装では日英とも描画で生成し,画像アセット依存を無くす(見た目は現行踏襲).
※ 描画生成の色は旧背景画像からのピクセル実測値を使用する(見出し RGB(233,113,50),5 色の色名は result_window.py の COLOR_SWATCHES 参照).5 色の色名のみ黒縁取り(幅 2 px)を付ける.フォントサイズ・太さも旧画像のインク高実測に基づく(説明文は Medium).
※ 5 色目の日本語表記は画面間で異なる: メイン画面は「淡白」,結果画面は「淡白紅」.旧実装(メイン画面ダイアログと結果画面の背景画像)がこの表記だったため,現行踏襲としてどちらもそのまま維持する(ステップ 7 で背景画像を実確認して確定).