如何在MatLab中改进解码QR码的代码?

问题描述 投票:0回答:1

我正在使用wrap-up packageZxing's code来解码MatLab中的QR码。我有300张带QR码的图像,但只能读取300张中的120张。当我尝试Zxing's decode site时,可以读取更多代码。我搜索了一下,将我在MatLab中使用的代码与Zxing GitHub source code中的代码进行了比较。我发现代码有点不同,如下所示。有人还建议这种改变会有所不同(here)。 (我想这只是在new之前添加一个BufferedImageLuminanceSource。对吧?)

我不知道Java。所以我问我如何改进MatLab中的以下步骤?我也在Zxing的源代码中看到,它使用了许多不同的方法来尝试读取代码。如何将其添加到我的MatLab代码中?如果做太多工作,有人可以建议我一个链接,以便我自己可以学习如何改进吗?

来自ExchangeFile for MatLab:

jimg = im2java2d(img);
source = BufferedImageLuminanceSource(jimg);
bitmap = BinaryBitmap(HybridBinarizer(source));

来自Zxing的代码:

    private static void processImage(BufferedImage image,
                                   HttpServletRequest request,
                                   HttpServletResponse response) throws IOException, ServletException {

    LuminanceSource source = new BufferedImageLuminanceSource(image);
    BinaryBitmap bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
    Collection<Result> results = new ArrayList<>(1);

我不知道从Zxing的GitHub和FileExchange这里输入代码是否正确。所以,如果这样做是不对的,请告诉我。谢谢!

编辑

也许我的问题不是那么清楚。总结一下我的问题:我发现一些QR图像无法在MatLab的包装脚本中解码,但可以在Zxing在线解码器中读取。可能是造成不同结果的原因,因为MatLab中的包装脚本使用与Zxing在线解码器相同的功能?

enter image description here

java matlab qr-code zxing
1个回答
0
投票

来自this page

只需要一个JAR?

如果您只需要预先构建的JAR文件,则始终可以从Maven release repository中找到已编译的资源,包括最近的快照/每晚构建。

按照上述链接,您应该能够下载运行jar所需的ZXing包。您在Mathworks File Exchange上找到的包装器脚本也指向同一个方向,查看位于test_qr.m文件顶部的注释:

%请从这里下载并构建zxing%的核心和javase部分 - http://code.google.com/p/zxing/

由于Google Code已经关闭,原始链接已经死亡,但它会将您重定向到相同的GitHub存储库。

获得jar文件后,将它们与属于该脚本的Matlab文件一起放入文件夹中。确保javaaddpath中的test_qr.m指令正确指向jar包,并且您应该拥有使脚本正常工作的所有内容。

如果您下载的jar文件的编译版本与Matlab安装使用的版本不同(为了检查这一点,只需从命令窗口运行命令version -java),由于您必须下载源文件,因此事情将变得更加复杂。 ZXing并在Java IDE之类的Eclipse中以适当的版本编译它们。但是,我们不要对此进行太多讨论,因为在演示时我们不知道你是否会偶然发现这类问题。

© www.soinside.com 2019 - 2024. All rights reserved.