鱼C论坛

 找回密码
 立即注册
查看: 2342|回复: 0

如何解码

[复制链接]
发表于 2023-1-7 10:53:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用flask写了一个小程序,结合cv2可以实现在网页上开摄像头
  1. import cv2
  2. from flask import Flask, render_template, Response
  3. import time
  4. from pyzbar import pyzbar
  5. import numpy as np

  6. app = Flask(__name__)


  7. @app.route('/')
  8. def index():
  9.     return render_template(r'index.html')


  10. def gen():
  11.     vid = cv2.VideoCapture(0)
  12.     while True:
  13.         return_value, frame = vid.read()
  14.         image = cv2.imencode('.jpg', frame)[1].tobytes()
  15.         yield (b'--frame\r\n'
  16.                b'Content-Type: image/jpeg\r\n\r\n' + image + b'\r\n')
  17.         # print(image)

  18.         img_data = cv2.imread(image.decode("ascii"))
  19.         # 转为灰度图像
  20.         gray = cv2.cvtColor(img_data, cv2.COLOR_BGR2GRAY)
  21.         barcodes = pyzbar.decode(gray)[0].data.decode("utf-8")# 二维码内容
  22.         print(barcodes)

  23.         time.sleep(0.1)


  24. @app.route('/sm')
  25. def video_feed():
  26.     return Response(gen(), mimetype='multipart/x-mixed-replace; boundary=frame')


  27. if __name__ == '__main__':
  28.     app.run(host='0.0.0.0', port=80, debug = True)
复制代码


原理应该是保存每一张从摄像头拍到图片,然后将图片传到html,就实现了在网页端调去摄像头

既然这样,我就检测一下这些图片是否有二维码(有的话识别)
毕竟它也是一个while,就省事很多了

然后我就找了一个解析二维码的语句
  1.         gray = cv2.cvtColor(img_data, cv2.COLOR_BGR2GRAY)
  2.         barcodes = pyzbar.decode(gray)[0].data.decode("utf-8")# 二维码内容
  3.         print(barcodes)
复制代码


看前面有个image
  1. image = cv2.imencode('.jpg', frame)[1].tobytes()
复制代码


就想直接拿来用

结果发现不行,好像需要解码


但是试过了.decode("utf-8")和decode("ascii")都不行

现在来请教一下大佬们如何解码到解析二维码库可以识别的样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 22:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表