gpt4 book ai didi

python - 如何使用OpenCV、Python和zbar检测单个二维码

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:18 25 4
gpt4 key购买 nike

我正在使用 AR 无人机底部的摄像头检测二维码,以便了解无人机在棋盘上的位置。无人机悬停在棋盘上,每个方格都是一个二维码,表示位置(例如 A1、C5、E7 等)。当我按下某个键时,它会扫描二维码并将位置返回给我。

现在,我希望能够从多个二维码中检测出一个二维码。由于无人机有可能看到多个二维码。因为我需要知道无人机在哪个确切的正方形上,或者至少是最接近的正方形(例如:A1 以上 2/3 和 A2 以上 1/3 应该导致 A1)。这是我目前使用的代码:

#!/usr/bin/python
from sys import argv
import zbar
import Image
import cv2

class DetectQRCode(object):

@classmethod
def detect_qr(self, image):
# create a reader
scanner = zbar.ImageScanner()

# configure the reader
scanner.parse_config('enable')

# obtain image data
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY,dstCn=0)
pil = Image.fromarray(gray)
width, height = pil.size
raw = pil.tostring()


# wrap image data
image = zbar.Image(width, height, 'Y800', raw)

# scan the image for barcodes
scanner.scan(image)

# extract results
for symbol in image:
# do something useful with results
if symbol.data == "None":
return "Drone bevindt zich buiten het raster"
else:
return symbol.data

这可以使用 OpenCV、Python 来完成吗? zbar 有我可以使用的东西吗?

最佳答案

我建议最好的方法是首先检测 QR 码周围的所有边界(最大的正方形),这将为您提供图像中的 QR 码列表。

然后您可以在此列表中排序最接近无人机位置的那个,然后在该特定 QR 码上运行您的 QR 码阅读器。

Here是关于如何使用 opencv 检测正方形的教程。

& here是一个堆栈溢出问题,展示了如何检测内部有额外正方形的边界框。

关于python - 如何使用OpenCV、Python和zbar检测单个二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com