我需要在 Raspberry Pi 上的大图像(2500x2000)中检测和解码相对较小的二维码(110x110 像素)。二维码可以在框架中的任何位置,但方向应该是正常的,即充值。我们使用高质量的工业相机和镜头,因此图像通常质量好且对焦清晰。
目前,pyzbar当我使用大约 600x500 的窗口裁剪 QR 码周围的图像时,我能够可靠地检测和解码图像。如果我尝试解码完整图像,则不会检测/解码该符号。
我写了一个循环,在图像上滑动一个裁剪窗口,并尝试分别解码每个裁剪的帧。我每次迭代都将窗口移动 50%,以确保不会遗漏窗口边缘的任何符号。
我也尝试过使用 OpenCV 进行检测/解码,但性能并不比使用 pyzbar
影响我当前项目的问题:
滑动窗口方法难以调优,效率低下,b/c 速度慢:
可能会影响我将使用这种方法的其他项目的问题:
如何找到二维码的大概位置,以便相应地裁剪图像?
我对提高检测/解码性能的任何解决方案感兴趣,但更喜欢 (a) 使用机器学习技术(我是 ML 新手但愿意学习),(b) 使用 OpenCV 图像预处理或 (c ) 改进我的基本裁剪算法。
这是我用于测试的示例图像之一。为了近似最坏的情况,故意降低照明质量,但是在裁剪时各个代码仍然可以正确检测和解码。
我正在尝试创建一张带有QR码的名片,有人可以扫描并写一封电子邮件给我.我希望QR码预先填充我的电子邮件地址和主题.我在这篇文章中尝试了解决方案(这篇文章是我发现的最好的帖子):
http://www.labnol.org/internet/email-with-qr-code/19610/
我遇到了一些问题 - 在iPhone上,阅读器(QRReader应用程序)只是以纯文本打开MATMSG(我希望电子邮件客户端以填充的文本打开).在Android中(使用条形码扫描仪),它会创建一个新的电子邮件,但没有文本或主题.
是否有任何QR码解决方案可以让客户打开他们的电子邮件客户端,我的电子邮件地址和主题至少填充(对于iOS和Android设备)?
我想知道是否可以构建一个自动喜欢Facebook页面的URL.然后,此URL可以转换为QR码,以便人们可以通过智能手机阅读来自动"喜欢"您的页面.
我一直在搜索,但到目前为止我能找到的商业服务包括Spotlike,Likify,Social QR Code等.我不想要一个依赖这种商业服务的解决方案.
我开始怀疑Facebook没有出于可理解的原因(滥用等)启用这种可能性.尽管如此,我还是希望以某种方式做到这一点,即使只是创建我自己的中介服务.在后一种情况下,创建这样的服务基本上需要什么?
编辑:
我已经尝试过这样的URL:http://www.facebook.com/plugins/like.php?href = http://facebook.com/interlinkONE
这个URL(当编码为QR码时)在iPhone上并没有真正给出理想的结果,因为它显示了一个空白页面,带有一个几乎看不到的小"喜欢"按钮.此外,即使我尝试单击"喜欢"按钮,它似乎也不起作用.
资料来源:http://qreateandtrack.com/2010/10/18/how-to-create-qr-codes-for-the-facebook-like-button/
我需要构建一个移动应用程序,它能够比较远程数据库中的数据[例如登录系统],并从QR码中获取字符串.我没有开发移动应用程序的经验,但发现了两个有趣的工具.PhoneGap和Mosync.
我知道PhoneGap有一些PhoneGap插件[像这样https://github.com/phonegap/phonegap-plugins/blob/master/iPhone/BarcodeScanner/README.md ].但它似乎只适用于iOS.还是我错了?
我知道zxing有一个cpp端口.可以使用它来使用Mosync开发应用程序吗?
我对C/C++的经验比javascript要多,因为使用Mosync可以更容易地完成工作.但是,PhoneGap似乎更完整.对这份工作的任何建议?
我从git最新的zBar QR Code Scanner(SDK 0.2)下载了.我试图在我的应用程序中实现它.我在Android Studio上工作.
我做了什么:
无需更改gradle中的任何内容,因为它已配置为从libs项目导入每个jar文件.见下文:
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile 'com.crashlytics.android:crashlytics:1.+'
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':FacebookSDK')
compile project(':actionbarsherlock')
compile project(':Aviary-SDK')
}
Run Code Online (Sandbox Code Playgroud)可以看到每个类形式的zBar lib,所以我已经配置了所有内容.我运行我的ScannerActivity并在onCreate中我得到错误:
scanner = new ImageScanner(); // this line shows an error
scanner.setConfig(0, Config.X_DENSITY, 3);
scanner.setConfig(0, Config.Y_DENSITY, 3);
Run Code Online (Sandbox Code Playgroud)因此实现与示例中的1:1相同.
我的错误日志:
java.lang.UnsatisfiedLinkError: Couldn't load zbarjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/pl.toptof.android.debug-2.apk"],nativeLibraryDirectories=[/data/app-lib/pl.toptof.android.debug-2, /vendor/lib, /system/lib]]]: findLibrary returned null
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.我不知道为什么我的Android Studio可以看到lib,但不能像在示例中那样使用它.
我需要将Zxing和vuforia集成在Unity中制作QR码扫描应用程序吗?我不知道如何将Zxing与Vuforia整合在一起.有人可以指导我如何做到这一点吗?我有Zxing .dll文件和Vuforia统一包.谢谢你.
我正在创建一个iPad应用程序,其中一个功能是扫描QR码.我有QR扫描部分工作,但我的问题是iPad屏幕非常大,我将扫描一张纸的小QR码,同时可以看到许多QR码.我想指定显示器的较小区域是唯一可以实际捕获QR码的区域,因此用户更容易扫描他们想要的特定QR码.
我目前已经制作了一个带有红色边框的临时UIView,它以页面为中心,作为我希望用户扫描QR码的示例.它看起来像这样:

