Python+opencv图像识别
图像识别
最近工作遇到了一个需要识别安全键盘并点击的需求,做自动化嘛,由于安全键盘的键位固定但是键值随机,所以常规的方法不能正确获取触发点击,so,上网查了一下基本思路都是用机器识别。
- 加载opencv-python
pip install opencv-python 会自动加载opencv-python,numpy和cv2 
- 当文件中导入cv2,直接上代码:
def get_keynumber_location(self): 
 '''
 获取字母对应位置
 :return:返回template在image中的的bound参数
 '''
 keynum = pic_path + "\keynum.png" #键盘图片
 image = cv2.imread(keynum)
 key = cur_path + "\keyboard\%s.png" % 1 #数字键图片
 template = cv2.imread(key)
 h,w = template.shape[:2] #字母图片尺寸
 result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED) #图片对比
 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) #对比结果最大值最小值以及位置
 br = (max_loc[0] + w,max_loc[1] + h)
 # cv2.rectangle(image,max_loc,br,[0,255,0],2)
 # cv2.imshow("pipei",image)
 # cv2.waitKey(0)
 # cv2.destroyAllWindows()
 return max_loc, br def click_position(self):
 '''
 确定点击位置
 :param password: 口令密码
 :return:返回点击位置position
 '''
 a,b = self.get_keynumber_location() #template在image中的的bound参数
 x = a[0] + b[0]
 y = a[1] + b[1]
 position = (x / 2,y / 2)
 self.driver.tap([position]) # 点击
 return position基本就是用cv2.imread(path)读取图片,用cv2.matchTemplate(大图,小图,策略)函数进行比较,返回的是一个结果集,用cv2.minMaxLoc(result)函数获得最小值、最大值和相应位置。注释部分是验证识别区域是否正确,click_position是用来确定点击位置和点击事件的。 
Python+opencv图像识别的更多相关文章
- python opencv图像识别(相同大小图片)
		简介 由于项目需要对比两张相同图片的相似度,因此采用opencv将图片转为灰阶数组,然后对比相应的数组来取相似度,此方法只适用于大小相同的图片,较为局限 # -*- coding: utf-8 -*- ... 
- python opencv识别蓝牌车牌号 之 取出车牌号 (1/3)
		概述 车牌识别是计算机视频图像识别技术在车辆牌照识别中的一种应用,通常来讲如果结合opencv进行车牌识别主要分为四个大步骤,分别为: 图像采集 车牌定位 分割车牌字符 字符识别 当然,如果结合了机器 ... 
- 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台
		搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ... 
- .NET + OpenCV & Python + OpenCV 配置
		最近需要做一个图像识别的GUI应用,权衡了Opencv+ 1)QT,2)Python GUI,3).NET后选择了.NET... 本文给出C#+Opencv和Python+Opencv的相应参考,节省 ... 
- RPi 2B python opencv camera demo example
		/************************************************************************************** * RPi 2B pyt ... 
- Python+OpenCV图像处理(一)
		Python+OpenCV图像处理(一): 读取,写入和展示图片 调用摄像头拍照 调用摄像头录制视频 1. 读取.写入和展示图片 图像读入:cv2.imread() 使用函数cv2.imread() ... 
- python  简单图像识别--验证码
		python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ... 
- python  opencv show图片,debug技巧
		debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ... 
- Python+OpenCV图像处理(一)——读取显示一张图片
		先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ... 
随机推荐
- 使用atom 将 markdown 转换成pdf
			atom 下载 atom 可以直接下载 : https://atom.io/ 打开下面链接 下载上面图中绿色版本的 atom 下载完成之后,解压,可以直接打开.这样可以避免 windows 下用安装包 ... 
- 第一节:Python+Selenium环境搭建
			一.selenium工作原理 二.安装python Window系统下,python的安装很简单.访问python.org/download,下载最新版本,安装过程与其他windows软件类似.记得下 ... 
- 使用evenlet包实现 concurrent.futures.executor包的鸭子类
			适配成同一个同样的公有方法. # -*- coding: utf-8 -*- # @Author : ydf # @Time : 2019/7/3 10:35 import time import w ... 
- [译]在Python中,如何拆分字符串并保留分隔符?
			原文来源:https://stackoverflow.com/questions/2136556/in-python-how-do-i-split-a-string-and-keep-the-sepa ... 
- Nexus上传npm包
			1.创建npm仓库 私服仓库npm-hosted 代理仓库npm-proxy npm-group 创建成功 在工程的根目录下创建文件 .npmrc registry=http://xxx:8081/n ... 
- bootstrap datetimepicker 添加清空按钮
			<div class="ys-datetimepicker"> <input class="form-control" size=" ... 
- 史上最全的中高级Java面试题汇总
			原文链接:https://blog.csdn.net/shengqianfeng/article/details/102572691 memcache的分布式原理 memcached 虽然称为 “ 分 ... 
- LINGO与EXCEL之间的数据传递
			前言 LINGO 作为非线性规划运算的专用软件,得出结果一般都是纯文本的一列数据,要想将数据呈现到论文当中,需要整理到 EXCEL 中,使用复制粘贴容易出错还费时,所以必须要动用函数来提高效率! 案例 ... 
- 【转帖】Linux命令行操作json神器jq
			Linux命令行操作json神器jq https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行 ... 
- Python多进程方式抓取基金网站内容的方法分析
			因为进程也不是越多越好,我们计划分3个进程执行.意思就是 :把总共要抓取的28页分成三部分. 怎么分呢? # 初始range r = range(1,29) # 步长 step = 10 myList ... 
