バーコード解析
画像からバーコードをオンラインで認識・デコード。画像のアップロード、ドラッグ&ドロップ、貼り付けに対応。すべてブラウザ内で処理
バーコード画像をここにドラッグ&ドロップ
PNG、JPG、GIF、BMP、WebP などの一般的な画像形式に対応
Ctrl+V でクリップボードから画像を貼り付けることもできます
バーコード解析とは?
バーコード解析は、バーコード画像を元の内容に復元する技術ツールです。バーコードを含む画像をアップロードすると、ツールが自動的にバーコードに格納された数値やテキスト情報を認識・デコードします。CODE128、EAN-13、EAN-8、CODE39、UPC-A、UPC-E、Codabar、ITF など、一般的な1次元バーコード形式に対応し、QRコード、Data Matrix、PDF417、Aztec などの2次元コード形式とも互換性があります。このツールは完全にブラウザ内で動作し、画像がサーバーに送信されることはありません。
使い方
使い方
- アップロードエリアをクリックしてバーコード画像を選択、または画像をエリアにドラッグ&ドロップ
- Ctrl+V(MacではCmd+V)でクリップボードから画像を貼り付けることもできます
- バーコードの内容を自動で検出・デコード
- デコード結果が形式とコンテンツタイプとともに下部に表示されます
- 「結果をコピー」ボタンでデコード結果をコピー、リンクの場合は直接URLを開けます
デコードのヒント
- バーコード全体が映っている鮮明でコントラストの高い画像を使用してください。ぼやけ、光の反射、切れ、強い遠近歪みは認識精度を下げます。
- URLや製品コードがデコードされた場合は、本番記録に使う前にリンク先や識別子を検証してください。
利用シーン
仕組み
1次元バーコード(UPC、EAN、Code 39、Code 128、ITF、Codabar)はバーとスペースの幅で数字・文字・ASCII全範囲をエンコードする平行バーの配列です。2次元バーコード(QR Code、Data Matrix、PDF417、Aztec)は静寂ゾーン上に配置されたモジュール(セル)の2次元パターンで、通常は角に3つの位置検出パターンを備えて向きを識別します。デコードはその逆プロセス、すなわち画像→前処理→シンボルの位置特定→バー/スペース幅の計測(または2次元グリッドのサンプリング)→エンコーディングテーブルの参照→チェックサムによる検証です。 画像処理パイプラインが重要です。ソース画像はグレースケール変換(輝度 = 0.299R + 0.587G + 0.114B、Rec. 601の重み付け)を経た後、大域的または適応的閾値処理(大津の方法はクラス間分散を最大化する閾値を選択し、十分な照明のスキャンの大半に有効です。Sauvolaの適応的閾値は不均一な照明により適しています)が適用されます。エッジ検出(Sobelカーネル:3x3のGxとGy)でバーの垂直方向の遷移を検出し、それらの線分にHough変換を適用して向きを求め、連結成分解析でシンボルのバウンディング矩形を特定します。シンボルの周囲にある必須の余白(QR CodeではX寸法の10倍、Code 128ではバー幅の9倍)である静寂ゾーンが検証された後、シンボルは有効な候補として受け入れられます。 1次元コードの場合、デコーダーはX寸法(最も狭いバーの幅、単位長さ)を計測し、バーとスペースの幅をXの倍数として読み取ります。Code 39の1文字は9本のバーと9個のスペース(うち1つは文字間ギャップ)で構成され、9要素のうち3つがワイド(1を表す)、6つがナロー(0を表す)です。Code 128の1文字は11モジュールで、スタートパターン、6つのエンコードされたバー/スペース、ストップパターンからなります。したがって各文字は11モジュールであり、11 x 文字数 + 13(スタート + ストップ + チェック + 静寂ゾーン分)がシンボルの幅となります。Code 128には3つのエンコーディングセットがあります:A(大文字 + 制御文字)、B(大文字 + 小文字)、C(ペア数字00-99)で、セット切替コードによりエンコーダーは部分文字列ごとに最も効率的なセットを選択できます。 2次元コードではアルゴリズムが異なります。QR CodeはReed-Solomon誤り訂正(ECレベルL/M/Q/Hでそれぞれ7%、15%、25%、30%の冗長性を追加)と設定可能なマスキングパターン(8種類のうち1つを、ペナルティスコアが最小になるものをエンコーダーが選択)を使用します。マスキング後、ビットストリームは21x21(Version 1)から177x177(Version 40)の正方形グリッドに配置されます。角の3つの7x7ファインダーパターンと内部コーナーの5x5アライメントパターンが向きとスケールを提供します。Data Matrixは2辺にL字型の実線ボーダー、残り2辺に明暗交互パターンを持つ同様のレイアウトです。PDF417は積層型リニアコード(17モジュール幅、最大90行)で、米国の運転免許証や航空機の搭乗券に使用されます。 本ページではZXing(Zebra Crossing)ライブラリを使用しています。ZXingはGoogle ZXingプロジェクト由来のApache-2.0オープンソースマルチフォーマットデコーダーです。ZXingはパイプライン全体(位置特定→前処理→デコード)を実行し、既知のシンボロジーを順番に試行します。UPC-A、UPC-E、EAN-8、EAN-13、Code 39、Code 93、Code 128、ITF、Codabar、QR Code、Data Matrix、PDF417、Aztecに対応しています。2次元コードでは良好な照明条件下で1080p写真の成功率は約99%です。1次元コードではパースペクティブ、ブレ、グレアがバー幅を歪めるため、やや低く(約85-95%)なります。本ツールは画像ファイル入力(アップロード、ドラッグ&ドロップ、クリップボード貼り付け)のみに対応しており、カメラのライブスキャン機能は提供していません。 チェックサムが重要です。UPC/EANはモジュロ10のチェックデジット(奇数位置の数字の合計 x 3 + 偶数位置の数字の合計を10で割った余りを10から引いた値)を使用します。Code 128はモジュロ103のチェックキャラクターを使用します。Code 39はチェックデジットを必要としませんが、物流用途ではmod-43チェックが推奨されます。QR CodeはReed-Solomon ECを使用し、ECデコーダーが訂正可能なエラー数を超えるエラーを検出した場合、デコードは失敗します。本ページではライブラリが提供する場合に、チェックサム不一致、静寂ゾーンの不足、マスク競合などのデコード失敗の理由を表示します。
- 1次元バーコード(UPC、EAN、Code 39、Code 128、ITF)はバー/スペース幅でデータをエンコードし、2次元コード(QR Code、Data Matrix、PDF417、Aztec)はモジュールの2次元グリッドでエンコードします。いずれも有効性のために単位幅の約10倍の静寂ゾーンが必要です。
- 画像処理パイプライン:Rec. 601グレースケール(0.299R + 0.587G + 0.114B)→大津またはSauvola閾値処理→Sobelエッジ検出→Hough変換による向き検出→連結成分解析によるシンボルのバウンディングボックス特定。
- Code 128には3つのエンコーディングセットがあります:A(大文字 + 制御文字)、B(大文字 + 小文字)、C(ペア数字00-99)。セット切替コードによりエンコーダーは部分文字列ごとに最もコンパクトなセットを選択でき、UPC-Aの'123456789012'はCode 39より短くパッケージされます。
- Code 39:1文字あたり9本のバーと9個のスペース、3つがワイド(1)、6つがナロー(0)。スタート/ストップキャラクターは'*'。オプションのmod-43チェックデジット。自動車産業、国防、米国政府(MIL-STD-1189)で広く使用されています。
- Code 93はCode 128の前身で、1文字あたり9モジュール(6データ + スタート/ストップ)、47種のユニークキャラクター。多くの用途でCode 128に置き換えられましたが、一部のカナダの薬局やUSPSアプリケーションでまだ見られます。
- QR Code:L/M/Q/HレベルのReed-Solomon EC(7%/15%/25%/30%の冗長性)、8種のマスキングパターン、21x21から177x177モジュール(Version 1〜40)。角の3つの7x7ファインダーパターンが向きを提供し、大きなバージョンでは5x5アライメントパターンがパースペクティブ歪みを補正します。
- Data Matrix:2辺にL字型の実線ボーダー、残り2辺に明暗交互パターン。電子機器や医薬品の小型マーキングに使用(ISO/IEC 16022)。
- ZXing(Zebra Crossing、Apache-2.0、Google):本ページで使用するオープンソースマルチフォーマットデコーダー。UPC-A/E、EAN-8/13、Code 39/93/128、ITF、Codabar、QR Code、Data Matrix、PDF417、Aztecに対応。本ツールは画像ファイル入力(アップロード、ドラッグ&ドロップ、クリップボード貼り付け)のみに対応し、カメラのライブスキャンは提供しません。
- チェックサム:UPC/EANはmod-10、Code 128はmod-103、Code 39はオプションのmod-43、QR CodeはReed-Solomon ECを使用。チェックサム不一致は画像が破損していることを示すものであり、データが間違っていることを意味するものではありません。
使用例
商品バーコードの認識
スーパーの商品写真をアップロードして EAN-13 バーコードをデコードすると 6901234567890 が得られ、商品名・メーカー・価格などを検索できます追跡番号の取得
配送ラベルのバーコードを撮影してデコードすると SF1234567890 のような追跡番号が得られ、配送業者のサイトで配送状況を確認できます書籍の ISBN デコード
本の裏表紙のバーコードをスキャンすると 9787111234567 のような ISBN がデコードされ、書籍データベースで詳細情報を検索できますよくある質問
どのバーコード形式をデコードできますか?
一般的な1Dコード(CODE 128、EAN-13、EAN-8、UPC-A、UPC-E、CODE 39、CODE 93、ITF(Interleaved 2 of 5)、Codabar)に加え、QRコード、Data Matrix、Aztec、PDF417などの2Dコードに対応します。本ページはブラウザ上でZXingライブラリを使い、アップロードした1枚の画像からこれらすべての形式を検出・デコードします。
デコードのために画像はアップロードされますか?
いいえ。デコードはWebAssemblyまたは純粋なJavaScriptを介してブラウザ内で完結します。画像をドロップするとそのバイトはローカルで読み込まれ、サーバーには何も送信されません。ブラウザのネットワークタブで確認できます。
なぜバーコードがデコードされないのですか?
よくある原因:画像がぼやけている、バーコードの回転角度がデコーダーの許容範囲を超えている、コントラストが低すぎる、反射があるなどです。バーコードの近くでトリミングし、明るさやコントラストを上げ、コード全体で200〜300ピクセル以上の幅を確保してください。直射光下で撮影された光沢のある印刷コードはしばしば失敗します。
受け付ける入力形式は何ですか?
PNG、JPEG、GIF、WebP、BMPに対応しています。ファイルアップロード、ドラッグ&ドロップ、クリップボードからの貼り付けに対応します。画像はデコード用に隠れキャンバスに読み込まれ、サーバーには送信されません。
結果には何が含まれますか?
デコードされたテキスト内容と、検出されたバーコード形式が含まれます。デコード結果がURLの場合、新しいタブで開くボタンが表示されます。文字数と形式名も表示されます。
EAN-13のチェックディジットは検証されますか?
ZXingは、形式のチェックディジットを含む内部チェックを通過した場合にのみ結果を返します。デコードに失敗した場合、本ページは「バーコードが検出されませんでした」と表示し、判読不能な画像かチェックサムエラーかを区別はしません。
1枚の画像から複数のバーコードをデコードできますか?
本ページは画像中で最も鮮明なコードを検出します。複数のバーコードを含む画像については、それぞれを個別にトリミングして別々にアップロードすると、最も信頼性の高い結果が得られます。