-
Notifications
You must be signed in to change notification settings - Fork 127
Expand file tree
/
Copy path.main.pay
More file actions
117 lines (93 loc) · 4.59 KB
/
.main.pay
File metadata and controls
117 lines (93 loc) · 4.59 KB
1
2
3
4
5
6
7
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import tkinter as tk
from tkinter import messagebox
import time
import cv2
from PIL import Image, ImageTk
import threading
class ReminderApp:
def __init__(self, root):
self.root = root
self.root.title("یادآوری کننده")
self.root.geometry("600x500")
# متغیرها
self.tasks = []
self.task_images = {}
self.image_wait_time = 30 # زمان منتظر بودن برای عکس (ثانیه)
# ساخت ساعت
self.label_time = tk.Label(root, text="00:00", font=("Helvetica", 48))
self.label_time.pack(pady=20)
# ورودی کارها
self.task_label = tk.Label(root, text="کارها:", font=("Helvetica", 14))
self.task_label.pack()
self.task_entry = tk.Entry(root, font=("Helvetica", 14))
self.task_entry.pack(pady=10)
self.add_task_button = tk.Button(root, text="افزودن کار", font=("Helvetica", 14), command=self.add_task)
self.add_task_button.pack(pady=10)
self.show_task_button = tk.Button(root, text="نمایش کارها", font=("Helvetica", 14), command=self.show_tasks)
self.show_task_button.pack(pady=10)
self.check_image_button = tk.Button(root, text="ارسال عکس", font=("Helvetica", 14), command=self.capture_image)
self.check_image_button.pack(pady=10)
# فریم نمایش لیست کارها
self.task_list_label = tk.Label(root, text="لیست کارها:", font=("Helvetica", 14))
self.task_list_label.pack(pady=10)
self.task_list_display = tk.Label(root, text="", font=("Helvetica", 12))
self.task_list_display.pack(pady=10)
# آپدیت ساعت
self.update_time()
def update_time(self):
current_time = time.strftime("%H:%M:%S")
self.label_time.config(text=current_time)
self.root.after(1000, self.update_time)
def add_task(self):
task = self.task_entry.get()
if task != "":
self.tasks.append(task)
self.task_images[task] = False # False به این معنی است که عکس ارسال نشده
self.show_tasks()
self.task_entry.delete(0, tk.END)
def show_tasks(self):
task_list = "\n".join(self.tasks)
self.task_list_display.config(text=task_list)
def capture_image(self):
# گرفتن تصویر از وبکم
cap = cv2.VideoCapture(0) # گرفتن تصویر از دوربین پیشفرض
if not cap.isOpened():
messagebox.showerror("خطا", "دوربین به درستی راهاندازی نشد.")
return
ret, frame = cap.read()
if ret:
filename = "captured_image.jpg"
cv2.imwrite(filename, frame) # ذخیره عکس
cap.release()
cv2.destroyAllWindows()
# چک کردن تصویر
self.check_image(filename)
else:
messagebox.showwarning("خطا", "مشکلی در دریافت تصویر از دوربین وجود دارد.")
cap.release()
def check_image(self, filename):
# بررسی اینکه آیا تصویر از مسواک زدن است
# این بخش باید با الگوریتمهای تشخیص تصویر تکمیل شود
image = cv2.imread(filename)
if image is None:
messagebox.showerror("خطا", "تصویر نادرست است.")
return
# اینجا میتوانید الگوریتمهای پردازش تصویر برای تشخیص مسواک زدن را اضافه کنید
self.process_image(image)
def process_image(self, image):
# پردازش تصویر و تعیین اینکه آیا مسواک زدن است
# در اینجا به طور ساده وضعیت انجام کار را تغییر میدهیم
self.task_images["مسواک زدن"] = True # فرض میکنیم تصویر صحیح است
self.show_tasks()
def check_for_photos(self):
# بررسی عکسها و ارسال آلارم در صورت لزوم
for task, completed in self.task_images.items():
if not completed:
messagebox.showwarning("یادآوری", f"لطفاً {task} خود را انجام دهید!")
break
self.root.after(self.image_wait_time * 1000, self.check_for_photos) # چک کردن هر 30 ثانیه
# ایجاد پنجره اصلی
root = tk.Tk()
app = ReminderApp(root)
app.check_for_photos() # شروع به بررسی عکسها
root.mainloop()