1. 程式人生 > >關於wxpy的小實驗(一):實現登入微信、訊息接收、處理、回覆和人臉檢測處理反饋

關於wxpy的小實驗(一):實現登入微信、訊息接收、處理、回覆和人臉檢測處理反饋

概述:

本文主要是博主想分享一下最近在學習python和opencv時做的一些小實驗和作為自己程式設計之路剛開始的一個小筆記。微笑在剛接觸python時發現了有一個叫wxpy的東西,他可以實現讓微信自動接收、處理訊息然後進行回覆的一系列功能,之前看到網上很多大神用它來做自己的尬聊機器人感覺很有意思,於是便自己研究了一下。

第一次寫部落格,寫的不好或者哪裡有錯誤的請大神指出謝謝!

第一次使用Wxpy看這裡

1、安裝wxpy

博主用的是Python2.7來進行開發的

pip install -U wxpy

2、wxpy登入、傳送訊息

這裡我們先做一個登入微信,然後讓他查詢到好友列表的人去,傳送登入後的第一條訊息
#coding=utf-8

from wxpy import *

bot = Bot() 
#掃二維碼登入微信

friend = bot.friends().search(u'嚴洪')[0]

friend.send(u"老子來啦!!")

#查到好好友列表的某個好友並向他傳送訊息

print end

這裡我們收到了來自小號的訊息,登入和傳送訊息的小實驗成功 !害羞

3、回覆好友訊息

這裡用到了@register()來註冊訊息
@bot.register()
def reply_msg(msg):
    msg.reply(u'噶蛤玩意?')
embed()


好的,簡單的自動回覆也成功了大笑

4、 wxpy的訊息處理

我們在平常出門時,可能想起突然想要自己電腦上的一些資料,或者想要跑一些程式碼來得到一些資料,這時沒電腦的你就可以用wxpy來遠端指揮機器人幫你幹一些事情奮鬥博主最近在學習OpenCV,所以我便想能不能在出門時,不在電腦面前,也能讓電腦幫我測試一些圖片樣本,然後得出資料反饋給我呢?當然實現這個目的方法網上非常的多,這裡我們利用wxpy,實現一個簡單的遠端傳送指令和反饋的功能吧博主這裡就用OpenCV提供的人臉檢測檔案來做一個人臉識別反饋結果的功能吧這裡會用到 haarcascade_frontalface_alt.xml 
這個檔案先寫好人臉檢測的函式
#coding=utf-8

import cv2

def face(name):
    print '正在處理'

    face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
    count = 0
    img = cv2.imread(name)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        count+=1
        cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),4)
        font = cv2.FONT_HERSHEY_SIMPLEX

        roi_gray = gray[y:y+h/2, x:x+w]
        roi_color = img[y:y+h/2, x:x+w]


    cv2.imwrite("face_detected_1.jpg", img)     #儲存已經生成好的圖片
    print count
    return count                                #返回人臉總數
然後寫一個接收圖片的功能、接收訊息後處理圖片
@bot.register(Friend,PICTURE)
def face_msg(msg):
    image_name = msg.file_name
    friend = msg.chat
    print msg.chat
    print '接收圖片'
    # face(image_name)
    msg.get_file('' + msg.file_name)
    count = face(image_name)
    if count==0:
        msg.reply(u'未檢測到人臉')
    else:
        msg.reply_image("face_detected_1.jpg")
        msg.reply(u"檢測到%d張人臉"%count)
    os.remove(image_name)
    os.remove("face_detected_1.jpg")

embed()


好的,實驗成功了!以後如果我自己了訓練的深度學習模型可以利用這個方法在外面進行隨意的除錯。大笑

5、其他

wxpy的功能還不止有這裡,還可以引入圖靈機器人的API實現尬聊、也可以用來做一些識別處理如車牌識別、OCR等功能。這裡就不一一舉例了~(圖靈機器人功能—詳情百度圖靈機器人)身份證識別功能—face++提供介面)車牌識別功能)

商業合作 智雲檢視

這個車牌專案很不錯,識別率非常高

6、總結

Wxpy還是挺好玩的,作為新手的我只用了幾行程式碼就能實現這些功能。如果想更加了解Wxpy 請前往開發文件地址 http://www.jianshu.com/p/577129b32756這裡還有一個很不錯的大神寫的教程 http://www.jianshu.com/p/577129b32756