2017-12-18 17 views
0

wrap-up packageZxing's codeで、MatLabのQRコードをデコードしています。 QRコード付きの300枚の画像がありますが、300枚のうち120枚しか読み取れません。 Zxing's decode siteを試してみると、より多くのコードを読むことができます。私はちょっと調べて、MatLabで使ったコードとZxing GitHub source codeのコードを比較しました。下に示したように、コードに少し違いがあることがわかりました。誰かが、この変更が違いをもたらすとも示唆した(here)。 (私はBufferedImageLuminanceSourceの前にnewを追加するだけだと思っていますよね?)MatLabでQRコードをデコードするコードを改善するにはどうすればよいですか?

私はJavaについて考えていません。だから私はMatLabの次のステップをどのように改善できるのか尋ねています。 Zxingのソースコードでは、コードを読み取ろうとしてさまざまな方法を使用していました。これを私のMatLabコードにどのように追加できますか?あまりにも多くの作業が必要な場合、誰かが私にリンクを提案して、自分でそれを改善する方法を学ぶことができますか? MatLabのためExchangeFileから

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オンラインデコーダと同じ機能を使用するため、異なる結果が得られる理由は何ですか? this pageから

enter image description here

答えて

0

ちょうどJARが必要ですか?あなただけ事前に構築されたJARファイルが必要な場合は

は、あなたは常に最新の スナップショットは、ナイトリービルド/含め、Maven release repositoryから リソースをコンパイル見つけることができます。上記のリンクに続き

、あなたはZXingを実行するために必要なjarパッケージをダウンロードすることができるはずです。

%ここ から%をzxingのコアとするJavaSEパーツをダウンロードしてビルドしてください:あなたはMathworks File Exchangeで見つかったラッパースクリプトもtest_qr.mファイルの上に置かれたコメントを見て、同じ方向にあなたを指します - http://code.google.com/p/zxing/

Google Codeがシャットダウンされているので、元のリンクは死んでいるが、それは同じGitHubリポジトリにリダイレクトされます。

jarファイルを取得したら、スクリプトに属するファイルMatlabとともにフォルダに配置します。test_qr.mjavaaddpathディレクティブがjarパッケージを正しく指していることを確認してください。スクリプトを動作させるためにはすべてが必要です。

あなたがダウンロードしたjarファイルがMATLABインストールが使用する(これはちょうどあなたのコマンドウィンドウからコマンドversion -javaを実行してチェックする)ものとは異なるバージョンでコンパイルされている場合は、ダウンロードする必要があるため、物事ははるかに複雑になりますZXingのソースファイルを開き、のようなJava IDE内の適切なバージョンでコンパイルします。しかし、これについてあまり議論しないでください。あなたがこの種の問題に直面するかどうかは現在わかりません。

+0

お返事ありがとうTommaso!しかし、私はちょっと混乱しています。実際にFile ExchangeのラッパーパッケージはMatLabでは動作しますが、Zxingのオンラインデコーダでは動作しません。つまり、MatLabで読み込めなかった画像はオンラインデコーダで読むことができます。そのため、使用しているコードを比較し、MatLabのメソッドを改良することを考えています。 – Ziming

+0

ここでの主なポイントは、ZxingのデコーダがQRコードを解読するためのより良い方法を使用していると思いますこれは最近更新されていますが、MatLabのラッパーパッケージは2010年以降に更新されていないため、古い関数を使用していました。しかし、私は正しいかどうかは分かりません。 – Ziming

+0

問題は、ラッパーが単なるラッパーであることです。つまり、ファイル交換時のスクリプトの唯一の目的は、ZxingパッケージをMatlabで実行することです。それはZxingの出力を向上させることができるMatlabの部分を改善することではありません... –

関連する問題