我已经到处寻找一个答案,我可以如何定位AVCaptureVideoPreviewLayer的特定区域来收集QR码数据,我发现建议使用"rectOfInterest"和AVCaptureMetadataOutput.我试图这样做,但是当我将rectOfInterest设置为与我用于正确显示的UIView相同的坐标和大小时,我无法扫描/识别任何QR码.有人可以告诉我为什么可扫描区域与看到的UIView的位置不匹配,如何让rectOfInterest在我添加到屏幕的红色边框内?
这是我目前使用的扫描功能的代码:
func startScan() {
// Get an instance of the AVCaptureDevice class to initialize a device object and provide the video
// as the media type parameter.
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
// Get an instance of the AVCaptureDeviceInput class using the previous device object.
var error:NSError?
let input: AnyObject! = AVCaptureDeviceInput.deviceInputWithDevice(captureDevice, error: &error)
if (error != nil) {
// If any error occurs, simply log the description of it and don't continue any more.
println("\(error?.localizedDescription)")
return
} …Run Code Online (Sandbox Code Playgroud) 我知道您可以使用AVFoundation设备的相机扫描QR码.现在问题来了,我怎样才能从静态UIImage对象中做到这一点?
我用com.google.android.gms.vision.barcode.BarcodeDetector它来读取QR码.问题是这些代码携带原始二进制数据; 没有电话号码,没有URL,没有地理位置......我无法更改这些QR码,因为它们是在不同的应用程序中生成的.
当我使用Android Barcode API扫描这些QR码时,生成的Barcode对象不允许我访问原始数据,尽管它必须知道它!
我得到的只是"Unknown encoding"信息rawValue和displayValue属性.
拥有byte[]属性而不是两个String属性会更有意义,因为QR码可以携带一般数据.
我没有看到隐藏开发人员的原始数据字节数组的意义.我可以以某种方式扩展BarcodeDetector课程或Barcode课程以获得我需要的东西吗?
编辑:
这是一个绝对有效的QR码,虽然它带有1024字节的数据,但Vision API无法读取它:
QR码 - 原始二进制数据是相关的,但它不能解决我的问题.
我安装了gruhn/vue-qrcode-reader软件包来读取QR码.
这是我的qrscan.blade.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Vue</title>
<link href="{{ mix('css/app.css') }}" rel="stylesheet" type="text/css">
</head>
<body>
<div id="app"></div>
<script src="{{ mix('js/app.js') }}"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
app.js
require('./bootstrap');
window.Vue = require('vue');
import Vue from 'vue'
import VueQrcodeReader from 'vue-qrcode-reader'
Vue.use(VueQrcodeReader)
const app = new Vue({
el: '#app',
components: { App },
});
Run Code Online (Sandbox Code Playgroud)
和我的vue-qrcode-reader.vue
<template>
<QrcodeReader
:paused="paused"
@decode="onDecode"
@init="onInit">
<div v-if="content" class="decoded-content">{{ content }}</div>
<LoadingIndicator v-show="loading" />
</QrcodeReader>
</template>
<script>
import { QrcodeReader } from 'vue-qrcode-reader'
import InitHandler from '@/mixins/InitHandler'
export default …Run Code Online (Sandbox Code Playgroud)