标签: qr-code

如何在大图中定位二维码以提高解码性能?

背景

我需要在 Raspberry Pi 上的大图像(2500x2000)中检测和解码相对较小的二维码(110x110 像素)。二维码可以在框架中的任何位置,但方向应该是正常的,即充值。我们使用高质量的工业相机和镜头,因此图像通常质量好且对焦清晰。

目前,pyzbar当我使用大约 600x500 的窗口裁剪 QR 码周围的图像时,我能够可靠地检测和解码图像。如果我尝试解码完整图像,则不会检测/解码该符号。

我试过的

我写了一个循环,在图像上滑动一个裁剪窗口,并尝试分别解码每个裁剪的帧。我每次迭代都将窗口移动 50%,以确保不会遗漏窗口边缘的任何符号。

我也尝试过使用 OpenCV 进行检测/解码,但性能并不比使用 pyzbar

我的解决方案的问题

影响我当前项目的问题:

滑动窗口方法难以调优,效率低下,b/c 速度慢:

  1. 它导致整个区域被分析近 4 次;将窗口移动 50% 的副作用,
  2. 最可靠的窗口尺寸往往很小,需要多次迭代,
  3. 符号大小可能会因离相机更近/更远而有所不同。

可能会影响我将使用这种方法的其他项目的问题:

  1. 滑动窗口可能会多次捕获一个符号,因此很难确定该符号是否出现多次。

问题

如何找到二维码的大概位置,以便相应地裁剪图像?

我对提高检测/解码性能的任何解决方案感兴趣,但更喜欢 (a) 使用机器学习技术(我是 ML 新手但愿意学习),(b) 使用 OpenCV 图像预处理或 (c ) 改进我的基本裁剪算法。

示例图像

这是我用于测试的示例图像之一。为了近似最坏的情况,故意降低照明质量,但是在裁剪时各个代码仍然可以正确检测和解码。

二维码测试​​图001

python qr-code image-processing computer-vision

10
推荐指数
1
解决办法
4228
查看次数

创建二维码以在iPhone和Android上发送电子邮件

我正在尝试创建一张带有QR码的名片,有人可以扫描并写一封电子邮件给我.我希望QR码预先填充我的电子邮件地址和主题.我在这篇文章中尝试了解决方案(这篇文章是我发现的最好的帖子):

http://www.labnol.org/internet/email-with-qr-code/19610/

我遇到了一些问题 - 在iPhone上,阅读器(QRReader应用程序)只是以纯文本打开MATMSG(我希望电子邮件客户端以填充的文本打开).在Android中(使用条形码扫描仪),它会创建一个新的电子邮件,但没有文本或主题.

是否有任何QR码解决方案可以让客户打开他们的电子邮件客户端,我的电子邮件地址和主题至少填充(对于iOS和Android设备)?

android qr-code ios

9
推荐指数
3
解决办法
2万
查看次数

Facebook页面自动"喜欢"URL(用于QR码)

我想知道是否可以构建一个自动喜欢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/

url facebook qr-code smartphone

9
推荐指数
1
解决办法
11万
查看次数

如何开发跨平台的QR码阅读器?

我需要构建一个移动应用程序,它能够比较远程数据库中的数据[例如登录系统],并从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似乎更完整.对这份工作的任何建议?

mobile cross-platform qr-code zxing cordova

9
推荐指数
1
解决办法
1万
查看次数

ZBar - QR码扫描仪,在Android Studio中崩溃

我从git最新的zBar QR Code Scanner(SDK 0.2)下载了.我试图在我的应用程序中实现它.我在Android Studio上工作.

我做了什么:

  1. 我已将zBar.jar复制到我的Project的libs文件夹中.
  2. 我通过压缩它们并将它们的格式更改为*.jar,从"amerabi","amerabi-v7a","x86"创建了*.jar文件.
  3. 我已将amerabi.jar,amerabi-v7a.jar和x86.jar复制到我项目的libs文件夹中.
  4. 无需更改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)
  5. 可以看到每个类形式的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,但不能像在示例中那样使用它.

android qr-code zbar-sdk zbar

9
推荐指数
1
解决办法
9248
查看次数

Unity Zxing QR码扫描仪集成

我需要将Zxing和vuforia集成在Unity中制作QR码扫描应用程序吗?我不知道如何将Zxing与Vuforia整合在一起.有人可以指导我如何做到这一点吗?我有Zxing .dll文件和Vuforia统一包.谢谢你.

qr-code barcode-scanner unity-game-engine zxing vuforia

9
推荐指数
1
解决办法
2万
查看次数

如何使用Swift在AVCaptureVideoPreviewLayer的特定区域捕获QR码数据?

我正在创建一个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)

qr-code ipad ios swift

9
推荐指数
1
解决办法
5699
查看次数

如何从静态图像中读取QR码

我知道您可以使用AVFoundation设备的相机扫描QR码.现在问题来了,我怎样才能从静态UIImage对象中做到这一点?

qr-code ios

9
推荐指数
6
解决办法
1万
查看次数

Android Vision条形码API - 使用二进制数据读取自定义QR码

我用com.google.android.gms.vision.barcode.BarcodeDetector它来读取QR码.问题是这些代码携带原始二进制数据; 没有电话号码,没有URL,没有地理位置......我无法更改这些QR码,因为它们是在不同的应用程序中生成的.

当我使用Android Barcode API扫描这些QR码时,生成的Barcode对象不允许我访问原始数据,尽管它必须知道它!

我得到的只是"Unknown encoding"信息rawValuedisplayValue属性.

拥有byte[]属性而不是两个String属性会更有意义,因为QR码可以携带一般数据.

我没有看到隐藏开发人员的原始数据字节数组的意义.我可以以某种方式扩展BarcodeDetector课程或Barcode课程以获得我需要的东西吗?

编辑:

这是一个绝对有效的QR码,虽然它带有1024字节的数据,但Vision API无法读取它:

在此输入图像描述


QR码 - 原始二进制数据是相关的,但它不能解决我的问题.

java android qr-code barcode android-vision

9
推荐指数
1
解决办法
1836
查看次数

Laravel QR阅读器不使用.vue文件

我安装了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)

qr-code laravel

9
推荐指数
1
解决办法
594
查看次数