Opencv+Python识别PCB板图片的步骤


Posted in Python onJanuary 07, 2021

任务要求:

基于模板匹配算法识别PCB板型号

使用工具:

Python3、OpenCV

使用模板匹配算法,模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,模板匹配具有自身的局限性,主要表现在它只能进行平行移动,即原图像中的匹配目标不能发生旋转或大小变化。

事先准备好待检测PCB与其对应的模板:

Opencv+Python识别PCB板图片的步骤

子模版:

Opencv+Python识别PCB板图片的步骤

基本流程如下:

1、在整个图像区域发现与给定子图像匹配的小块区域

2、选取模板图像T(给定的子图像)

3、另外需要一个待检测的图像——源图像S

4、工作方法:在检测图像上,从左到右,从上到下计算模板图像与重叠, 子图像的匹配度,匹配程度越大,两者相同的可能性就越大。

OpenCV提供了6种模板匹配算法:

平方差匹配法CV_TM_SQDIFF;

归一化平方差匹配法CV_TM_SQDIFF_NORMED;

相关匹配法CV_TM_CCORR;

归一化相关匹配法CV_TM_CCORR_NORMED;

相关系数匹配法CV_TM_CCOEFF;

归一化相关系数匹配法CV_TM_CCOEFF_NORMED;

后面经过实验,我们主要是从以上的六种中选择了归一化相关系数匹配法CV_TM_CCOEFF_NORMED,基本原理公式为:

 代码部分展示:

import cv2
import numpy as np
from matplotlib import pyplot as plt

#读取检测图像
img = cv2.imread('img8.bmp', 0)
#读取模板图像
template1=cv2.imread('moban1.bmp', 0)
template2=......
#建立模板列表
template=[template1,template2,template3,template4]
# 模板匹配:归一化相关系数匹配方法
res1=cv2.matchTemplate(img, template1, cv2.TM_CCOEFF_NORMED)
res2=cv2.matchTemplate(......)
#提取相关系数
min_val1, max_val1, min_loc1, max_loc1 =cv2.minMaxLoc(res1)
min_val2, ......

#相关系数对比(max_val),越接近1,匹配程度越高
max_val=[1-max_val1,1-max_val2,1-max_val3,1-max_val4]
j=max_val.index(min(max_val))

#根据提取的相关系数得出对应匹配程度最高的模板
h, w = template[j].shape[:2]  # 计算模板图像的高和宽 rows->h, cols->w
pes=cv2.matchTemplate(img, template[j], cv2.TM_CCOEFF_NORMED) #模板匹配
in_val, ax_val, in_loc, ax_loc =cv2.minMaxLoc(pes)

#在原图中框出模板匹配的位置
left_top = ax_loc  # 左上角
right_bottom = (left_top[0] + w, left_top[1] + h)  # 右下角
cv2.rectangle(img, left_top, right_bottom, 255, 2) # 画出矩形位置
#绘制模板图像
plt.subplot(121), plt.imshow(template[j], cmap='gray')
plt.title('pcb type'),plt.xticks([]), plt.yticks([])
#绘制检测图像
plt.subplot(122), plt.imshow(img, cmap='gray')
plt.title('img'), plt.xticks([]), plt.yticks([])
plt.show()

实验结果:

Opencv+Python识别PCB板图片的步骤

需要完整代码以及图片素材的,请留下评论可与博主进行联系。

以上就是Opencv+Python识别PCB板图片的步骤的详细内容,更多关于Opencv+Python识别PCB板的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python获取当前时间对应unix时间戳的方法
May 15 Python
Python单链表简单实现代码
Apr 27 Python
python实现读取并显示图片的两种方法
Jan 13 Python
python随机取list中的元素方法
Apr 08 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
python设置环境变量的原因和方法
Jun 24 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
Python处理PDF与CDF实例
Feb 26 Python
Python打包exe时各种异常处理方案总结
May 18 Python
Python OpenCV 彩色与灰度图像的转换实现
Jun 05 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 #Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 #Python
Django权限控制的使用
Jan 07 #Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 #Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 #Python
jupyter notebook更换皮肤主题的实现
Jan 07 #Python
基于 Python 实践感知器分类算法
Jan 07 #Python
You might like
phpMyadmin 用户权限中英对照
2010/04/02 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
什么是View State?
2013/01/27 面试题
宿舍保安职务说明书
2014/02/25 职场文书
人力资源求职信
2014/05/25 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
运动会入场词
2015/07/18 职场文书
教师节简报
2015/07/20 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
创业计划书之美甲店
2019/09/20 职场文书