计算机视觉 【第三篇】微信公众平台开发运动传感器
计算机视觉 【第三篇】微信公众平台开发运动传感器
1 微信公众后-发送客服消息
import json import requests # 我们可以接受定义的复杂,但是不能接受调用的复杂 # 把代码从面向函数改成面向对象 class WxTools(): def __init__(self, app_id, app_secret): self.app_id = app_id self.app_secret = app_secret def get_access_token(self): # 获取access_token url = f'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={self.app_id}&secret={self.app_secret}' resp = requests.get(url).json() access_token = resp.get('access_token') return access_token def send_wx_customer_msg(self, opend_id, msg="有人闯入了你的家"): # 发送文本消息 url = f'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={self.get_access_token()}' req_data = { "touser": opend_id, "msgtype":"text", "text": { "content": msg } } requests.post(url, data=json.dumps(req_data, ensure_ascii=False).encode('utf-8')) if __name__ == "__main__": app_id = 'wx7f23641379450a' app_secret = '2bfecd48e13964d00b4a1b0bf26b0a' wx_tools = WxTools('wx7f23641379450a28', '2bfecd48e13964d00b4a1b0bf26b0acb') wx_tools.send_wx_customer_msg("oqtB6wXelAcohf9rasCA7VLHNk9c")
2 运用差分法 -- 开发运动传感器
import cv2 import datetime from demo05_wx_notice_03 import WxTools from demo06_settings import app_id, app_secret camera = cv2.VideoCapture(0) background = None es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 4)) is_send_msg = False while True: grabbed, frame = camera.read() gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) gray_frame = cv2.GaussianBlur(gray_frame, (25, 25), 3) # 消除噪点 if background is None: background = gray_frame continue diff = cv2.absdiff(background, gray_frame) diff = cv2.threshold(diff, 50, 255, cv2.THRESH_BINARY)[1] diff = cv2.dilate(diff, es, iterations=3) contours, hierarchy = cv2.findContours(diff.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) is_detected = False for c in contours: if cv2.contourArea(c) < 2000: continue (x, y, w, h) = cv2.boundingRect(c) cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) is_detected = True if not is_send_msg: is_send_msg = True wx_tools = WxTools(app_id, app_secret) wx_tools.send_wx_customer_msg('oJ3nX591TD5ri1IJPhsDCSv6-3Gc', '王华,有人闯入了你的家,请留意') if is_detected: show_text = "Motion: Detected" show_color = (0, 0, 255) else: show_text = "Motion: Undetected" show_color = (0, 255, 0) cv2.putText(frame, show_text, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, show_color, 2) cv2.putText(frame, datetime.datetime.now().strftime("%A %d %B %Y %I:%M:%S%p"), (10, frame.shape[0] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.35, show_color, 1) cv2.imshow('video', frame) cv2.imshow('diff', diff) key = cv2.waitKey(1) & 0xFFf if key == ord('q'): break camera.release() cv2.destroyAllWindows()
    作者:华王
博客:https://www.cnblogs.com/huahuawang/
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号