zbar使用

zbar使用文章目录编译使用其他功能 zbar 一个开源的 C 语言实现的条形码和二维码识别库 可以用在任何平台 编译下面给出 gn 的写法 其他的编译工具 例如 ndk 和 cmake 拿去参考改改就好了 这里还包括了 libiconv 的编译 zbarproject https github com ZBar ZBar libiconvproj https ftp gnu org pub

文章目录

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//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提供更多的数据


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205395.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午6:07
下一篇 2026年3月19日 下午6:08


相关推荐

  • java locale 中国_Java描述语言、国家和地理的类——Locale

    java locale 中国_Java描述语言、国家和地理的类——LocaleLocale类代表一个特定的地理、语言和国家环境。一个Locale的实例对象本身不会验证它代表的语言和国家地区信息是否正确,只是向一些对国家和语言、地理等比较敏感的类提供国家地区语言信息,这些类有DateFormat、NumberFormat等等。Locale类可以有四种方式来创建对象,三种通过构造器,一种通过字段。创建Locale对象的三种构造方法:Locale(Stringlanguage)…

    2022年7月8日
    29
  • 进程(p)运行,idle与PyCharm的不同

    进程(p)运行,idle与PyCharm的不同子进程的调用 idle 与 pycharm 不同 idle 只能用 p run pycharm 可以用 p run 也可以用 p start

    2026年3月18日
    3
  • pycharm突然很卡_pycharm启动慢

    pycharm突然很卡_pycharm启动慢使用pycharm时常出现 theIDEisrunninglowonmemory的问题,表示pycharm这款IDE使用内存不足,需要在系统内存充足的情况下扩充IDEmemory。首先,打开File—>Appearance—>WindowsOptions—>选中showmemmoryindicator—>OK右下角会出现 …

    2022年8月27日
    8
  • 奔驰新款CLA接入豆包大模型

    奔驰新款CLA接入豆包大模型

    2026年3月12日
    2
  • Ldap服务器搭建流程

    Ldap服务器搭建流程之前搭建了个Ldap服务器,今天想要再另一台机器上搭建的时候发现很多地方还是会遇到坑,于是将搭建过程梳理记录下来,避免以后再遇到坑一、安装配置ldap1、安装ldap    yuminstall-yopenldap*2、拷贝配置文件    cp/usr/share/openldap-servers/slapd.conf.obsolete/etc/openldap/slapd…

    2022年5月14日
    44
  • mysql截取最后一个字符_sql截取最后一位

    mysql截取最后一个字符_sql截取最后一位转载:MySQL字符串截取函数:left(),right(),substring(),substring_index()。还有mid(),substr()。其中,mid(),substr()等价于substring()函数,substring()的功能非常强大和灵活。1.字符串截取:left(str,length)selectleft(‘2017-11-14T16:00:00.0…

    2022年10月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号