20140517 なんでも勉強会 にゃんたこす_rev02

43
バーコードは何故 逆さまでも読み取れるのか? 2014/05/17 @なんでも勉強会 にゃんたこす

Upload: toshiaki-yamanishi

Post on 04-Aug-2015

441 views

Category:

Documents


1 download

TRANSCRIPT

バーコードは何故 逆さまでも読み取れるのか?

2014/05/17 @なんでも勉強会

にゃんたこす

アジェンダ的な・・・

• バーコードが逆でも読めるのは何故? –バーコードはよくできたコード体系

• バーコードリーダーを作ってみた –なんとWEBカメラとWEBブラウザだけで作れる

素朴な疑問

• 普段はあまり意識しないけれど、バーコードは 逆さでも正しく読める。(店では気にもしないけど)

なぜか??

よくある誤解1

【誤解】

バーコードの線は、先頭の線と末尾の線とで

微妙に幅が違うのでわかるようになっている。

よくある誤解1

【誤解】

バーコードの線は、先頭の線と末尾の線とで

微妙に幅が違うのでわかるようになっている。

【解説】

いや、そんなこともない。

(右図参照)

図の出典: インクジェットプリンターのKGK紀州技研工業|豆知識_バーコードの話 https://www.kishugiken.co.jp/reading/barcode/barcode2.html

よくある誤解2

【誤解】

バーコードの末尾数字(チェックサム)でチェック

している。エラーなら逆向きと判断し、読み直す。

よくある誤解2

【誤解】

バーコードの末尾数字(チェックサム)でチェック

している。エラーなら逆向きと判断し、読み直し。

【解説】

どちらから読んでもエラーにならない場合は

どうするの?そもそもチェックサムは逆さ読み

検出の用途に使うものではない。(ノイズ検出)

とりあえず、 バーコードを解読してみよう!

図の出典: インクジェットプリンターのKGK紀州技研工業|豆知識_バーコードの話 https://www.kishugiken.co.jp/reading/barcode/barcode2.html

図の出典: JANコードの詳細 | 株式会社エイポック http://www.a-poc.co.jp/howto/howto_words_barcode-JAN.html

表の出典: 裏辺研究室 第106回 これがバーコードの意味だ!(1) http://www.uraken.net/zatsugaku/zatsugaku_106.html

バーコードの解読方法

図の出典: インクジェットプリンターのKGK紀州技研工業|豆知識_バーコードの話 https://www.kishugiken.co.jp/reading/barcode/barcode2.html

図の出典: JANコードの詳細 | 株式会社エイポック http://www.a-poc.co.jp/howto/howto_words_barcode-JAN.html

表の出典: 裏辺研究室 第106回 これがバーコードの意味だ!(1) http://www.uraken.net/zatsugaku/zatsugaku_106.html

バーコードの解読方法

まずは順方向から、 具体的に、

バーコードを解読してみよう!

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9

パ A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1

パ A B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2

パ A B A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3

パ A B A A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3 4

パ A B A A B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3 4 5

パ A B A A B B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5

パ - A B A A B B

センターバーを読み込んだときに、一桁目の文字が表に存在する(この場合4)

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6

パ - A B A A B B C

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7

パ - A B A A B B C C

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7 8

パ - A B A A B B C C C

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7 8 9

パ - A B A A B B C C C C

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7 8 9 0

パ - A B A A B B C C C C C

具体例(順方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7 8 9 0 4

パ - A B A A B B C C C C C C

今度は逆方向から、 バーコードを解読してみよう!

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4

パ B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0

パ B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0 9

パ B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0 9 8

パ B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0 9 8 7

パ B B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0 9 8 7 6

パ B B B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 0 9 8 7 6

パ B B B B B B

センターバーを読み込んだときに、一桁目の文字が表に存在しないので、逆方向だとわかる

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 6 7 8 9 0 4

パ C C C C C C

・・・なのでひっくり返す (※ Bはひっくり返るとC)

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 6 7 8 9 0 4

パ A C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 6 7 8 9 0 4

パ A B C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 6 7 8 9 0 4

パ A B A C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3 6 7 8 9 0 4

パ A B A A C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3 4 6 7 8 9 0 4

パ A B A A B C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 9 1 2 3 4 5 6 7 8 9 0 4

パ A B A A B B C C C C C C

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 9 10 11 12 13

数 4 9 1 2 3 4 5 6 7 8 9 0 4

パ - A B A A B B C C C C C C

センターバーを読み込んだときに、一桁目の文字が表に存在する(この場合4)

バーコードは逆でも読めることが、 お分かりいただけたであろうか?

・・・というわけでつくってみた

• WEBカメラ+HTML5+JavaScriptで バーコードリーダーをつくってみました!

http://yamanity.blog.ocn.ne.jp/nyantacos/upload/barocodereader_js/index.html

END