Noeies commited on
Commit
817e245
·
verified ·
1 Parent(s): c1e9651

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +100 -0
app.py ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image, ImageDraw
3
+
4
+ # -----------------------------
5
+ # 50 อวัยวะ + คำอธิบาย
6
+ # -----------------------------
7
+ organs = {
8
+ "สมอง":"ควบคุมความคิดและร่างกาย 🧠",
9
+ "ตา":"มองเห็น 👁️",
10
+ "หูซ้าย":"รับเสียง 👂",
11
+ "หูขวา":"รับเสียง 👂",
12
+ "จมูก":"ดมกลิ่น 👃",
13
+ "ปาก":"พูดและกิน 👄",
14
+ "ลิ้น":"รับรส 👅",
15
+ "หัวใจ":"สูบฉีดเลือด ❤️",
16
+ "ปอดซ้าย":"แลกเปลี่ยนก๊าซ 💨",
17
+ "ปอดขวา":"แลกเปลี่ยนก๊าซ 💨",
18
+ "ตับ":"กรองของเสีย 🍷",
19
+ "ตับอ่อน":"สร้างอินซูลิน 💊",
20
+ "กระเพาะอาหาร":"ย่อยอาหาร 🍽️",
21
+ "ลำไส้เล็ก":"ดูดซึมอาหาร 🌀",
22
+ "ลำไส้ใหญ่":"ขับของเสีย 💩",
23
+ "ไตซ้าย":"กรองของเสีย 💧",
24
+ "ไตขวา":"กรองของเสีย 💧",
25
+ "ม้าม":"ทำลายเม็ดเลือดเก่า 💉",
26
+ "ถุงน้ำดี":"เก็บน้ำดี 💚",
27
+ "หลอดอาหาร":"ส่งอาหารไปกระเพาะ 🍴",
28
+ "หลอดลม":"ส่งอากาศเข้าสู่ปอด 🌬️",
29
+ "กระเพาะปัสสาวะ":"เก็บปัสสาวะ 🚰",
30
+ "มดลูก":"ที่อยู่ของทารก 🤰",
31
+ "รังไข่ซ้าย":"สร้างไข่ ⚪",
32
+ "รังไข่ขวา":"สร้างไข่ ⚪",
33
+ "อัณฑะซ้าย":"ผลิตอสุจิ ⚽",
34
+ "อัณฑะขวา":"ผลิตอสุจิ ⚽",
35
+ "ช่องคลอด":"ช่องทางสืบพันธุ์ 🚺",
36
+ "อวัยวะเพศชาย":"ช่องทางสืบพันธุ์ 🚹",
37
+ "หัวใจห้องบนซ้าย":"หัวใจส่วนบนซ้าย ❤️",
38
+ "หัวใจห้องบนขวา":"หัวใจส่วนบนขวา ❤️",
39
+ "หัวใจห้องล่างซ้าย":"หัวใจส่วนล่างซ้าย ❤️",
40
+ "หัวใจห้องล่างขวา":"หัวใจส่วนล่างขวา ❤️",
41
+ "ต่อมไทรอยด์":"ควบคุมเมตาบอลิซึม 🧬",
42
+ "ต่อมหมวกไตซ้าย":"ควบคุมฮอร์โมน 🧫",
43
+ "ต่อมหมวกไตขวา":"ควบคุมฮอร์โมน 🧫",
44
+ "ไขสันหลัง":"ส่งสัญญาณประสาท 🧬",
45
+ "กล้ามเนื้อแขน":"เคลื่อนไหวแขน 💪",
46
+ "กล้ามเนื้อขา":"เคลื่อนไหวขา 💪",
47
+ "มือ":"จับสิ่งของ ✋",
48
+ "เท้า":"ทรงตัว 🦶",
49
+ "เข่า":"พับขา 🦵",
50
+ "สะโพก":"รองรับน้ำหนัก 🍑",
51
+ "ไส้ติ่ง":"ส่วนต่อของลำไส้ใหญ่ 🩺",
52
+ "กระจกตา":"ช่วยมองเห็น 👁️",
53
+ "จอประสาทตา":"แปลงแสงเป็นสัญญาณ 🧠",
54
+ "หลอดลมฝอย":"ส่งอากาศสู่ถุงลม 🌬️",
55
+ "หัวใจรวม":"หัวใจรวมทุกส่วน ❤️",
56
+ "ตับรวม":"ตับรวมทุกส่วน 🍷",
57
+ "ปอดรวม":"ปอดรวมทั้งสองข้าง 💨",
58
+ "ลำไส้รวม":"ลำไส้รวมทุกส่วน 🌀",
59
+ "กระเพาะรวม":"กระเพาะรวม 🍽️"
60
+ }
61
+
62
+ # -----------------------------
63
+ # สร้างภาพร่างกาย + กรอบอวัยวะ (ตำแหน่งสมมุติ)
64
+ # -----------------------------
65
+ def create_body_image():
66
+ img = Image.new("RGB", (500, 1000), "white")
67
+ draw = ImageDraw.Draw(img)
68
+ positions = []
69
+ y = 10
70
+ for i in range(50):
71
+ x1, y1 = 50, y
72
+ x2, y2 = 450, y+15
73
+ draw.rectangle([x1, y1, x2, y2], outline="red", width=2)
74
+ positions.append((x1, y1, x2, y2))
75
+ y += 20
76
+ return img, positions
77
+
78
+ img, positions = create_body_image()
79
+
80
+ # -----------------------------
81
+ # ฟังก์ชันตรวจสอบคลิก
82
+ # -----------------------------
83
+ def detect_organ(evt: gr.SelectData):
84
+ x, y = evt.index[0], evt.index[1]
85
+ for i, (x1,y1,x2,y2) in enumerate(positions):
86
+ if x1 <= x <= x2 and y1 <= y <= y2:
87
+ organ_name = list(organs.keys())[i]
88
+ return f"{organ_name}: {organs[organ_name]}"
89
+ return "คลิกบนกรอบอวัยวะเพื่อดูคำอธิบาย"
90
+
91
+ # -----------------------------
92
+ # Gradio Interface
93
+ # -----------------------------
94
+ with gr.Blocks() as demo:
95
+ gr.Markdown("## 🧍 ระบบเรียนรู้อวัยวะ 50 ชิ้น (คลิกที่กรอบอวัยวะ)")
96
+ img_display = gr.Image(value=img, interactive=True)
97
+ output = gr.Textbox(label="ข้อมูลอวัยวะ", interactive=False)
98
+ img_display.select(detect_organ, None, output)
99
+
100
+ demo.launch()