python基于图片内容识别的微信自动发送信息(对其中逻辑修改一些可以改为自动化回复)

1.内容基于python日常生活问题帮助

2.主要框架

import time
from datetime import datetime

import pyperclip
import win32api
import win32con
import os
import re

from Image_Content_Text_Recognition import ICTR
from screenshot import img

上面是逻辑部分主要框架

import time

import numpy as np
from PIL import ImageGrab, Image
import cv2

上面部分是截图部分的框架比较简单

截图使用的是这位开发者的链接内容

微信信息发送时借鉴的这位开发者的方法

3.开始内容

整个代码的发送逻辑都是用的微信自带的快捷键,使用快捷键配合

win32api进行模拟人为按键来完成查找和发送,整体逻辑较为简单

    win32api.keybd_event(17, 0, 0, 0)  # Ctrl
    win32api.keybd_event(70, 0, 0, 0)  # F
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
    win32api.keybd_event(70, 0, win32con.KEYEVENTF_KEYUP, 0)

    # 复制需要查找的人,按回车,进入聊天输入框
    pyperclip.copy('嗨嗨嗨')  # 联系人昵称
    spam = pyperclip.paste()
    win32api.keybd_event(17, 0, 0, 0)  # Ctrl
    win32api.keybd_event(86, 0, 0, 0)  # 86→V;
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
    win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(1)
    win32api.keybd_event(13, 0, 0, 0)  # 13→Enter
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)

这一部分就是模拟按键内容

可以看到全都是利用的快捷键

接下来就是最麻烦的部分截图内容了,这一部分没有涉及到逻辑但是要调试画面截图的像素格

import os
import time

import numpy as np
from PIL import ImageGrab, Image
import cv2

if __name__ == '__main__':
    img = ImageGrab.grab(bbox=(930, 240, 2000, 1000))  # bbox 定义左、上、右和下像素的4元组 px
    print(img.size[1], img.size[0])
    img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)
    print(img)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)  # 看评论区有C友说颜色相反,于是加了这一条
    name = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime(time.time()))+'.jpg'
    cv2.imwrite(name, img)
    # cv2.imwrite(name, img)
# img = Image.fromarray(img)
# img.save('screenshot1.jpg')
def img():
    img = ImageGrab.grab(bbox=(930, 240, 2000, 1000))  # 小屏状态比例 bbox 定义左、上、右和下像素的4元组 px
    # img = ImageGrab.grab(bbox=(420, 80, 2600, 1150))  全屏状态比例 # bbox 定义左、上、右和下像素的4元组 px
    print(img.size[1], img.size[0])
    img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)
    print(img)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)  # 看评论区有C友说颜色相反,于是加了这一条
    name = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime(time.time())) + '.jpg'
    cv2.imwrite(name, img)
    return name

上面就是截图部分整一块的代码这一块除了调试像素格方位以外没有其他操作

完成截图后我改写的方法会返回截图方法内部识别的数据内容

    strings = img()

    ictr = ICTR(strings)  # 获取生成图片的名称通过名称找到图片进行处理
    # ictr = ICTR("2024_10_12_22_02_18.jpg")  # 获取生成图片的名称通过名称找到图片进行处理
    print(ictr)
    list1 = []
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃亏了的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值