野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21008|回复: 13

二维码识别例程库太大了

[复制链接]
发表于 2016-12-25 12:15:55 | 显示全部楼层 |阅读模式
硬件:F429-挑战者

下载了官方的例程《1-野火【摄像头-OV5640】模块资料》
光编译了QR-core库就占了700多KB,网上加emWin和其他代码就不够用了

      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Library Name

     93062       4406     763975         25    3148288      44616   QR-Core.lib
      2414        120          0         20          0       2252   mc_w.l

    ----------------------------------------------------------------------
     95538       4526     763978         48    3148288      46868   Library Totals


有小一点的库吗?
回复

使用道具 举报

发表于 2016-12-25 17:12:25 来自手机 | 显示全部楼层
如果只需要识别二维码可以小一点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-26 11:48:52 | 显示全部楼层
cancore 发表于 2016-12-25 17:12
如果只需要识别二维码可以小一点

移植了个开源库,不到15K
https://github.com/dlbeer/quirc
不过只能识别二维码,而且速度慢很多

你们的库是zxing移植的吗?能否提供一个仅识别二维码的库给我?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-3 17:08:13 | 显示全部楼层
blandodo 发表于 2016-12-26 11:48
移植了个开源库,不到15K
https://github.com/dlbeer/quirc
不过只能识别二维码,而且速度慢很多

已联系野火技术服务,东莞的杨工给了答复。
例程中提供的QR-Core.lib文件也是委托第三方开发的,不能提供源码,但是明确了基于zbar移植。
zbar源码可以通过改宏定义的方式开关支持的条码类型,关闭不需要的解码类型可以降低库的大小
看了下zbar代码,依赖一些linux头文件,移植需要一段时间,暂时使用quirc了。
回复 支持 反对

使用道具 举报

发表于 2017-4-24 20:44:32 | 显示全部楼层
blandodo 发表于 2016-12-26 11:48
移植了个开源库,不到15K
https://github.com/dlbeer/quirc
不过只能识别二维码,而且速度慢很多

为什么不是stm32的工程文件啊,我看到了makefile。。。。难道是给arm用的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-25 09:24:31 | 显示全部楼层
一只风筝 发表于 2017-4-24 20:44
为什么不是stm32的工程文件啊,我看到了makefile。。。。难道是给arm用的?

不是STM32的工程啊,要移植一下,这个移植比较简单的,搬到MDK编译一下就可以,编译选项要开C99
回复 支持 反对

使用道具 举报

发表于 2017-5-2 09:13:44 | 显示全部楼层
blandodo 发表于 2016-12-26 11:48
移植了个开源库,不到15K
https://github.com/dlbeer/quirc
不过只能识别二维码,而且速度慢很多

直接替换就可以了

QR-Core.zip

87.68 KB, 下载次数: 296

回复 支持 反对

使用道具 举报

发表于 2017-6-17 13:49:38 | 显示全部楼层
blandodo 发表于 2017-4-25 09:24
不是STM32的工程啊,要移植一下,这个移植比较简单的,搬到MDK编译一下就可以,编译选项要开C99

好难啊...看不懂
回复 支持 反对

使用道具 举报

发表于 2017-6-17 13:50:19 | 显示全部楼层
cancore 发表于 2017-5-2 09:13
直接替换就可以了

具体怎么弄??替换到哪?这个也有249k呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-19 21:06:32 | 显示全部楼层
本帖最后由 blandodo 于 2017-6-19 22:11 编辑
cancore 发表于 2017-5-2 09:13
直接替换就可以了

测试可用。感谢!原来的例程采用的是RGB565作为二维码解码函数void get_image(uint32_t src_addr,uint16_t img_width,uint16_t img_height);的输入
想用RAW输出的数据,测试发现无法解析,想确认一下这个函数src_addr入口的图像必须是按照RGB565格式排列的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-19 21:09:36 | 显示全部楼层
本帖最后由 blandodo 于 2017-6-19 21:11 编辑
一只风筝 发表于 2017-6-17 13:50
具体怎么弄??替换到哪?这个也有249k呢

野火资料里带了一个二维码的代码工程呢,程序源码-》4-扩展模块例程->识别二维码-》程序,工程名:QR_Decoder_OV5640,里面有个目录保存着QR解码的静态库文件:QR-Core.lib,原来的 编译完是700多K,用版主新提供的静态库文件小很多了。我的路径是F:\STM32F429_资料\3-程序源码\4-扩展模块例程\识别二维码\1.程序\QR_Decoder_OV5640\Libraries\QR_Decoder\。
编译之后的大小没有200多K的。我编译完大小显示如下:
linking...
Program Size: Code=72644 RO-data=16664 RW-data=220 ZI-data=908300  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-21 12:15:06 | 显示全部楼层
本帖最后由 blandodo 于 2017-6-21 12:16 编辑
cancore 发表于 2017-5-2 09:13
直接替换就可以了

这个小一点的包解码能力稍弱,解码结果把我字符串一部分吃掉了,能否修复一下?
使用原来大的QR-core解码结果:
<<-QRType:->> [QR-Code]
<<-data:->> [01161207 4 0 1 0 0 230 680 185.2]
换成小的解码结果:
<<-QRType:->> [QR-Code]
<<-data:->> [ 4 0 1 0 0 230 680 185.2]
前面8位被吃掉了。。。
回复 支持 反对

使用道具 举报

发表于 2017-6-22 09:14:21 | 显示全部楼层
理论上不会影响解码能力的,你的二维码贴上来看看
回复 支持 反对

使用道具 举报

发表于 2020-10-16 10:20:04 | 显示全部楼层
cancore 发表于 2017-5-2 09:13
直接替换就可以了

这个lib虽然小了很多,但是占用的Heap_Size很大,要达到0x0001F000 ???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 06:34 , Processed in 0.050262 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表