三川OpenCV100例 之 识别定位二维码

文章目录

  • 三川OpenCV100例 之 识别定位二维码
    • 使用zbar 识别
    • 使用OpenCV自带的

使用zbar 识别

流程简单,明了

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Apr  2 21:22:24 2019@author: sc
"""
from imutils.video import VideoStream
import imutils
import pyzbar.pyzbar as pyzbar
import numpy as np
import cv2def decode(im):decodedObjects=pyzbar.decode(im)for obj in decodedObjects:print('Type:',obj.type)print('Data:',obj.data,'\n')return decodedObjects
def display(im,decodeObjs):for obj in decodeObjs:pts=obj.polygonif len(pts)>4:hull=cv2.convecHull(np.array([pt for pt in pts],dtype=np.float32))else:hull=ptsn=len(hull)print(hull)for j in range(0,n):cv2.line(im,hull[j],hull[(j+1)%n],(255,0,0),3)cv2.imshow('result',im)cv2.waitKey(1)
if __name__ =='__main__':vs = VideoStream(src=0).start()while True:im=vs.read()#im=cv2.imread('zbar-test.jpg')decodeObjs=decode(im)print(decodeObjs)display(im,decodeObjs)

使用OpenCV自带的

如果有openCV 4.0以上版本,内置了二维码识别程序

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import cv2
import numpy as npfrom imutils.video import VideoStreamdef display(im,decodeObjs):for obj in decodeObjs:pts=obj.polygonif len(pts)>4:hull=cv2.convecHull(np.array([pt for pt in pts],dtype=np.float32))else:hull=ptsn=len(hull)print(hull)for j in range(0,n):cv2.line(im,hull[j],hull[(j+1)%n],(255,0,0),3)cv2.imshow('result',im)cv2.waitKey(1)
if __name__=='__main__':print(cv2.__version__)#如果想通过USB相机读取,src是camera的编号,0是笔记本自带的相机vs = VideoStream(src=0).start()while True:frame=vs.read()if frame is None:continueqrDecoder =cv2.QRCodeDetector()data,bbox,rectifiedImage =qrDecoder.detectAndDecode(frame)if len(data)>0:print("decode data :{}".format(data))display(frame,bbox)rectifiedImage=np.uint8(rectifiedImage)cv2.imshow(' ',rectifiedImage)else:print('not')cv2.imshow(' ',frame)key =cv2.waitKey(0)if key==ord('q'):breakcv2.destroyAllWindows()

小川OpenCV100例 之 识别定位二维码相关推荐

  1. Opencv的使用小教程3——利用轮廓检测实现二维码定位

    Opencv的使用小教程3--利用轮廓检测实现二维码定位 二维码具有什么特征 实现效果 识别二维码的流程 1.预处理图像 2.寻找轮廓 3.通过寻找到的轮廓确定"回"的位置 4.创 ...

  2. OPT小讲堂 ∣ SciSmart图像识别之条形码识别、二维码识别

    在第十三课中,我们讲了图像识别中的OCR:字符识别. 本课将继续介绍图像识别中的条形码识别.二维码识别.我们将分别介绍二者的基本概念.操作流程.参数解析及应用案例. 条形码识别 条形码识别的概念 条形 ...

  3. 小程序长按识别图片二维码、小程序码

    三种在小程序中识别图片二维码的方式的对比 image标签 + show long press menu <image src="https://img.qr.com/qr.jpg&qu ...

  4. zxing 如何识别反转二维码

    说起二维码扫描,估计很多人用的是 zxing 吧. 然而 zxing 虽然好用,但是却有一些坑. 这边分析一下自己实际项目遇到的一个坑. 什么坑呢? 下面举个栗子你就懂了. 这边生成二维码使用的是网络 ...

  5. python定位二维码_图像中二维码的检测和定位

    二维码 二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的:在代码编制上巧妙地利用构成计算机内部 ...

  6. python 检查图品二维码,识别图片二维码

    代码识别图片二维码方法 大体分两种 1.查资料 理解二维码生成原理,自己搬砖解码 2.是有类库(第三方包) 二维码中包含的信息: 空白区(边界) 位置探测区 分隔符 定位图形 矫正图形 格式信息 版本 ...

  7. 【长按图片识别】uniapp vue开发时,点击图片识别—实现转发、收藏、识别图片二维码

    1.html代码: <image show-menu-by-longpress="true" @click="previewImage" src=&quo ...

  8. 深色背景二维码无法识别,二维码无法识别的5大因素

    做串口屏幕开的过程中使用的二维码为深色背景,突然发现APP的二维码识别模块无法识别.原来真的不是二维码想多大就多大,想什么颜色就什么颜色! 深色背景二维码(除了微信外其他扫码设备无法识别) 浅色背景二 ...

  9. Android实现识别相册二维码

    总所周知,二维码非常普及,android当中我们一般做二维码扫一扫功能大部分用的是zxing库,但是zxing的库demo中没有实现本地相册二维码功能,小编今天拿出来说一下哈哈. 首先我们先导入zxi ...

  10. opencv识别彩色二维码

    记录一下识别彩色二维码过程,以及当中遇到的问题和解决办法 1. 由于过程中图片处理需要用到灰度图像,所以读取原图之后,需要转换一个grayImage (CV_BGR2GRAY) 2. Gaussian ...

最新文章

  1. 【Android 逆向】Android 进程简介 ( Android 应用启动流程 )
  2. maven的常见问题_Maven常见问题和陷阱
  3. C++算法一:交换算法
  4. [置顶]千年潜规则一语道破
  5. Google 要在游戏世界里训练 AI 了!
  6. shell脚本zookeeper日志定时清理
  7. minecraft服务器搭建教程_[学生福利]使用WINDOWS SERVER2012R2服务器搭建网站教程
  8. 公钥加密_河海大学陆阳、李继国:不依赖双线性对的带关键字搜索的无证书公钥加密方案构造...
  9. Java小项目 屏幕自定义尺寸GIF生成器V1.0
  10. SpringBoot+Vue项目的PDF导出及给PDF文件盖章的功能示例
  11. DE2-115 SDRAM地址问题
  12. 被雷总“随手拍”的超级月亮惊呆了...
  13. win7 关机速度比较快
  14. 第九届蓝桥杯单片机完整程序
  15. exfat fat_正确的名称是exFAT还是FAT64?
  16. 【图像检测】基于 AlexNet 和 SVM 实现异常螺母检测附matlab代码
  17. Android 学习之《第一行代码》第6章:adb调试:pemission denied以及模拟器不能获取root权限问题的解决
  18. 非班课Python习题
  19. 日本高铁想到的网络安全
  20. 不仅仅是一把瑞士军刀 —— Apifox的野望和不足

热门文章

  1. c语言图片百叶窗特效,Flash遮罩特效实例--百叶窗效果
  2. 学习强国---Android逆向及JS逆向
  3. ILdasm 的使用方法
  4. 2018年泰迪杯心得总结--最全的数学建模、数据挖掘的比赛入门
  5. ShineDisk M667固态修复记录 慧荣SM2258XT开卡量产工具
  6. H3C交换机堆叠配置
  7. 升级到IE11,IE11调试F12 空白没法调试
  8. 《工业设计史》第六章:工业、技术与设计
  9. 免费下载百度 豆丁 丁香 等平台文档
  10. DSP2812开发板学习