在Python中对图像进行预处理以进行QR检测
我使用ZBAR和OPENCV在下图中读取QR码,但都未能检测到它.对于Zbar,我将Pyzbar库作为Python包装纸.有一些图像可以正确检测到QR,并且图像确实类似于成功的图像.我的手机相机可以在上传的图像中读取QR码,这意味着它是有效的.以下是代码段: from pyzbar.pyzbar import decode from pyzbar.pyzbar import ZBarSymbol import cv2 # zbar results = decode(cv2.imread(image_path), symbols=[ZBarSymbol.QRCODE]) print(results) # opencv qr_decoder = cv2.QRCodeDetector() data, bbox, rectified_image = qr_decoder.detectAndDecode(cv2.imread(image_path)) print(data, b
6 2023-05-22
编程技术问答社区
使用ImageMagick/ZBar来读取QR码
我有扫描的图像文件,我执行了一些预处理,并让它们看起来像这样: 我的手机的ZBAR应用程序可以读取此QR码,但是zbarimg似乎无法弄清楚.我已经尝试了各种成像中的东西使其更顺畅(-smooth,-morphology),但即使取得略微好看的结果,zbarimg仍然浮现为空白. 为什么我的手机的Zbar比我的计算机(zbar-0.10)好得多?我可以做些什么才能获得zbarimg成功阅读此书? 解决方案 您可以尝试形态结束. Python代码: # -*- coding: utf-8 -*- import qrtools import cv2 import numpy as np imgPath = "Fdnm1.png" img = cv2.imread(imgPath, 0) kernel = np.ones((5, 5), np.uint8) processed=cv2.morphologyEx(img, cv2.MORPH_CLOSE, ke
4 2023-05-22
编程技术问答社区
ZBAR + PYTHON,在导入(OSX 10.9.1)上崩溃
我尝试安装ZBAR与Python 2.7.6一起使用Homebrew and Pip(Brew Install ZBAR,然后是PIP安装ZBAR),但是每次我导入它时,Python都会崩溃.简单地运行: #!/usr/bin/python import zbar 从终端中吸引我: :~ aj$ cd '/Users/aj/Documents/nlcc/check in/python/' && '/usr/bin/python' '/Users/aj/Documents/nlcc/check in/python/test.py' && echo Exit status: $? && exit 1 Segmentation fault: 11 其他模块(wxpython,numpy,openCV)工作正常,但是每次都会给我同样的崩溃.我已经尝试从源头编译和安装ZBAR,认为这可能是Homebrew(甚至PIP)的问题,但是这有自己的一系列问题,这些问题是我脑海中相当
22 2023-05-14
编程技术问答社区
使用OpenCV和Zbar在Python中检测QR码的大小
我的代码从网络摄像头中获取图像,使用ZBAR扫描QR码,并返回代码的值和带有QR代码的图像(基于 http://sourceforge.net/p/qrtracker/wiki/home/).我还能告诉我代码的大小(作为像素值或屏幕的百分比)? 其他问题:是否有一种方法可以检测其偏斜的偏差(例如,围绕y轴旋转)? ? 解决方案 关于代码的大小 ZBAR提供了一种方法,可以用像素值来执行此操作(一旦您知道像素值的大小,就可以在%中找到它) ) 我想在此处扩展代码: http:/http://sourceforge.net/apps/mediawiki/zbar/index.php?title=howto:_scan_images_using_the_api 上面的代码在图像中找到QR码,打印其数据等.现在检查最后几行代码: import math scanner.scan(image) [a,b,c,d] = x.location # it r
0 2023-05-10
编程技术问答社区
将单个贴纸上的多个条形码组合在一起,并从图像中使用Python进行多个贴纸
目的:使用Python语言将产品条形码扫描到我们的运输计划中. 情况:产品上的每个贴纸都有两个条形码.一个(SKU)识别产品线是什么,另一个(序列号)是一个唯一的ID,可以从同一产品线中的其他ID识别它.例如,在图像中,可以有十个贴纸,例如"产品A",所有十个贴纸都具有独特的序列号.图像中也可能有"产品B"和"产品C". 进度:我可以使用pyzbar和cv2成功地扫描图像中的多个条形码. 问题:我想按照贴纸对SKU和序列号栏编码进行分组,但我不知道该怎么做或从哪里开始. 代码我正在使用 from pyzbar.pyzbar import decode, ZBarSymbol import cv2 testing_image_readin = cv2.imread(testing_image_path) detected_barcodes = decode(testing_image_readin, symbols=[ZBarSymbol.CODE128,
20 2023-05-10
编程技术问答社区
如何在Python的" Pyzbar"库上解决导入错误?
我刚刚开始熟悉pyzbar库,但是当使用decode方法时,我会遇到错误.这是代码: import cv2 import numpy as np import pyzbar code_image = cv2.imread("C:\Users\Acer\Desktop\qr.PNG") cv2.imshow("QR", code_image) cv2.waitKey(0) #this command is to hold the image open after opening it from pyzbar import decode decoded = pyzbar.decode(code_image) print(decoded) qr.png只是QR码的图片. OPENCV显示图像很好,但它是不起作用的解码部分: 追溯(最近的最新通话): 文件" c:/user/acer/desktop/ml> projects/projects/opencv/qr_code_d
30 2023-05-10
编程技术问答社区
在Python中把openCV图像转换成PIL图像(用于Zbar库)。
我正在尝试在使用OpenCV的相机方法提取的图像上使用ZBAR库的QR码检测方法.通常,QR代码检测方法可与我的计算机上的图像(JPG,PNG等)一起使用,但我猜OpenCV的捕获帧不同. 有没有办法将被捕获的框架制成pil图像? 谢谢. from PIL import Image import zbar import cv2.cv as cv capture = cv.CaptureFromCAM(1) imgSize = cv.GetSize(cv.QueryFrame(capture)) img = cv.QueryFrame(capture) #SOMETHING GOES HERE TO TURN FRAME INTO IMAGE img = img.convert('L') width, height = img.size scanner = zbar.ImageScanner() scanner.parse_config('enable') zbar_i
4 2023-05-09
编程技术问答社区
用pyzbar在python中读取模糊的条形码
我一直在尝试阅读图像中的一些条形码,并读取uzing python和pyzbar.不幸的是,这些图像是在几个约束下从几英尺外拍摄的,我无法移动或放大相机.是否可以使用任何现有的Python库读取该模糊的条形码? 到目前为止,我已经尝试了一些预处理,包括阈值,锐化,应用垂直闭合过滤器和维也纳过滤,但似乎没有任何帮助.我可能是在要求一个奇迹,但是如果您有任何建议,我真的会很感激. 代码(注释的部分是我尝试过的预处理方法): import numpy as np import cv2 as cv from pyzbar import pyzbar barcode_img = cv.imread('barcode_example.jpg', cv.IMREAD_GRAYSCALE) # threshold # (_, barcode_img) = cv.threshold(barcode_img, 0, 255, cv.THRESH_BINARY + cv.THRESH_O
6 2023-05-09
编程技术问答社区
如何可靠地检测条形码的4个角?
我正在尝试检测此 code128 带有python + zbar模块的条形码/p> (图片下载链接在这里). 这有效: import cv2, numpy import zbar from PIL import Image import matplotlib.pyplot as plt scanner = zbar.ImageScanner() pil = Image.open("000.jpg").convert('L') width, height = pil.size plt.imshow(pil); plt.show() image = zbar.Image(width, height, 'Y800', pil.tobytes()) result = scanner.scan(image) for symbol in image: print symbol.data, symbol.type, symbol.quality, symbol.
8 2023-05-09
编程技术问答社区
iOS。ZBar SDK的单码字符
使用ZBAR扫描QR码时,该过程产生的字符串无法正确显示Unicode字符.单词márti由任何免费使用QR码生成器编码为QR码(例如 http://qrcode.kaywa.com )将导致 mテrti . 在其他问题中( 1 , 2 )建议在结果字符串的开始时嵌入BOM,但是这样做: NSString *qrString = [NSString stringWithFormat:@"\xEF\xBB\xBF%@",symbol.data]; 或以下: NSString *qrString = [[NSString alloc] initWithFormat:@"\357\273\277%@", symbol.data]; 与亚洲角色产生了相同的,有缺陷的结果. symbol.data是ZBAR提供的结果NSString. 更新:基于DDA的答案,解决方案如下: NSString *qrString = symbol.data; //look fo
0 2023-05-04
编程技术问答社区
ZBar与iOS7和XCode5的编译错误libzbar.a架构
刚刚遇到了一些错误runnign zbar 用我的ios应用程序. 我包括了最新的试图将其存档以进行分发时,ARM64出现了错误. 我试图用所选的ARM64 ARMV7和ARMV7重新编译来源以生成自己的Libzbar.a(生成),但即使在这里,错误也是相同的. 那我该怎么办? thnaks寻求帮助! 解决方案 您可以下载为ARM7,ARM7S和ARM64 这里在这里 编辑:我仍在对此答案上进行投票,当前的真正答案是,现在AV基础框架包括iOS 7开始的条形码扫描.我建议从现在开始使用ZBAR. 在这里 其他解决方案 上面的答案并没有真正帮助 遵循本指南: 但是,在建造之前,将体系结构更改为包括ARM64 其他解决方案 我在ZBAR火车上也待了相当长的一段时间,因为它们尚未更新SDK,因此处理了这些问题.幸运的是,如果您的应用只需要支持iOS7(大多数iOS用户现在!)现在就有QR码阅读支持,以便您可以轻松地构建自己的读者
0 2023-05-04
编程技术问答社区
在iPhone 5s 64位上运行32位库
我使用 是否可以在64位设备上使用32位库,因为我认为库将要更新. 解决方案 总结上面的评论. 64位iPhone应用程序要求所有组成库和框架为64位.你不能混合匹配.离开应用程序32位是长期的,因为iOS必须在运行一个32位应用程序后立即保留两个版本的系统库(32和64).因此,您不想成为支持64位的最后一个应用程序! 您可以使用Lipo检查您的库是否包含64位代码.例如,这是32位的SBJSON框架: $ lipo -info SBJson.framework/SBJson Architectures in the fat file: SBJson.framework/SBJson are: armv6 armv7 i386 和64位代码 $ lipo -info SBJson.framework/SBJson Architectures in the fat file: SBJson.framework/SBJson are: armv7 armv
0 2023-05-04
编程技术问答社区
问:如何修复pyzbar中缺失的依赖关系?
我目前正在Windows 10上的python 3.8.5通过Anaconda使用Spyder,我正在尝试使用Pyzbar软件包来制作条形码读取器.当我尝试运行脚本时,我在尝试运行from pyzbar.pyzbar import decode和from pyzbar import pyzbar时会收到此错误消息: Traceback (most recent call last): File "C:\Users\norinhan\Anaconda3\lib\site-packages\pyzbar\zbar_library.py", line 58, in load dependencies, libzbar = load_objects(Path('')) File "C:\Users\norinhan\Anaconda3\lib\site-packages\pyzbar\zbar_library.py", line 50, in load_object
8 2023-04-14
编程技术问答社区
在Mac OS X上用Conda安装pyzbar时出现错误
我试图将一个项目从Python 3 Venv转换为Conda.但是,它与Conda无法使用,显然是因为没有存储库支持MacOS. 这是令人失望的,因为在原始项目中使用brew和pip在原始项目中安装zbar和pyzbar.因此,很明显,这些文件存在,但无法通过Conda存储库获得.我在某个地方错过了仓库吗?如果没有,是否有一种方法可以将下载pip和brew下载到conda环境下载的软件包? 这是我尝试的. i 请参见说明,说要使用conda install -c lightsource2-tag pyzbar.但是,Conda无法解决(本说明底部的完整错误消息). 这似乎与搜索结果一致(NewUI_conda) BlueMorph: /Users/Wes 12:16 516$ conda install -c lightsource2-tag pyzbar Collecting package metadata (current_repodata.json): d
36 2023-03-27
编程技术问答社区
导入zbar导致python退出,退出代码为139--在运行10.9的mac上,什么原因会导致这种情况?
我试图在我的OPENCV工作流中获得QR代码识别,但该程序立即使用代码139退出. import zbar引起问题,因为当我将其删除时,我后续的OpenCV代码执行. 我该如何诊断?它似乎在/library/python/2.7/site-packages/中找到zbar Python软件包(即不声称该软件包不存在),但是随后使用代码139退出.是否知道什么代码139是什么? python绑定,zlib.h还是其他地方的问题? Python绑定软件包在/library/python/2.7/site-packages/中: zbar-0.10-py2.7.egg-info zbar.so 解决方案 致命错误由128 +错误代码表示.在您的情况下,这是128 + 11 = 139,其中11是指sigsegv,即无效的内存访问.另请参阅: http://man7.org/linux/man-man-pages/man7/signal.7.html 如
2 2023-03-16
编程技术问答社区
用Python从左到右解码QR代码
我有一个带有几种QR码的PNG,基本上看起来像 解码QR码我使用zbarlight. from PIL import Image import zbarlight file_path = './tests/qr_codes.png' with open(file_path, 'rb') as image_file: image = Image.open(image_file) image.load() codes = zbarlight.scan_codes(['qrcode'], image) print('QR codes: %s' % codes) 我的目标是从左到右解码QR码,因此列表应该喜欢这样:url1,url2,url3,url4,url4,url5,ulr6. 问题:Zbarlight扫描过程的结果(列表)在我看来就像一个随机顺序.有没有办法从左到右扫描? 解决方案 我在Windows上,现在无法在Linux上进行测试,但
2 2023-03-09
编程技术问答社区
新的Yocto食谱构建,但编译后删除了工作目录
我正在尝试将ZBAR的配方从0.10.0更新为0.20.1.这是原始食谱: https://github.com/openembedded/meta-openembedded/blob/master/meta-meta-ecipes/recipes-support/zbar/zbar/zbar_0.10.bb 我修改的食谱在这个问题的底部.该软件包确实编译了,但是问题是在"包装"步骤中发生了一些事情,并且"工作"目录被删除了,除了"工作"目录中的"临时"目录.在编译期间,如果我在工作目录中列出文件,我期望的一切都存在,但是在编译成功后,某些东西会清理文件.我究竟做错了什么? 编译期间: user@ubuntu:~/rpi/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/zbar/0.20.1-r0$ cd ../0.20.1-r0/ ; ls build image
0 2023-03-08
编程技术问答社区
如何安装源于apt软件包的Python绑定?
我已经在 heroku 上托管了一个网站,我现在想使用使用软件包" http://zbar.sourceforge.net/"> zbar条形码扫描仪.在常规的debian(基于)我可以做一个简单的: sudo apt-get install python-qrtools 根据命令dpkg-query -L python-qrtools,这会安装以下内容: /usr/lib/python2.7/dist-packages/qrtools-1.2.egg-info /usr/lib/python2.7/dist-packages/qrtools.py /usr/share/doc/python-qrtools/copyright /usr/share/doc/python-qrtools/changelog.Debian.gz 当我查看qrtools.py的导入时,它也会执行import zbar,据我所知,它是ZBAR软件包的Python绑定( pypi链接在这里).
2 2023-03-08
编程技术问答社区
为Python 3.x编译zbar
几年前,我花了一些时间找到一种使zbar与Python 2.7 + Windows X64合作的方法,然后我发布了此工作解决方案:如何在(最好是纯)python中解码QR-Code image? 现在,我注意到pip install zbar仍然没有使用Python 3.7开箱即用,因此我试图从源头进行编译.这是我所做的: Install "Microsoft Visual C++ Build Tools 2015" (see 在这里) 获取zbar来源:/a> msbuild zbar64.sln /p:PlatformToolset=v140,它起作用并产生了一个文件libzbar64-0.dll成功 将其复制到/x64/Release/libzbar64-0.dll 转到Python/并运行build.bat,但在这里失败: zbarmodule.c(132):错误c2143:语法错误:缺少'{'{'之前'' Zbarmodule.C(1
58 2023-02-27
编程技术问答社区
pyzbar无法识别qrcode,但可以与条形码合作
我正在研究Android应用程序.这是Qrcodescanner,与Kivy和Python在一起.该代码在Windows上正常工作,但是当我编译到Android时,它无法识别QRCodes,但仅识别条形码. 这是我的代码 label = Label(text="", halign='left', valign='bottom', size_hint=(.5,.2)) x = Camera(play=True, index=0) class MyCamera(App): def build(self): self.window = GridLayout() self.window.cols = 1 Window.size = (360, 640) self.window.add_widget(x) self.window.add_widget(label) Clock.schedu
8 2023-02-24
编程技术问答社区