====== カメラバーコード読取り ====== ===== 開発 ===== ^ソフト^内容^ |ZXing|バーコード読取り| |OpenCVSharp 3.0|カメラ取得| ==== ZXing(ゼブラクロッシング) ==== Google が開発して公開している、様々な一次元や二次元のバーコードの生成/操作ができるオープンソースライブラリ。\\ https://github.com/zxing/zxing QRコードの認識位置を取得するようにライブラリを修正する。\\ [[http://enlosph.hatenablog.com/entry/2015/09/14/193143|急角度・急斜面に対応するQRデコーダ(ZXing編)]] * Result.Text : デコード結果の文字列 * Result.Points[*] : 0-2はファインダパタン(L字で順に取得する.つまり[1]が折れた箇所),3以降は位置合わせパタン === ResultPointの取得順番 === ResultPoint では左下、左上、右上、右下(位置補正)の順または右下、左下、右上、左上(位置補正)の順に取得 === OpneCVのPointで取得位置指定する場合の順番 === 左上、左下、右下、右上の順 === 参照 === * [[http://dsas.blog.klab.org/archives/52107940.html|「ZXing QR コードスキャナー」の内部処理を追う]] * [[http://d.sunnyone.org/2015/09/zxingnet.html|ZXing(.Net)のバーコード認識率を上げる方法]] ==== OpenCVSharp ==== OpenCVSharp自体は、日本の方が開発している。\\ [[http://schima.hatenablog.com/entry/20090616/1245081217|OpenCvSharpを使う その1 (準備)]] OpenCVSharp APIリファレンス\\ https://shimat.github.io/opencvsharp_docs/html/d75eb659-6335-53f6-af7a-81814a21ab7f.htm OpenCVリファレンス(日本語)\\ http://opencv.jp/reference_manual === 導入と使い方 === * [[http://schima.hatenablog.com/entry/2013/12/15/110513|OpenCvSharpをつかう その17(NuGetで導入)]] * [[http://schima.hatenablog.com/entry/2015/08/17/203901|OpenCvSharpをつかう その23 (OpenCV 3.0対応)]] * [[http://schima.hatenablog.com/entry/20090903/1251978952|OpenCvSharpをつかう その6 (PictureBoxIpl)]] * [[http://sourcechord.hatenablog.com/entry/2016/08/11/121553|OpenCvSharp3を使ってみた]] === カメラ === * [[http://robot-factory.blogspot.jp/2013/10/c-web.html|C#で画像処理-WEBカメラの使用]] * [[https://tocsworld.wordpress.com/2014/02/26/c%E3%81%AB%E3%82%88%E3%82%8Busb%E3%82%AB%E3%83%A1%E3%83%A9%E6%93%8D%E4%BD%9Cwpf%E7%B7%A8/|C#によるUSBカメラ操作(WPF編)]] * [[https://debuyan.wordpress.com/2016/05/22/opencvsharp3%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6web%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3/|OpenCVSharp3を使ってWebカメラのキャプチャ]] * [[https://blogs.yahoo.co.jp/mikewanko2/13932243.html|がんばるC# (OpenCV)]] === 画像処理 === * [[http://schima.hatenablog.com/entry/20090621/1245595172|OpenCvSharpを使う その3 (グレースケールに変換)]] * [[http://schima.hatenablog.com/entry/2013/10/19/085019|(OpenCvSharpをつかう その15(適応的閾値処理)]] * [[https://bi.biopapyrus.jp/ia/opencv/threshold.html|画像の閾値処理(2 値化)]] * [[http://www.tech-tech.xyz/archives/opencv_threshold.html|OpenCV(Python)2値化の使い方]] === 射影変換(透視投影) === * [[http://sourcechord.hatenablog.com/entry/2017/02/20/233042|OpenCvSharpで透視投影の補正]] === Mat型 === OpenCVの画像はMat型変数で表現されます。Matという名前は matrix で行列の略です。その為、行列なので(行、列)の順に指定されるため、一般の画像指定の(x, y)ではない。※x, yの順番が逆なことに注意!! ^定数^内容^ |CV\_8UC1|8ビット、符号なし、1チャンネルのデータ| |CV\_8UC3|8ビット、符号なし、3チャンネルのデータ| ※CV_8Uは0から255の整数 1画素はB, G, Rの順に格納されている。 * [[http://www.wakayama-u.ac.jp/~chen/opencv/opencv2.html|2.画像の簡単操作]] * [[http://gori-naru.blogspot.jp/2012/11/mat.html|知っておきたいMatのゴリ知識]] === 画像アクセス === * [[http://sourcechord.hatenablog.com/entry/2016/08/15/235654|OpenCvSharp3入門]] * [[http://www.84kure.com/blog/2014/07/13/c-%E3%83%93%E3%83%83%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%81%AB%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB%E5%8D%98%E4%BD%8D%E3%81%A7%E9%AB%98%E9%80%9F%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9/|[C#] ビットマップにピクセル単位で高速にアクセスするには (GetPixel/SetPixel vs BitmapData 速度比較)]] * [[http://d.akiroom.com/2012-06/opencv-pixel-read-write-get-set/|OpenCVでピクセルにアクセスする方法4つ]] === MATとBITMAP相互変換 === * [[http://nc30mtd.oops.jp/blog/2015/01/opencvsharpiplimagebitmap.html|OpenCvSharpでのIplImageとBitmapの相互変換]] * [[http://micchysdiary.blogspot.jp/2011/10/bitmaptomat-mattobitmap-opencv-java-api.html|BitmapToMat & MatToBitmapを使う際の注意点 OpenCV Java API for Android]] ==== QRバーコード仕様 ==== QRコード(Quick Responce Code)は1994年にデンソーウェブの開発した、マトリックス型2次元コードの一種です。名前の通り、高速読取を目的に開発されました。\\ [[https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp|QRコードとは - KEYENCE]] QRコードの誤り訂正レベルの判別方法\\ [[http://www.ryusuke.net/archives/765|QRコードの誤り訂正レベルの判別方法~アイカツスターズ!のQRコードを分析してみる]] 誤り訂正レベル一覧\\ ^誤り訂正レベル^シンボルに対する面積^ビット^ |L|7%|01| |M|15%|00| |Q|25%|11| |H|30%|10| 下図の14と13の部分を見て\\ □□(白,白)だったら、誤り訂正レベルH\\ □■(白,黒)だったら、誤り訂正レベルQ\\ ■□(黒,白)だったら、誤り訂正レベルM\\ ■■(黒,黒)だったら、誤り訂正レベルL {{:it技術:dotnet:qrcode01.png?400|}} ===== その他 ===== ==== 参照 ==== * [[http://hiroyky.hatenablog.com/entry/2017/02/23/005957|HololensでQRコードリーダを作ってみた.]] * [[http://www.dogodemo.net/redmine/projects/dogodemo/wiki/WEB%E3%82%AB%E3%83%A1%E3%83%A9%EF%BC%86_ZBar_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F_%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%83%BC%EF%BC%86%E8%87%AA%E5%8B%95%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3_%E3%82%A2%E3%83%97%E3%83%AA|WEBカメラ& ZBar を使った キャプチャー&自動スキャン アプリ]]