討論區: English (Thread #16019)

Hi, Yanbe. question for 0.8 version (2007-09-03 08:08 by 匿名 #31970)

I have read your 0.7.2 verison of qr code decoder. I wanna ask what kind of changes occurred in the 0.8 version.
and for this project, especially for the decoder, what algorithms did you use. would you please list the reference? I am also doing research on improve ment of 2d barcode recognize for my dissertation . I need your help.

Thank you very much

Regard Toby

回覆 #31970×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

RE: Hi, Yanbe. question for 0.8 version (2007-09-03 14:11 by yanbe #31980)

Hi

About changes of version 0.8, please read this document.
http://sourceforge.jp/projects/qrcode/document/qrcode_0.8_-_Changes/

And I'm using following reference.

QR Code specification
JIS-X-0510(2004) (Japanese)
http://sourceforge.jp/projects/qrcode/document/qrcode_specification_ja/en/1/qrcode_specification_ja.pdf

Basically, I obey the method of JIS-X-0510 how to recognize QR Code symbol from its image. But some un-documented method like QRCodeImageReader#applyCrossMaskingMedianFilter are used for improving decoding performance.

Some tables like QRCodeSymbol#numRSBlocks and QRCodeSymbol#numErrorCorrectionCode are ported from this specification. It is essential for process after decoder recognized symbol.

ISO/IEC18004
(English version of above)
It will be useful for most developers. But it costs over $100. Perhaps it is available on library.

ReedSolomon error correction code
I ported C version of ReedSolomon code below into Java.
http://sourceforge.net/projects/rscode

Yusuke Yanbe
回覆: #31970

回覆 #31980×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

RE: Hi, Yanbe. question for 0.8 version (2007-09-04 00:52 by drhu00 #31994)

Yanbe,
A Question: Why other twp eccPerRSBlock not divided by 2 in correctDataBlocks? There is some reason for it?
回覆: #31980

回覆 #31994×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 02:41 by yanbe #31999)

drhu,

Because (as in comment) QR Code specification JIS-X-0510(2004), p30 says,

"in order to protect from miss-error correction, number of error correction shold be less than half of error correction code".

And I confirmed that this modification improve decoding rate slightly with my local test correction.
回覆: #31994

回覆 #31999×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

RE: RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 02:54 by drhu00 #32000)

I know why you divided by 2. But what I don't know why you don't divided by 2 for other similar ones in //symbol has 2 types of RS blocks
Should we treat the same? I mean also divide by 2 in ReedSolomon corrector = new ReedSolomon(shorterRSBlocks[i], eccPerRSBlock);
and
ReedSolomon corrector = new ReedSolomon(longerRSBlocks[i - numShorterRSBlocks], eccPerRSBlock);
?
回覆: #31999

回覆 #32000×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

RE: RE^2: Hi, Yanbe. question for 0.8 version (2007-09-04 03:24 by yanbe #32002)

> ReedSolomon corrector = new ReedSolomon(shorterRSBlocks[i], eccPerRSBlock);
and
> ReedSolomon corrector = new ReedSolomon(longerRSBlocks[i - numShorterRSBlocks], eccPerRSBlock);
?

Ah, you are right. We have to treat them same.
These part also should be divided by 2

Then I will update release files soon.

Thank you.
回覆: #32000

回覆 #32002×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入