From 54a0afa4f44cb70adf51ba2ae7f662cb7cd5b3d9 Mon Sep 17 00:00:00 2001 From: zhoutao <358387607@qq.com> Date: Mon, 3 Jun 2024 22:13:43 +0800 Subject: [PATCH] 0603 --- ...设计课程设计报告模板 2024年.doc | Bin 747578 -> 404957 bytes 图片/功能模块.jpg | Bin 0 -> 12130 bytes 图片/功能模块.png | Bin 19279 -> 0 bytes 工程/Area_tracking.py | 35 +++++++++-- 工程/Color_tracking.py | 57 ++++++++++++------ 工程/invoke.py | 4 +- 6 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 图片/功能模块.jpg delete mode 100644 图片/功能模块.png diff --git a/Python程序设计课程设计报告模板 2024年.doc b/Python程序设计课程设计报告模板 2024年.doc index 743f27e760be73b3ad92faf11074b49bc366dda7..7565f1ee364df0123d2e14073698d303778b3f2b 100644 GIT binary patch delta 32249 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 OT1R|kE9(pOr~V%&-GNI0 delta 95047 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 Dt%PjL diff --git a/图片/功能模块.jpg b/图片/功能模块.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c274334c0c4be9f2186cc20a0c4f3d776c876cf GIT binary patch literal 12130 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 diff --git a/工程/Area_tracking.py b/工程/Area_tracking.py index af9d5fb..9ced093 100644 --- a/工程/Area_tracking.py +++ b/工程/Area_tracking.py @@ -1,7 +1,23 @@ import cv2 import numpy as np +kf = cv2.KalmanFilter(4, 2) +kf.measurementMatrix = np.array([[1, 0, 0, 0], + [0, 1, 0, 0]], np.float32) +kf.transitionMatrix = np.array([[1, 0, 1, 0], + [0, 1, 0, 1], + [0, 0, 1, 0], + [0, 0, 0, 1]], np.float32) +kf.processNoiseCov = np.array([[1, 0, 0, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [0, 0, 0, 1]], np.float32) * 0.03 + +# 用于初始化卡尔曼滤波器的变量 +initial_measurement = None + def main(): + global initial_measurement, kf # 初始化摄像头 cap = cv2.VideoCapture(0) @@ -31,8 +47,6 @@ def main(): color_mean = np.mean(roi_hsv, axis=(0, 1)) color_mean = np.uint8(color_mean) - # 创建颜色范围 - # color_range = 10 color_lower = np.array( [max(color_mean[0] - 30, 0), max(color_mean[1] - 60, 0), max(color_mean[2] - 55, 0)]) color_upper = np.array( @@ -65,7 +79,19 @@ def main(): if cv2.contourArea(contour) > 300: x, y, w, h = cv2.boundingRect(contour) cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) - print(color_lower, color_upper) + + # 初始化卡尔曼滤波器的测量值 + if initial_measurement is None: + initial_measurement = np.array([[x], [y]], np.float32) + kf.statePost = initial_measurement + else: + # 更新卡尔曼滤波器 + measurement = np.array([[x], [y]], np.float32) + kf.correct(measurement) + prediction = kf.predict() + cv2.rectangle(frame, (int(prediction[0]), int(prediction[1])), + (int(prediction[0] + w), int(prediction[1] + h)), + (255, 0, 0), 2) # 显示原图和结果图像 cv2.imshow('Original', frame) @@ -80,5 +106,4 @@ def main(): cv2.destroyAllWindows() if __name__ == '__main__': - main() - + main() \ No newline at end of file diff --git a/工程/Color_tracking.py b/工程/Color_tracking.py index 88b4b36..20c10f0 100644 --- a/工程/Color_tracking.py +++ b/工程/Color_tracking.py @@ -27,6 +27,7 @@ running = False kf = None cap = None root = None +stop_thread = False def initialize_kalman_filter(): """初始化卡尔曼滤波器""" global kf @@ -45,8 +46,8 @@ def initialize_kalman_filter(): # 用于初始化卡尔曼滤波器的变量 initial_measurement = None +#初始化摄像头 def initialize_camera(): - """初始化摄像头""" global cap cap = cv2.VideoCapture(0) @@ -54,19 +55,34 @@ def choose_color(): global selected_color # 显示颜色选择对话框 color_options = list(color_hsv_ranges.keys()) - selected_color = simpledialog.askstring("Choose Color", "Enter the color (blue, green, red, custom):", + selected_color = simpledialog.askstring("选择颜色", "输入颜色 (blue, green, red, custom):", initialvalue=selected_color, parent=root) # 检查颜色选择是否有效,更新阈值 if selected_color in color_options: update_color_threshold(selected_color) else: - messagebox.showerror("Error", "Invalid color selection.") + messagebox.showerror("错误", "颜色选择无效") + +def rgb_to_hsv(rgba): + """将RGB颜色转换为HSV颜色""" + rgb = rgba[:3] # 忽略alpha通道 + hsv = cv2.cvtColor(np.uint8([[rgb]]), cv2.COLOR_RGB2HSV)[0][0] + return hsv def choose_custom_color(): - color_code = colorchooser.askcolor(title="Choose Custom Color") + color_code = colorchooser.askcolor(title="选择自定义颜色") if color_code[0] is not None: - lower = np.array([color_code[0][0] / 2, color_code[0][1] / 2, color_code[0][2] / 2]) - upper = np.array([color_code[0][0], color_code[0][1], color_code[0][2]]) + hsv_color = rgb_to_hsv(color_code[0]) + + # 计算HSV的下限和上限 + lower = np.array([hsv_color[0] - 35, hsv_color[1] * 0.5, hsv_color[2] * 0.65]) + upper = np.array([hsv_color[0] + 10, hsv_color[1] * 1.2, hsv_color[2] * 1.2]) + + # 确保HSV值在有效范围内 + lower = np.clip(lower, 0, 180) + upper = np.clip(upper, 0, 255) + + # 更新自定义颜色的HSV阈值 update_custom_hsv(lower, upper) def update_custom_hsv(lower, upper): @@ -76,17 +92,19 @@ def update_custom_hsv(lower, upper): update_color_threshold('custom') def exit_app(): - global running, cap + global running, cap, stop_thread running = False + stop_thread = True + root.quit() cap.release() cv2.destroyAllWindows() - root.quit() + def initialize_gui(): """初始化GUI界面""" global root root = tk.Tk() - root.title("Color Tracker") + root.title("颜色追踪") # 开始/停止摄像头按钮 start_button = tk.Button(root, text="开始/停止", command=start_camera) start_button.pack() @@ -111,37 +129,37 @@ def initialize_gui(): ) # 自定义颜色HSV滑块 - lower_h_scale = Scale(root, from_=0, to=180, orient=HORIZONTAL, label="Hue Min", + lower_h_scale = Scale(root, from_=0, to=180, orient=HORIZONTAL, label="色调 Min", command=lambda v: set_custom_hsv(v, lower_s_scale.get(), lower_v_scale.get(), upper_h_scale.get(), upper_s_scale.get(), upper_v_scale.get())) lower_h_scale.pack() - lower_s_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="Saturation Min", + lower_s_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="饱和度 Min", command=lambda v: set_custom_hsv(lower_h_scale.get(), v, lower_v_scale.get(), upper_h_scale.get(), upper_s_scale.get(), upper_v_scale.get())) lower_s_scale.pack() - lower_v_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="Value Min", + lower_v_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="亮度 Min", command=lambda v: set_custom_hsv(lower_h_scale.get(), lower_s_scale.get(), v, upper_h_scale.get(), upper_s_scale.get(), upper_v_scale.get())) lower_v_scale.pack() - upper_h_scale = Scale(root, from_=0, to=180, orient=HORIZONTAL, label="Hue Max", + upper_h_scale = Scale(root, from_=0, to=180, orient=HORIZONTAL, label="色调 Max", command=lambda v: set_custom_hsv(lower_h_scale.get(), lower_s_scale.get(), lower_v_scale.get(), v, upper_s_scale.get(), upper_v_scale.get())) upper_h_scale.pack() - upper_s_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="Saturation Max", + upper_s_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="饱和度 Max", command=lambda v: set_custom_hsv(lower_h_scale.get(), lower_s_scale.get(), lower_v_scale.get(), upper_h_scale.get(), v, upper_v_scale.get())) upper_s_scale.pack() - upper_v_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="Value Max", + upper_v_scale = Scale(root, from_=0, to=255, orient=HORIZONTAL, label="亮度 Max", command=lambda v: set_custom_hsv(lower_h_scale.get(), lower_s_scale.get(), lower_v_scale.get(), upper_h_scale.get(), upper_s_scale.get(), v)) @@ -167,8 +185,8 @@ def start_camera(): def camera_thread(): """摄像头处理线程函数""" - global running, initial_measurement, lower_hsv, upper_hsv - while running: + global running, initial_measurement, lower_hsv, upper_hsv, stop_thread + while running and not stop_thread: ret, frame = cap.read() if not ret: messagebox.showerror("Error", "Failed to read frame from camera.") @@ -192,7 +210,7 @@ def camera_thread(): # 遍历轮廓,画出边界框 for contour in contours: - if cv2.contourArea(contour) > 100: + if cv2.contourArea(contour) > 300: x, y, w, h = cv2.boundingRect(contour) cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) @@ -209,6 +227,9 @@ def camera_thread(): (int(prediction[0] + w), int(prediction[1] + h)), (255, 0, 0), 2) + + print(lower_hsv, upper_hsv) + cv2.imshow('Frame', frame) cv2.imshow('Mask', mask) diff --git a/工程/invoke.py b/工程/invoke.py index 59f6606..ddd0c8a 100644 --- a/工程/invoke.py +++ b/工程/invoke.py @@ -26,9 +26,11 @@ button2.move(50, 100) button2.clicked.connect(Area_tracking.main) quit_button = QPushButton('退出', widget) -quit_button.move(150, 50) +quit_button.move(200, 50) quit_button.clicked.connect(quit_app) + + widget.show() sys.exit(app.exec())