夏の自由研究の話なんですが,結構やばいです.図で説明します.
![ALT: 090918_qr01.jpg 090918_qr01.jpg](../assets_c/2009/09/090918_qr01-thumb-400x393-3529.jpg)
こはカメラから取り込んで,二値化処理をしたQRコードと思われる部分です.うまくとれます.これはok.
![ALT: 090918_qr02.jpg 090918_qr02.jpg](../assets_c/2009/09/090918_qr02-thumb-400x400-3531.jpg)
これは二値化して切り取ったQRコード(傾いている)を射影変換したもの.コードはOpenCVです.うまくいってます.これもok.後は,これをQRコードとしてデコードすればよろしい.
![ALT: 090918_qr03.jpg 090918_qr03.jpg](../assets_c/2009/09/090918_qr03-thumb-400x457-3533.jpg)
これがいただけない.射影変換したQRコードをネガポジ反転して,QRコードデコーダであるlibdecodeqrに放り込んだ様子.ステータスコード2009(16進数だよ!)はエラーコードによりますと,以下の通りです.
- QR_IMAGEREADER_DECODED 0x2000
- QR_CODEDATA_NOT_SUPPORT_ECI 0x0001
- QR_CODEDATA_UNRECOVERABLE 0x0008
重傷じゃん!どうすっかなー?こんなにきれいに復元できても,サポート外とか・・・.んなバカなって話ですよ.特定のQRコードしか読めないのかしら??それとも,このQRコードが亜種なのか.QRコードデコーダを自力で書かなくてはならないのだろうか・・・.ボスケテ!
200909200947追記:
nitechの先生からコメント頂きました.P906iでデコードできないそうです.iPhone 3GSの場合,QRコードが悪いのかリーダが悪いのか特定できないくらいに性能が悪いので,旧ケータイのW53CAを使ってみた.結果としては「24」とデコードできました.うーん.これはこれで困る結果だ.どうしよう・・・.