python 屏幕找图 点击_捕获屏幕并查找参考图像

我尝试在python中执行以下操作:捕捉屏幕

如果屏幕截图包含给定的参考图像(可以是jpg或pgn),则获取该图像在屏幕上的坐标

更多信息:参考图像不会太大(5x5像素就足够了)

它应该尽可能快,因为它应该不断地扫描屏幕

如果可能:在Windows和Linux上工作

在python中实现这一点的最佳方法是什么?在

编辑:

感谢利奥·安图内斯,我使以下解决方案发挥了作用:def bitmap2brg(bmp):

w = bmp.width;

h = bmp.height;

a = np.empty((h, w, 3), dtype=np.uint8);

for r in xrange(h):

for c in xrange(w):

v = bmp.get_color(c, r);

a[r, c, 2] = (v >> 16) & 0xFF;

a[r, c, 1] = (v >> 8) & 0xFF;

a[r, c, 0] = v & 0xFF;

return a;

def grabScreen():

THRESHOLD = 1

# reference image

needle = cv2.imread('img_top_left.png')

needle_height, needle_width, needle_channels = needle.shape

# Grabbing with autopy

screen =

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修记录类(RepairRecord)和报修处理类(RepairHandler),并实现CRUD接口和RepairHandler接口。 实现过程 1. 环境搭建 为了实现Java宿舍管理系统,我们需要安装JDK、要提取视频中的图像轮廓坐标,可以使用Python中的OpenCV库。 首先,需要加载视频文件并捕获它的第一帧。可以使用以下代码: ``` import cv2 cap = cv2.VideoCapture('video.mp4Eclipse、MySQL等工具和软件。具体安装步骤如下: 1.1 安装JDK J') ret, frame = cap.read() ``` 接下来,可以对第一帧进行预处理,例如转换为灰度DK是Java开发环境的基础,需要先安装JDK。下载JDK安装包,按照提示进行图像,进行高斯模糊等等。这取决于具体的图像处理需求。这里以将第安装。 1.2 安装Eclipse Eclipse是Java开发的集成开发环境,下载Eclipse安一帧转换为灰度图像为例: ``` gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) ``装包,按照提示进行安装。 1.3 安装MySQL MySQL是一款常用的关系型数据库管理` 然后,可以使用Canny边缘检测算法来检测图像中的边缘: ``` edges = cv系统,下载MySQL安装包,按照提示进行安装。 2. 代码实现 2.1 学生信息管理2.Canny(gray, 50, 150) ``` 最后,可以使用findContours函数来查找图像中的轮模块实现 定义学生类(Student): ```java public class Student { private int id; private String廓,并绘制出来: ``` contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(frame, contours, -1, (0, 255, 0), 2) `` name; private String sex; private int age; private String major; private int dorm_id; // 省略getter` 完整的代码如下所示: ``` import cv2 cap = cv2.VideoCapture('video.mp4') ret, frame和setter方法 } ``` 定义学生信息管理类(StudentManager): ```java public class StudentManager implements CRUD { = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, // 连接数据库 DBConnection db = DBConnection.getInstance(); @Override public void create(Object obj) { 150) contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cv // 插入学生信息到数据库 Student student = (Student) obj; String sql = "INSERT INTO student VALUES (?,2.drawContours(frame, contours, -1, (0, 255, 0), 2) cv2.imshow('frame', frame) cv2.waitKey(0) cap.release() cv2.destroyAllWindows() ``` 运行后,可以得到视频中第一帧图 ?, ?, ?, ?, ?)"; try { PreparedStatement stmt = db.getConnection().prepareStatement(sql); stmt.setInt(1, student.getId()); stmt.setString(2, student.getName()); stmt.setString(3, student.getSex()); stmt.setInt(4, student.get像的轮廓坐标,并显示出来。可以使用相似的方法来提取视频中其他帧的轮廓坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值