さまざまな読み取りモードで QR コードを読み取る方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

2025年、より多くの製品がデジタル化され、常時オンラインアクセスが可能になるにつれ、QRコードの読み取りは日常的な作業となりました。 必要なデータをコンパクトな読み取り専用のインプリントに保存することは今や標準となっており、開発者はさまざまな環境でその情報を抽出する効果的な方法を必要としています。

IronQRはQRコードに3つの読み取りオプションを提供しています。

このハウツーガイドでは、3つの方法すべてについて、わかりやすい例を挙げて説明します。 まだご覧になっていない方は、画像からQRコードを読み取る方法、または独自のQRコードを作成する方法について、以前のガイドをご覧ください。

QRコードのスキャンモードを理解する

IronQRはQrScanMode列挙によって3つの強力なスキャンモードを提供します:

  • オートモードQrScanMode.Auto):機械学習による検出と基本的なスキャンアルゴリズムの両方を組み合わせて、最大限の精度と信頼性を実現します。
  • Only Basic Scan Mode (QrScanMode.OnlyBasicScan): QRコードがはっきりと見える場合に、従来の画像処理技術を使用して高速で信頼性の高いスキャンを行います。
  • 検出モデルモード (QrScanMode.OnlyDetectionModel):機械学習を活用してQRコードの位置を検出し、座標データの抽出に最適です。

各スキャニング方法を詳しく見ていきましょう。


基本的なスキャン モードのみ。

ベーシックスキャンモードのみ、機械学習を使用しない従来の画像処理アルゴリズムを使用します。 この方法は、QRコードがはっきりと見え、うまく配置されていれば、迅速かつ効率的です; しかし、3つの角の四角が読み取れれば、破損したQRでも機能します。

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-basic.cs
using System.Linq;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.IO;

 // Load the image
var bmp = AnyBitmap.FromFile("damaged-qr.png");

// Create scan input using Only Basic Scan mode
var input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan);

// Get the result
var result = new QrReader().Read(input).FirstOrDefault();

// Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value);
Imports System.Linq
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.IO

' Load the image
Dim bmp = AnyBitmap.FromFile("damaged-qr.png")

' Create scan input using Only Basic Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan)

' Get the result
Dim result = (New QrReader()).Read(input).FirstOrDefault()

' Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value)
$vbLabelText   $csharpLabel

スキャン入力

破損したQRコード.

保存されたテキストファイル

テキストファイル...

自動スキャンモード

オートスキャンモードはデフォルト(QrScanModeの場合)であり、最も汎用性の高いオプションです。 機械学習による検出と従来のスキャニングアルゴリズムを自動的に組み合わせ、さまざまな画像条件において可能な限り最良の結果を提供します。

この例では、画像が読み込まれ、Autoモードが有効になっています。 次に、画像をスキャンし、見つけたすべてのQRコードをリストに集めます。最後に、resultsコレクションを調べ、コンソールに各値のテキストを出力します(この場合はURLのみ)。

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-auto.cs
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;

// Load the image file
var bmp = AnyBitmap.FromFile("cup.png");

// Create scan input using Auto Scan mode
var input = new QrImageInput(bmp, QrScanMode.Auto);

// Scan and read all QR codes
var results = new QrReader().Read(input);

// Initialize a counter to track the number of QR codes
int count = 1;

// Loop through each discovered QR code
foreach (var result in results)
{
    Console.WriteLine($"QR {count}: {result.Value}");
    count++;
}
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing

' Load the image file
Dim bmp = AnyBitmap.FromFile("cup.png")

' Create scan input using Auto Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.Auto)

' Scan and read all QR codes
Dim results = New QrReader().Read(input)

' Initialize a counter to track the number of QR codes
Dim count As Integer = 1

' Loop through each discovered QR code
For Each result In results
    Console.WriteLine($"QR {count}: {result.Value}")
    count += 1
Next
$vbLabelText   $csharpLabel

スキャン入力

Cafeのウェブサイトへのリンクが貼られたカップ

コンソールの表示

カフェのウェブサイトのURLは、IronQR経由で写真をスキャンした後に記録されます。

ウェブサイトのURLのコンソール表示.

検出モデルモード

検出モデルモードは、画像内のQRコードの位置を検出するために特別に機械学習を使用します。 このような品質により、空間解析やコンピュータ・ビジョンのアプリケーションでは非常に貴重なものとなります。 使用する座標系は(0, 0)を原点とします。

一般的に、QRスキャナーは3つのファインダーパターンに依存する標準的なデコードアルゴリズムを使用しますが、このモデルはIDの4つの頂点すべてをキャプチャします。 resultオブジェクトは、Pointsコレクションを含み、それを反復して位置データを取得します。

コードは、画像内の位置値の検出を示すために、前の例のカップの写真を再利用しています。

BRACKET-i-OPEN--この関数によって返される座標は、左上、右上、左下、最後に右下という厳密な"ジグザグ"シーケンスで格納されます。

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-detection-model.cs
using System;
using System.Linq;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;

