二维码识别检测的几大开源库比较

本文对比分析了BoofCV、OpenCV、Quirc、ZBar和ZXing五大开源QR码检测库的性能,涵盖检测精度、速度及在不同条件下的稳定性,为开发者选择合适的库提供依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. QR码的几大开源库对比:

二维码已经进入人们的日常生活中,尤其是日本Denso Wave公司1994年发明的QR码(Quick Response),由于其易于检测、写入信息量大、提供强大的纠错机制,应用最为广泛,可说是名副其实的第一大图像识别应用。

 

 

QR码的检测和解码成为很多应用开发的必备,面对众多的开源库,到底哪一种是比较好的呢?

BoofCV的作者Peter Abeles对较有影响力的五大开源库中检测算法进行了比较,值得大家参考。

  • 参与比较的开源库:

BoofCV (Ver. 0.33):一种用Java实现的开源、实时的计算机视觉库;

http://boofcv.org/

OpenCV (Ver. 4.0.1):OpenCV 4.0后加入了QR码检测和解码功能,C++实现;

http://opencv.org/

Quirc (Feb 1, 2018. SHA 307473db):一种专门面向QR码的检测和解码库,C语言实现;

ZBar (Ver. 0.10):一种被广泛使用的包含各种条码检测识别的专门库,支持各种平台,支持Python, Perl, C++等语言;

ZXing (Ver. 3.3.3):一种面向Java Android开发的各种条码检测识别库,用Java开发,支持多种语言;

  • 图像分类:

为全方位比较各个开源库检测QR码的性能,作者收集了在应用中大量常见的情况。

包括模糊、阴影、高光、扭曲、被涂损等15种情况,如下图:

 

各类别包含的图像数:

 

  • 检测结果:

作者以检测到的位置和标签位置重合10%为阈值定义检测成功,计算true positives, false positives, true negatives, 与 false negatives,并最终计算F-Measure来比较检测结果。

分类别的检测结果统计:

不分类别的全局统计:

可见,没有哪个库处于统治地位完全比其他库更好,但BoofCV在大多数情况下为最好或者接近次好。Zbar在大多数类别下比ZXing好,但在ZXing最擅长的类别,Zbar不够好。quirc在一般情况下都表现良好,但在其他库表现最好的类别却不是很好。OpenCV则是毫无疑问总是最差。

  • 检测速度结果比较:

 

在哪一类别的表现均一致,ZXing是最快的库,BoofCV次之。OpenCV的速度表现很稳定,最慢。。。

  • 结论:

选择哪个库取决于你的应用,如果二维码比较标准建议BoofCV,它的检测精度高而且速度也很好,如果二维码有污损或外观变化,ZXing是不错的选择。如果只能使用C++,则推荐Zbar。

(反正OpenCV是不被推荐的!)

其中Zbar的环境配置博客:Zbar开源项目二维码识别(测试)

1. 在前端增加右下角的询盘表单弹窗: 可以使用以下代码实现,在 WordPress 主题的 functions.php 文件中添加以下代码: ```php add_action('wp_footer', 'my_custom_popup'); function my_custom_popup() { ?> <div id="popup-wrapper"> <div id="popup-content"> <h2>询盘表单</h2> <form> <label for="name">姓名:</label> <input type="text" id="name" name="name"> <label for="email">电子邮件:</label> <input type="email" id="email" name="email"> <label for="message">信息:</label> <textarea id="message" name="message"></textarea> <button type="submit">提交</button> </form> </div> </div> <style> #popup-wrapper { position: fixed; bottom: 0; right: 0; width: 300px; height: 300px; background-color: #fff; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); z-index: 9999; } #popup-content { padding: 20px; } </style> <?php } ``` 这段代码会在网站的底部右侧增加一个 300x300 的弹窗,内部包含一个表单。你可以根据需要更改弹窗的大小和表单的内容。 2. 在前端的右侧增加在线悬浮窗口: 可以使用以下代码实现,在 WordPress 主题的 functions.php 文件中添加以下代码: ```php add_action('wp_footer', 'my_custom_chat_widget'); function my_custom_chat_widget() { ?> <div id="chat-widget"> <a href="https://wa.me/8518588629881" target="_blank"> <img src="https://www.example.com/wp-content/uploads/whatsapp-icon.png" alt="WhatsApp Chat"> </a> </div> <style> #chat-widget { position: fixed; bottom: 20px; right: 20px; z-index: 9999; } </style> <?php } ``` 这段代码会在网站的底部右侧增加一个 WhatsApp 聊天的悬浮窗口。你需要将图片的 URL 替换为你自己的图片,也可以根据需要更改悬浮窗口的位置和样式。 3. 后台的排版: 如果你需要在后台增加一些统计数据,可以使用 WordPress 提供的 REST API 和图表插件实现。 首先需要安装一个图表插件,例如 WPForms Charts and Graphs。 然后在 functions.php 文件中添加以下代码: ```php add_action('wp_enqueue_scripts', 'my_custom_enqueue_scripts'); function my_custom_enqueue_scripts() { if (is_admin()) { wp_enqueue_script('my-custom-script', get_template_directory_uri() . '/js/my-custom-script.js', array('jquery'), '1.0', true); } } add_action('admin_menu', 'my_custom_admin_menu'); function my_custom_admin_menu() { add_menu_page('Dashboard', 'Dashboard', 'manage_options
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值