精华内容
下载资源
问答
  • zbar

    2021-01-10 21:03:01
    zbar Factory Details: Rank none (0) Long-name Barcode detector Klass Filter/Analyzer/Video Description Detect bar codes in the video streams Author Stefan Kost ...

    gst-inspect-1.0列表

    --zbar

    Factory Details:
      Rank                     none (0)
      Long-name                Barcode detector
      Klass                    Filter/Analyzer/Video
      Description              Detect bar codes in the video streams
      Author                   Stefan Kost <ensonic@users.sf.net>

    Plugin Details:
      Name                     zbar
      Description              zbar barcode scanner
      Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstzbar.so
      Version                  1.14.5
      License                  LGPL
      Source module            gst-plugins-bad
      Source release date      2019-05-29
      Binary package           GStreamer Bad Plugins (Ubuntu)
      Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0

    GObject
     +----GInitiallyUnowned
           +----GstObject
                 +----GstElement
                       +----GstBaseTransform
                             +----GstVideoFilter
                                   +----GstZBar

    Pad Templates:
      SRC template: 'src'
        Availability: Always
        Capabilities:
          video/x-raw
                     format: { (string)Y800, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)Y41B, (string)Y42B, (string)YUV9, (string)YVU9 }
                      width: [ 1, 2147483647 ]
                     height: [ 1, 2147483647 ]
                  framerate: [ 0/1, 2147483647/1 ]
      
      SINK template: 'sink'
        Availability: Always
        Capabilities:
          video/x-raw
                     format: { (string)Y800, (string)I420, (string)YV12, (string)NV12, (string)NV21, (string)Y41B, (string)Y42B, (string)YUV9, (string)YVU9 }
                      width: [ 1, 2147483647 ]
                     height: [ 1, 2147483647 ]
                  framerate: [ 0/1, 2147483647/1 ]

    Element has no clocking capabilities.
    Element has no URI handling capabilities.

    Pads:
      SINK: 'sink'
        Pad Template: 'sink'
      SRC: 'src'
        Pad Template: 'src'

    Element Properties:
      name                : The name of the object
                            flags: 可读, 可写
                            String. Default: "zbar0"
      parent              : The parent of the object
                            flags: 可读, 可写
                            Object of type "GstObject"
      qos                 : Handle Quality-of-Service events
                            flags: 可读, 可写
                            Boolean. Default: true
      message             : Post a barcode message for each detected code
                            flags: 可读, 可写
                            Boolean. Default: true
      attach-frame        : Attach a frame dump to each barcode message
                            flags: 可读, 可写
                            Boolean. Default: false
      cache               : Enable or disable the inter-image result cache
                            flags: 可读, 可写, 只能在NULL、或READY状态下改变
                            Boolean. Default: false

    返回gst-inspect-1.0列表

    展开全文
  • Zbar

    千次阅读 2015-04-01 10:44:34
    2015-01-16 end 2014-12-22 start

    2015-01-16 end

    2014-12-22 start

    展开全文
  • 二维码识别之Android完整编译Zbar

    万次阅读 多人点赞 2017-05-11 16:41:43
    本文将教会你从头开始,基于zbar和libiconv完整的编译一个纯净版的zbar。本文提供了jni源代码、jar文件和so文件、远程依赖等三种方式使用原生zbar。又单独提供了一个基于zbar封装的相机,提供了一个自定义View,通过...

    版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

    大概刚做Android开发的时候就做过二维码扫描,那时候懂的东西少,就搜出来了ZXing和Zbar两个库。ZXing是纯Java代码实现的,适用于Android平台;Zbar是C实现的,可以供很多语言和平台使用,比如Java、iOS平台、Android平台,Python等等。很明显Zbar的识别率和速度都是明显快于ZXing的,但是无奈那时候不会编译Zbar,只好下载了ZXing,但是由于当时技术能力不足,对于ZXing自定义剪切框也做不出来,只好下载了别人编译好的Zbar,可能由于别人修改了代码或者编译的不是很完整,后期bug层出,废了好大劲才完善好。

    后来一直没有机会学习二维码扫描,直到前几天需要给我们平台的APP加上了二维码扫描功能,我决定使用ZBar,于是我完整的编译了一次,今天把这个过程记录下来,希望可以帮助到需要的同学。

    比如微信使用的是ZXing,但是我肯定的说他们修改了不少源码,而且有很多地方应该改成了jni实现,所以微信的识别速率和准确率是相当高的,不过今天我编译后的封装也是秒秒钟就可以识别。

    因为Zbar是基于LGPL-2.1开源的,因此我基于LGPL-2.1协议,我把一个完整的项目源码和sample放到Github上了,提供直接调用zbar的识别byte[]数据的功能和调用相机识别二维码的功能:
    https://github.com/yanzhenjie/android-zbar-sdk

    特别声明:本文已经修复了zbar识别中文乱码的问题!!!


    编译Zbar

    在正式编译之前要注意:编译Zbar需要先编译libiconv,编译libiconv需要linux环境,需要用到gcc。如果你没有linux环境也没有关系,我已经提供了编译好的libiconv。

    其实在Zbar的官网也可以下载到他们已经编译好的so和jar,但是so文件他们只提供了armeabiarmeabi-v7ax86平台:
    https://sourceforge.net/projects/zbar/files/?source=navbar

    所以我就抛弃了提供的编译包,自己编译了,下面是步骤。

    首先在Zbar的开源主页下载Zbar源码:
    https://github.com/ZBar/ZBar

    顺便在开源主页点开android文件夹,发现编译Zbar需要libiconv,接下来下载libiconv:
    http://www.gnu.org/software/libiconv

    对于libiconv我是下载的在2017-02-02时发布的最新版1.15。

    一、编译libiconv

    如果你没有linux环境编译libiconv,那么你可以在这里下载我已经编译好的libiconv1.15
    http://download.csdn.net/detail/yanzhenjie1003/9833225,下好好文件后,你就可以直接跳过这一节,看下面Zbar和libiconv一起编译了。

    如果你有linux环境可以编译libiconv,那么继续往下看。
    下载好libiconv后,进入libiconv文件夹,如果报权限错误进不去的话执行sudo chmod 777 -R libiconv就可以了:
    libiconv

    进来后先执行:./configure,如果提示没权限那么执行:sudo chmod 777 configure,然后重新执行/.configure即可。

    ./configure执行完后再执行make命令即可完成编译

    编译时可能遇到以下错误:
    1、configure: error: no acceptable C compiler found in $PATH
    这个是说你没有安装gcc,安装gcc后再次执行未完成命令即可。

    二、Zbar和libiconv一起编译

    libiconv编译完成了,接下来把Zbar和libiconv放到一起,编译出我们需要的so文件。

    1. 把刚才编译好的libiconv放入我们项目的jni文件夹。
    2. 解压刚才下载好的Zbar,首先把Zbar的头文件所在文件夹zbar/include放入我们项目的jni文件夹下。
    3. 把Zbar对java的接口文件zbarjni.c放入我们项目的jni文件夹,zbrjni.c在zbar/java文件夹下。
    4. 把Zbar的核心库文件所在的文件夹zbar/zbar放到我们项目的jni文件夹下。
    5. 把Zbar编译时需要的Android.mkApplicaiton.mkconfig.hzbar\android\jni下拷贝到我们项目的jni文件夹下。

    此时我们项目的jni文件夹是这样的:
    zbar

    理论上现在可以开始编译了吧,但是呢因为我们改动了zbar的文件夹结构,所以我们要对Android.mk进行改动,主要改的是文件夹路径和文件路径,修改后的Android.mk的内容如下:

    MY_LOCAL_PATH := $(call my-dir)
    
    # libiconv
    include $(CLEAR_VARS)
    LOCAL_PATH := $(MY_LOCAL_PATH)
    LOCAL_MODULE := libiconv
    LOCAL_CFLAGS := \
        -Wno-multichar \
        -D_ANDROID \
        -DLIBDIR="c" \
        -DBUILDING_LIBICONV \
        -DBUILDING_LIBCHARSET \
        -DIN_LIBRARY
    
    LOCAL_SRC_FILES := \
        libiconv-1.15/lib/iconv.c \
        libiconv-1.15/libcharset/lib/localcharset.c \
        libiconv-1.15/lib/relocatable.c
    
    LOCAL_C_INCLUDES := \
        $(LOCAL_PATH)/libiconv-1.15/include \
        $(LOCAL_PATH)/libiconv-1.15/libcharset \
        $(LOCAL_PATH)/libiconv-1.15/libcharset/include
    
    include $(BUILD_SHARED_LIBRARY)
    
    LOCAL_LDLIBS := -llog -lcharset
    
    # -----------------------------------------------------
    
    # libzbar
    include $(CLEAR_VARS)
    LOCAL_PATH := $(MY_LOCAL_PATH)
    LOCAL_MODULE := zbar
    LOCAL_SRC_FILES := \
                zbarjni.c \
                zbar/img_scanner.c \
                zbar/decoder.c \
                zbar/image.c \
                zbar/symbol.c \
                zbar/convert.c \
                zbar/config.c \
                zbar/scanner.c \
                zbar/error.c \
                zbar/refcnt.c \
                zbar/video.c \
                zbar/video/null.c \
                zbar/decoder/code128.c \
                zbar/decoder/code39.c \
                zbar/decoder/code93.c \
                zbar/decoder/codabar.c \
                zbar/decoder/databar.c \
                zbar/decoder/ean.c \
                zbar/decoder/i25.c \
                zbar/decoder/qr_finder.c \
                zbar/qrcode/bch15_5.c \
                zbar/qrcode/binarize.c \
                zbar/qrcode/isaac.c \
                zbar/qrcode/qrdec.c \
                zbar/qrcode/qrdectxt.c \
                zbar/qrcode/rs.c \
                zbar/qrcode/util.c
    
    LOCAL_C_INCLUDES := \
                $(LOCAL_PATH)/include \
                $(LOCAL_PATH)/zbar \
                $(LOCAL_PATH)/libiconv-1.15/include
    
    LOCAL_SHARED_LIBRARIES := libiconv
    
    include $(BUILD_SHARED_LIBRARY)

    然后在Application.mk中填写你要编译的平台,如果想全部编译:

    APP_ABI := all

    如果要指定编译某几个平台,把平台名称依次空格隔开写上即可:

    APP_ABI := armeabi armeabi-v7a x86 x86_64 mips mips_64 arm64_v8a

    此时我们用命令行进入项目的jni文件夹的父母路,比如一般jni情况下jni文件夹位于ProjectName/ModuleName/src/main/jni,那么我们就进入这个main,然后此时执行ndk-build进行编译。

    如果提示没有ndk-build这个命令,那么你需要从http://developer.android.com下载ndk并且在电脑上配置PATH。

    ndk-build执行完后会在libs下生成所有平台的so文件夹,文件夹里面是需要的libiconvzbar的so文件。

    编译Zbar和libiconv时遇到的错误解决

    编译过程中可能发现如下错误,请按照修改方案修改即可。

    1、libiconv-1.15/jni/libcharset/lib/localcharset.c:51:24: error: langinfo.h: No such file or directory
    打开libiconv-1.15/libcharset/config.h文件,搜索#define HAVE_LANGINFO_CODESET,大概在14行,把这行注释了即可:

    /* #define HAVE_LANGINFO_CODESET 1 */

    2、…c undeclaired…
    打开libiconv-1.15/libcharset/lib/localcharset.c,搜索到函数get_charset_aliases(),大概在124行。

    大概在195行左右,有一个int c;(没有的话你可以搜索int c;),把这个一行代码移动到get_charset_aliases()开头:
    移动之前:
    移动之前

    移动之后:
    移动之后

    zbar的jar包

    现在so文件有了,剩下的就是怎么调用so中的函数来识别条码/二维码了,首先把zbar/java下在net.sourceforge.zbar包和里边的java文件拷贝到你的项目的java目录下,大概结构如下:
    这里写图片描述

    当然你也像这样使用源码,也可以把这几个类打包成jar包。

    调用Zbar识别二维码

    现在全部都编译好了,jar文件也有了,我们可以调用jar中封装的方法来识别二维码了:

    byte[] imageData = ...;
    
    Image barcode = new Image(size.width, size.height, "Y800");
    barcode.setData(imageData);
    // 指定二维码在图片中的区域,也可以不指定,识别全图。
    // barcode.setCrop(startX, startY, width, height);
    
    String qrCodeString = null;
    
    int result = mImageScanner.scanImage(barcode);
    if (result != 0) {
        SymbolSet symSet = mImageScanner.getResults();
        for (Symbol sym : symSet)
            qrCodeString = sym.getData();
    }
    
    if (!TextUtils.isEmpty(qrCodeString)) {
        // 成功识别二维码,qrCodeString就是数据。
    }

    如何和相机结合使用等复杂操作这里不再说了,一个完整的项目我放到Github上了:
    https://github.com/yanzhenjie/android-zbar-sdk

    山高水远,江湖再见!


    版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

    展开全文
  • ZBAR BAR CODE READER ==================== ZBar Bar Code Reader is an open source software suite for reading bar codes from various sources, such as video streams, image files and raw intensity ...
  • ZBar 条码扫描 For Android

    千次下载 热门讨论 2012-05-19 13:10:17
    ZBar 条码扫描 For Android,扫描成功后增加了震动和声音。
  • 二维码zbar类库

    2017-08-19 14:32:34
    二维码zbar类库
  • zbar使用

    千次阅读 2020-02-24 18:33:08
    zbar一个开源的C语言实现的条形码和二维码识别库,可以用在任何平台。 编译 下面给出gn的写法,其他的编译工具,例如ndk和cmake,拿去参考改改就好了。这里还包括了libiconv的编译。 # zbar project: ...


    zbar一个开源的C语言实现的条形码和二维码识别库,可以用在任何平台。

    编译

    下面给出gn的写法,其他的构建工具,例如ndk和cmake,拿去参考改改就好了。这里还包括了libiconv的编译。

    # zbar project: https://github.com/ZBar/ZBar
    # libiconv project: https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
    # libiconv build: https://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio
    
    config("zbar_config") {
      include_dirs = [
        "include",
        "zbar",
        "zbar/decoder",
        "libiconv/include",
      ]
    
      if (is_win) {
        cflags = [
          "/wd4018",
          "/wd4245",
          "/wd4005",
          "/wd4706",
          "/wd4554",
          "/wd4090",
          "/wd4206",
          "/wd4146",
          "/wd4142",
          "/wd4310",
          "/wd4389",
          "/wd4295",
          "/wd4013",
          "/wd4189",
        ]
      } else {
        cflags = [
          "-Wno-sign-compare",
          "-Wno-unused-variable",
          "-Wno-tautological-compare",
          "-Wno-unused-function",
          "-Wno-shift-op-parentheses",
          "-Wno-logical-not-parentheses",
          "-Wno-logical-op-parentheses",
          "-Wno-bitwise-op-parentheses",
          "-Wno-parentheses-equality",
          "-Wno-incompatible-pointer-types",
          "-Wno-implicit-function-declaration",
          "-Wno-int-conversion",
          "-Wno-unused-const-variable",
        ]
      }
    
      defines = [
      ]
    }
    
    config("public_zbar_config") {
      include_dirs = [
        "include",
      ]
    }
    
    static_library("libiconv") {
      sources = [
        "libiconv/iconv.c",
        "libiconv/localcharset.c",
        "libiconv/relocatable.c",
      ]
    
      include_dirs = [
        "libiconv",
        "libiconv/include",
      ]
    
      configs += [ ":zbar_config" ]
    }
    
    static_library("zbar") {
      sources = [
        "zbar/jpeg.c",
        "zbar/img_scanner.c",
        "zbar/decoder.c",
        "zbar/image.c",
        "zbar/symbol.c",
        "zbar/convert.c",
        "zbar/config.c",
        "zbar/scanner.c",
        "zbar/error.c",
        "zbar/refcnt.c",
        "zbar/video.c",
        "zbar/video/null.c",
        "zbar/decoder/code128.c",
        "zbar/decoder/code39.c",
        "zbar/decoder/code93.c",
        "zbar/decoder/codabar.c",
        "zbar/decoder/databar.c",
        "zbar/decoder/ean.c",
        "zbar/decoder/i25.c",
        "zbar/decoder/qr_finder.c",
        "zbar/decoder/pdf417.c",
        "zbar/qrcode/bch15_5.c",
        "zbar/qrcode/binarize.c",
        "zbar/qrcode/isaac.c",
        "zbar/qrcode/qrdec.c",
        "zbar/qrcode/qrdectxt.c",
        "zbar/qrcode/rs.c",
        "zbar/qrcode/util.c",
      ]
    
      configs += [ ":zbar_config" ]
      public_configs = [ ":public_zbar_config" ]
    
      deps = [
        ":libiconv",
        "//third_party:jpeg",
      ]
    
      if (is_win) {
        libs = [ "winmm.lib" ]
        defines = [
          "WEBRTC_WIN",
        ]
      }
    }
    
    executable("scan_image") {
      sources = [ "examples/scan_image.c" ]
      configs += [ ":zbar_config" ]
      deps = [ ":zbar", "//third_party/libpng" ]
    }
    

    使用

    实际上不管什么类型的数据zbar都会把他转换为Y800类型的YUV数据,也就是只有Y值的YUV数据。所以不管我们要做相机的二维码识别还是做图片(BMP\JPG)的二维码识别最终都是要把数据转换为Y800类型。可以参考zbar的demo-scan_image.c
    我基于zbar实现了Android、iOS、Windows、Mac平台的摄像头和图片识别,都是基于此实现的,摄像头识别这块是跟平台相关的(采集),剩下的流程都是一样的。图片识别所有平台都是一样的。

    其他功能

    1. zbar的识别率高低和二值化处理,图片处理有关
    2. 要实现移动端平台自动放大需要修改一下zbar提供更多的数据
    展开全文
  • ZBar zbar-ctypes 包是 ZBar 条码扫描器库的包装器。 ** 此软件包仅适用于 Python 3。 ** 扫描 PIL 图像 import zbar scanner = zbar.ImageScanner() # disable qr code scanning (all symbol formats on by ...
  • ZBar和glog的使用

    2020-10-17 21:46:05
    ZBar和glog的使用,ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和glog的使用ZBar和...
  • ZBar4Android 一个基于 ZBar的Android二维码扫描项目
  • ZBar-test ZBar 二维码阅读器库测试 该分支尝试读取存储 URL 的二维码并将其传递给 UrlOPENER。
  • zBar jar包

    2016-06-23 18:01:19
    二维码zBar jar包
  • zbar动态库

    2018-10-17 23:44:07
    zbar编译生成的lib 和dll,含x86和x64,还有其他的附加库,方便快捷。
  • zbar javascript版本

    2018-03-06 15:20:47
    zbar javascript版本,支持前端解析二维码,供有需要的朋友使用
  • 64ZBar.zip

    2020-06-19 15:48:52
    windows64 zbar能用,动态库
  • c++ zbar.pdf

    2021-09-14 10:40:25
    c++ zbar.pdf
  • zbar环境

    2021-02-03 15:10:34
    包含目录 库目录 链接器-输入 libzbar-0.lib libzbar64-0.lib 代码 #include<zbar.h> using namespace zbar;
  • c++ zbar

    2020-11-26 15:35:36
    //#include <opencv2/opencv.hpp>...zbar.h> // //using namespace std; //using namespace zbar; //添加zbar名称空间 //using namespace cv; // //int main(int argc,char*argv[]...
  • Zbar64.zip

    2020-04-07 10:58:32
    编译好的二维码解码库Zbar64位,支持中文,包含debug和release,解压即用。已包含其依赖库libiconv。程序中使用:#include <zbar>。有问题联系tomato3351@sina.com
  • ubuntu zbar

    2018-10-06 15:55:22
    下载zbar: wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz 编译zbar: $tar xvf zbar-0.10.tar.gz $cd zbar-0.10 $ ./configure --enable-shared --disable-video --without-...
  • zbar源码包

    2016-07-26 07:33:21
    zbar的源码,可用于二维码检测等功能
  • Zbar-wasi 在网络浏览器中扫描条形码 该库允许Web浏览器使用Webassembly和WASI后端扫描条形码。 为什么? 与大多数Webassembly项目不同,此项目是使用WASI而不是Emscripten进行编译的。 针对WASM二进制文件大小...
  • ZBAR

    2019-10-25 17:42:37
    1./** read back an image in the format written by zbar_image_write() * @note TBD */ extern zbar_image_t *zbar_image_read(char *filename); 2. /** set config for indicated symbology (0 for all) to...
  • zbar管理员可能还有其他职业,这些职业比调整zbar使其在Windows上可靠运行更重要。 我们采用DirectShow技术访问视频设备。 第一个版本还没有完成,但我们已经接近它了。 测试版本和源代码可供下载。 欢迎测试人员和...
  • ZbarCode 用Zbar库实现的Android扫一扫 集成: 下载打开源码项目,大佬可以先运行看下效果,如果需集成,就使用箭头得扫一扫Module 大佬进入自己的Android studio项目,直接点击File->New->Import Module 选择Demo文件...
  • android 调用Zbar

    热门讨论 2014-03-13 10:42:03
    Zbar 是开源,android 可以调用他的库,用来读取一维码,二维码,速度比Zxing快,其实Zbar也可以被VC,C++,Java调用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,219
精华内容 2,087
关键字:

zbar