// Load the image
var bmp = AnyBitmap.FromFile("cup.png");

// Create scan input using Detection Model mode
var input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel);

// Read QR code
var result = new QrReader().Read(input).FirstOrDefault();

// Print position data
if (result != null)
{
    if (result.Points != null)
    {
        foreach (var point in result.Points)
        {
            Console.WriteLine($"Point: X={point.X}, Y={point.Y}");
        }
    }
}
Imports System
Imports System.Linq
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing

' Load the image
Dim bmp = AnyBitmap.FromFile("cup.png")

' Create scan input using Detection Model mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel)

' Read QR code
Dim result = (New QrReader()).Read(input).FirstOrDefault()

' Print position data
If result IsNot Nothing Then
    If result.Points IsNot Nothing Then
        For Each point In result.Points
            Console.WriteLine($"Point: X={point.X}, Y={point.Y}")
        Next
    End If
End If
$vbLabelText   $csharpLabel

ラベル付きカップ画像

ラベル付きカップ

ラベル付きコンソール

ラベル付きコンソール

スキャン方法の比較

機能 (QRScanMode) ベーシックスキャン (OnlyBasicScan) オートスキャン (Auto) 検出モデル (OnlyDetectionModel)
出力 デコードされたテキスト(値) デコードされたテキスト(値) 座標(ポイント)
アルゴリズム 従来の翻訳のみ ハイブリッド(ML+トラディショナル) 機械学習のみ
フォーカス スピード 読みやすさ / 検索性 ローカリゼーション / コンピュータビジョン

結論

IronQRの3つのスキャンモードはどのようなQRコード読み取りシナリオにも柔軟に対応します:

  • 自動スキャン:一般的な使用における最大限の精度と信頼性
  • Basic Scan: 高品質画像のためのスピードと効率性
  • 検出モデル:空間アプリケーションのための位置認識

各手法の長所を理解することで、QRコード読み取り実装を特定の要件に合わせて最適化することができます。 包括的なデータ抽出、高速処理、正確な位置検出など、IronQRにお任せください。

より多くの例と詳細なAPI情報については、IronQRドキュメントをご覧いただくか、GitHubのコード例をご覧ください。

よくある質問

QRコードの読み取りには、どのようなスキャンモードがありますか?

IronQRは自動スキャン、手動スキャン、バッチスキャンなど様々なスキャンモードを提供し、様々なシナリオでQRコードを効率的に読み取ります。

C#プロジェクトでQRコードスキャンを実装するにはどうすればよいですか?

IronQRライブラリを統合することで、C#プロジェクトにQRコードスキャンを実装することができます。

QRコードスキャンにIronQRを使うメリットは何ですか?

IronQRは高精度、高速処理、様々なスキャンモードをサポートしており、C#プロジェクトでのQRコードスキャンに最適です。

IronQRを使って一度に複数のQRコードを読み取ることはできますか?

IronQRはバッチスキャンモードに対応しており、複数のQRコードを同時に読み取ることができます。

IronQRは様々なソースからのQRコードのスキャンに対応していますか?

IronQRは画像、PDF、ライブカメラフィードなど様々なソースからQRコードをスキャンすることができ、開発者に柔軟性を提供します。

IronQRは異なる向きのQRコードを扱えますか?

IronQRはQRコードの向きに関係なく正確に読み取るよう設計されており、信頼性の高いスキャン結果を保証します。

IronQRの自動スキャンモードはどのように機能しますか?

IronQRの自動スキャンモードは、QRコードをインテリジェントに検出し、手動入力の必要なく読み取り、スキャンプロセスを合理化します。

IronQRをQRコードスキャンに使うにはどのようなプログラミングスキルが必要ですか?

C#プログラミングの基本的な知識があれば、IronQRをQRコードスキャニングに使用することができます。

IronQRの試用版はありますか?

IronQRは試用版を提供しており、開発者は購入前に機能やスキャンモードを試すことができます。

IronQRライブラリはどこでダウンロードできますか?

IronQRライブラリはIron Softwareのウェブサイトからダウンロードできます。

Ahmad Sohail
フルスタックデベロッパー

Ahmadは、C#、Python、およびウェブ技術に強い基盤を持つフルスタック開発者です。彼はスケーラブルなソフトウェアソリューションの構築に深い関心を持ち、デザインと機能が実際のアプリケーションでどのように融合するかを探求することを楽しんでいます。

Iron Softwareチームに参加する前、Ahmadは自動化プロジェクトやAPI統合に取り組み、パフォーマンスの向上と開発者の体験向上に注力してきました。

彼の自由時間には、UI/UXのアイデアを試したり、オープンソースツールに貢献したり、時折テクニカルライティングやドキュメンテーションに取り組んで、複雑なトピックを理解しやすくすることを目指しています。

準備はできましたか?
Nuget ダウンロード 58,270 | バージョン: 2026.2 リリース