基于opencv4.0 pyzbar和python实现二维码实时检测+定位 您所在的位置:网站首页 自带相机识别二维码 基于opencv4.0 pyzbar和python实现二维码实时检测+定位

基于opencv4.0 pyzbar和python实现二维码实时检测+定位

2024-07-16 08:28| 来源: 网络整理| 查看: 265

基于opencv4.0 pyzbar和python实现二维码实时检测+定位 1.写在前面

opencv4.0终于发布了,以后应该视觉的项目都是基于opencv4.0版本的,所以现在也是升级到4.0版本,具体和3.0版本的区别很小,具体可以查看这里。

2.前期准备

opencv 4.0(3.0)

python 3.8

pyzbar

3.效果演示

如果二维码是中文utf-8字符的话无法利用opencv在图像上显示出来,有需要的童鞋可以使用matplotlib显示图像。

4.实现目标

利用摄像头完成了实时对二维码的识别和检测、定位,获取二维码的中心点与外接最小矩形。

5.代码 import cv2 from pyzbar import pyzbar #二维码动态识别 camera=cv2.VideoCapture(0) camera.set(3,1280) #设置分辨率 camera.set(4,768) while True: (grabbed,frame)=camera.read() #获取画面中心点 h1,w1= frame.shape[0],frame.shape[1] # 纠正畸变(这里把相机标定的代码去除了,各位自行标定吧) dst = frame # 扫描二维码 text = pyzbar.decode(dst) for texts in text: textdate = texts.data.decode('utf-8') print(textdate) (x, y, w, h) = texts.rect#获取二维码的外接矩形顶点坐标 print('识别内容:'+textdate) # 二维码中心坐标 cx = int(x + w / 2) cy = int(y + h / 2) cv2.circle(dst, (cx, cy), 2, (0, 255, 0), 8) # 做出中心坐标 print('中间点坐标:',cx,cy) coordinate=(cx,cy) #在画面左上角写出二维码中心位置 cv2.putText(dst,'QRcode_location'+str(coordinate),(20,20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) #画出画面中心与二维码中心的连接线 cv2.line(dst, (cx,cy),(int(w1/2),int(h1/2)), (255, 0, 0), 2) #cv2.rectangle(dst, (x, y), (x + w, y + h), (0, 255, 255), 2) # 做出外接矩形 #二维码最小矩形 cv2.line(dst, texts.polygon[0], texts.polygon[1], (255, 0, 0), 2) cv2.line(dst, texts.polygon[1], texts.polygon[2], (255, 0, 0), 2) cv2.line(dst, texts.polygon[2], texts.polygon[3], (255, 0, 0), 2) cv2.line(dst, texts.polygon[3], texts.polygon[0], (255, 0, 0), 2) #写出扫描内容 txt = '(' + texts.type + ') ' + textdate cv2.putText(dst, txt, (x - 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 50, 255), 2) cv2.imshow('dst',dst) if cv2.waitKey(1) & 0xFF == ord('q'): # 按q保存一张图片 cv2.imwrite("./frame.jpg", frame) break camera.release() cv2.destroyAllWindows()

代码直接运行就行,适用于opencv3.x和4.x版本

6.后记

这个项目是用于实现一个机器人利用视觉和二维码标签进行定位的,现在实现了初步的简单功能

 

我的博客:https://blog.dgut.top/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有