版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
条形码检测课程引入代码分析代码演示一二三目录一课程引入
条形码技术(barcodetechnology,BCT)是在计算机的应用实践中产生和发展起来的一种自动识别技术。它是为实现对信息的自动扫描而设计的,它是实现快速、准确而可靠地采集数据的有效手段。条形码技术的应用解决了数据录入和数据采集的瓶颈问题,为物流管理提供了有利的技术支持。二代码分析
在Opencv内,使用函数cv2.Sobel()实现Sobel算子运算,其语法形式为:Dst=cv2.Sobel(src,ddepth,dx,dy[,ksize[,scale[,delta[,borderType]]]])式中:dst代表目标图像。src代表原始图像。ddepth代表输出图像的深度。其具体对应关系如表所示。sobel算子
二代码分析dx代表x方向上的求导阶数。dy代表y方向上的求导阶数。ksize代表Sobel核的大小。该值为-1时,则会使用Scharr算子进行运算。scale代表计算导数是所采用的缩放因子,默认情况下该值是1,是没有缩放的。data代表加在目标图像dst上的值,该值是可选的,默认为0.borderType代表边界样式。该参数的具体类型及值如表所示。sobel算子
二代码分析1.计算x方向边缘(梯度):dx=1,dy=0在Opencv中的语法格式为dst=cv2.Sobel(src,ddepth,1,0)2.计算y方向边缘(梯度):dx=0,dy=1在Opencv中的语法格式为dst=cv2.Sobel(src,ddepth,0,1)3.数取绝对值在Opencv中,使用函数cv2.converScaleAbs()对参数取绝对值,该函数的语法格式为:dst=cv2.convertScaleAbs(src[,alpha[,beta]])式中:dst代表处理结果。src代表原始图像。alpha代表调节系数,该值是可选值,默认为1。beta代表调节亮度值,该值是默认值,默认为0。sobel算子
二代码分析
在Opencv中,实现均值滤波的函数是错cv2.blur(),其语法格式为:dst=cv2.blur(src,ksize,anchor,borderType)式中:dst是返回值,表示进行均值滤波后得到的处理结果。src是需要处理的图像,即原始图像。ksize是滤波核的大小。滤波核的大小是指在均值处理过程中,其邻域图像的高度和宽度。anchor是锚点,其默认值是(-1,-1),表示当前计算均值的点位于核的中心点位置。该值使用默认值即可,在特殊情况下可以指定不同的点作为锚点。borderType是边界样式。通常情况下,使用均值滤波函数时,对于锚点anchor和边界样式borderType,直接采用其默认值即可。均值滤波
三代码演示流程图三代码演示X梯度得到轮廓Y梯度得到轮廓gradX=cv2.Sobel(gray,ddepth=cv2.CV_32F,dx=1,dy=0,ksize=-1)#对x方向求导
#cv2.imshow("gradX",gradX)
gradY=cv2.Sobel(gray,ddepth=cv2.CV_32F,dx=0,dy=1,ksize=-1)#对y方向求导
#cv2.imshow("gradY",gradY)三代码演示x梯度减去y梯度得到轮廓CV_32F转成CV_8U型的图像#Scharr操作后,从X梯度减去Y梯度得到轮廓图,此时噪点较多
gradient=cv2.subtract(gradX,gradY)
#cv2.imshow("gradient",gradient)
#经过处理后,用convertScaleAbs()函数将其转回原来的uint8形式。否则将无法显示图像,而只是一副灰色的窗口
gradient=cv2.convertScaleAbs(gradient)
#cv2.imshow('gradient1',gradient)三代码演示均值滤波平滑处理二值化#然后进行二值化处理,要么是255(白)要么是0(黑)
blurred=cv2.blur(gradient,(9,9))#通过低通滤波平滑图像
#cv2.imshow("blurred",blurred)
ret,thresh=cv2.threshold(blurred,225,255,cv2.THRESH_BINARY)#进行图像固定阈值二值化
#cv2.imshow("thresh",thresh)三代码演示形态学处理#通过形态学操作,建立一个7*21的长方形内核,内核宽度大于长度,因此可以消除条形码中垂直条之间的缝隙
#将建立的内核应用到二值图中,以此来消除竖杠间的缝隙
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(21,7))#条形码
#对图像进行闭运算
closed=cv2.morphologyEx(thresh,cv2.MORPH_CLOSE,kernel)
#cv2.imshow("closed",closed)
#所得图像仍有许多白点,通过腐蚀和膨胀去除白点,最后一个参数是腐蚀的次数
closed
=cv2.erode(closed,None,iterations=4)
#cv2.imshow("closed1",closed)
closed=cv2.dilate(closed,None,iterations=6)
#cv2.imshow("closed2",closed)三代码演示#寻找轮廓contours,hierarchy=cv2.findContours(closed.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
#如果没有找到,返回0,并向主函数输出Falseiflen(contours)==0:check=Falsereturncheck
#如果有,继续下列操作c=sorted(contours,key=cv2.contourArea,reverse=True)[0]#对contourArea进行降序排序,并取最大值rect=cv2.minAreaRect(c)#生成最小外接矩形
#box为一个ndarry数组,返回4个顶点位置box=0(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中化石油广东有限公司招聘备考题库及一套完整答案详解
- 2026年常州市教育系统“优才计划”公开招聘教师备考题库及答案详解参考
- 2025年南海经济开发区人民医院招聘事业单位聘用制(编制)工作人员备考题库(第二批)参考答案详解
- 2026年广安市武胜县公证处招聘非在编公证员助理的备考题库附答案详解
- 2026年广东省广业检验检测集团有限公司面向社会招聘党群人力部(董事会办公室)董办经理备考题库及1套参考答案详解
- 2026年卢阿拉巴铜冶炼股份有限公司招聘备考题库附答案详解
- 2026年中国中医科学院望京医院公开招聘国内应届高校毕业生(提前批)备考题库及一套参考答案详解
- 2026年台州市椒江区进出口企业协会公开招聘编外工作人员备考题库及完整答案详解1套
- 2026年古田县人力资源和社会保障局关于公布古田县事业单位公开招聘紧缺急需人才26人计划的备考题库及参考答案详解
- 2026年北矿新材科技有限公司招聘备考题库及一套答案详解
- 2025马年元旦新春晚会活动策划
- 交警新警执法培训
- 骨科护理标准操作流程手册
- 产品推广专员培训
- DB65T 3119-2022 建筑消防设施管理规范
- 书黄筌画雀文言文课件
- 文体局非遗传承人评选方案
- 陪诊师医学知识培训总结课件
- 2024-2025学年江苏省苏州市高二上学期学业质量阳光指标调研数学试卷(解析版)
- 项目验收过程标准化手册
- 土地复垦项目施工组织设计方案书
评论
0/150
提交评论