opencv项目7---智能识别二维码和条形码

利用opencv和一个摄像头设备即可实现智能识别二维码和条形码,用到的都是基础的opencv知识。

二维码和条形码的照片可以去网上自行搜索。

这个项目可以有很多扩展:

1:比如做成一个公司的二维码证件识别系统,如果符合员工条件,就授予权限打开门禁

2:比如做成一个流氓网站自动识别系统,对一些非法的二维码和条形码进行示警提示。

3:大家可以联系实际情况,进行场景扩展

源码如下:

import cv2
import numpy as np
from pyzbar.pyzbar import  decode
cap=cv2.VideoCapture(0)
#非法网站数据(自己可以随便定义)
mydata=["QR码数据2","QR码数据1"]
print(mydata)
while True:
    success,img=cap.read()
    #镜像
    image = cv2.flip(img, 1)
    #解码数据
    code=decode(image)
    #输出解码的内容
    print(code)
    #由于解码的数据是列表形式,就可以使用遍历和索引获得对应的值
    for barcode in code:
        print(barcode.data.decode('utf-8'))
        print(barcode.type)
        print(barcode.data)
        #将二维码的四个点转换成int32类型
        point=np.array([barcode.polygon],np.int32)
        print(point)
        point=point.reshape((-1,1,2))
        print(point)
        #将四个点进行连线
        cv2.polylines(image,[point],True,(0,0,255),3)
        #判断这些数据是否在自己的本地库里面
        if barcode.data.decode('utf-8') in mydata:
            text='Dangerous information'
            color=(0,0,255)#红色
        else:
            text='safe  information'
            color=(0,255,0)#绿色
        #将符合条件的内容填入进这个图像中
        cv2.putText(image,text,(barcode.rect[0],barcode.rect[1]),cv2.FONT_HERSHEY_COMPLEX,0.9,color,3)
    cv2.imshow('III',image)
    cv2.waitKey(1)

这是我自己实现的结果图片:(由于直接上传二维码会被当作不良图片屏蔽,所以我加了马赛克处理)

 

由于找到的条形码不够清晰,索性用自己饮料外包装的条形码了:

总的来说,实现了自己预想的效果。

                                仅供学习参考,如有不足,敬请指正!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值