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

43
ババババババババ ババババババババババババ2014/05/17 @ バババババババ ババババババ

Upload: toshiaki-yamanishi

Post on 04-Aug-2015

65 views

Category:

Documents


4 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 910

11

12

13

数 9

パ A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 9 1

パ A B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 9 1 2

パ A B A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 9 1 2 3

パ A B A A

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 9 1 2 3 4

パ A B A A B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 9 1 2 3 4 5

パ A B A A B B

具体例(順方向の場合)

1 2 3 4 5 6 7 8 910

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 910

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 910

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 910

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 910

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 910

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 910

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 910

11

12

13

数 4

パ B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0

パ B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0 9

パ B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0 9 8

パ B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0 9 8 7

パ B B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0 9 8 7 6

パ B B B B B B

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

11

12

13

数 4 0 9 8 7 6

パ B B B B B B

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

具体例(逆方向の場合)

1 2 3 4 5 6 7 8 910

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 910

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 910

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 910

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 910

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 910

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 910

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 910

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+JavaS

criptでバーコードリーダーをつくってみました!

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

END