2017-11-10 4 views
0

Ich habe vor kurzem decode_qr von this FEX submission verwendet, um meinen QR-Code zu dekodieren. Es lief ganz gut ein oder zwei Wochen, aber heute ist es ein Fehler für mich generieren:Nicht definierte Funktion oder Variable 'BufferedImageLuminanceSource'

Undefined function or variable 'BufferedImageLuminanceSource' 
Error in decode_qr (line 34); 
source = BufferedImageLuminanceSource(jig); 

Ich habe gerade überprüft die zxing repository und festgestellt, dass einige Dateien vor einigen Tagen aktualisiert wurden. Ich vermute also, dass der Pfad einiger importierter Dateien aus dem Paket geändert wurde.

Hier ist der Import von Code aus der decode_qr Funktion:

import com.google.zxing.qrcode.*; 
import com.google.zxing.client.j2se.*; 
import com.google.zxing.*; 
import com.google.zxing.common.*; 
import com.google.zxing.Result.*; 

Wie kann ich es wieder zu arbeiten? Muss ich die Importpfade ändern?

+0

Auch wenn das Repository aktualisiert wurde, sollten Sie keine Auswirkungen auf Ihre lokale Umgebung haben, es sei denn, Sie haben eine neue Version manuell heruntergeladen. Haben Sie in den letzten 2 Wochen etwas anderes geändert, zum Beispiel die Aktualisierung Ihrer MATLAB-Version? Es scheint mir, als ob dein lokaler [Java Klassenpfad] (https://www.mathworks.com/help/matlab/ref/javaclaspath.html) zurückgesetzt wurde. –

+0

@ Dev-iL Nein. Ich habe meinem Matlab nichts getan. Aber du erinnerst mich an eines: Ich kann seit gestern meine neue Add-On-Toolbox nicht mehr in meinem vorherigen Add-On-Ordner haben. Also denke ich, dass mein Standard-Add-On-Ordner geändert wurde, obwohl ich nicht weiß, warum und wie. Ich habe es nie selbst verändert. Wie sollte ich es zurück ändern? – Ziming

+0

Aber wenn es das Problem meines Java-Klassenpfads ist, dann kann ich dieses Problem beheben, indem ich das Paket deinstalliere und es erneut installiere, oder? Aber die Neuinstallation hilft überhaupt nicht. – Ziming

Antwort

0

Hier ist, was ich getan habe, um es zu arbeiten (Win 10 x 64, R2017b, ZXing 3.3.1):

  1. die neuesten prebuilt .jar Artefakte aus Sonatype Heruntergeladen:

  2. hinzugefügt, um die Dateien auf meinen dynamischen Java-Classpath mit javaaddpath:

    javaaddpath('G:\core-3.3.1.jar'); 
    javaaddpath('G:\javase-3.3.1.jar'); 
    % Verify using: javaclasspath('-dynamic'); 
    

    Note:

    Um Ordner zu dem statischen Pfad hinzufügen, die MATLAB beim Start geladen wird, erstellen javaclasspath.txt Datei, wie beschrieben in Static Path.

  3. einige Beispiel QR-Code generiert unitag.io mit: Sample QR

  4. versucht, es zu entschlüsseln Lior Shapiras mit decode_qr:

    >> out = decode_qr(qr) 
    out = 
    
        'https://stackoverflow.com/users/3372061/dev-il' 
    

Voll Code:

+1

Es funktioniert. Vielen Dank! – Ziming

Verwandte Themen