《机器视觉系统应用》课件——条形码检测代码演示.pptxVIP

《机器视觉系统应用》课件——条形码检测代码演示.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

条形码检测

课程引入代码分析代码演示一二三目录

一课程引入条形码技术(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的长方形内核,内核宽度大于长度,因

您可能关注的文档

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档