如何使用不同的掃描模式讀取二維碼

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

到 2025 年,隨著越來越多的產品走向數位化和始終在線訪問,讀取二維碼將成為一項常規任務。 將必要資料儲存在緊湊的唯讀映像中已成為標準做法,開發人員需要有效的方法在不同的環境中提取這些資訊。

IronQR 為二維碼提供 3 種讀取選項,每個選項都針對特定的使用情境而設計。

本操作指南將透過清晰的範例解釋這三種方法。 如果您還沒有看過,請查看先前關於從圖像中讀取二維碼或編寫自己的二維碼的指南。

了解二維碼掃描模式

IronQR 透過QrScanMode枚舉提供三種強大的掃描模式:

-自動模式( QrScanMode.Auto ):結合機器學習偵測和基本掃描演算法,以實現最高的準確性和可靠性。 -僅基本掃描模式( QrScanMode.OnlyBasicScan ):當二維碼清晰可見時,使用傳統的影像處理技術進行快速可靠的掃描。 -偵測模型模式QrScanMode.OnlyDetectionModel ):利用機器學習技術偵測二維碼位置,非常適合擷取座標數據

讓我們詳細了解每種掃描方法。


僅基本掃描模式

只有基本掃描模式使用傳統的影像處理演算法,而沒有使用機器學習。 當二維碼清晰可見且位置恰當時,這種方法快速且有效率; 但是,如果三個角落上的方塊清晰可見,即使二維碼損壞,它仍然可以正常工作。

: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);
$vbLabelText   $csharpLabel

掃描輸入

損壞的二維碼

已儲存的文字文件

文字檔案

自動掃描模式

自動掃描模式是預設模式(適用於QrScanMode ),也是功能最全面的選項。 它會自動將機器學習偵測與傳統掃描演算法結合,從而在各種影像條件下提供最佳結果。

此範例展示如何載入影像並啟動Auto模式。 然後,它掃描圖像,並將找到的每個二維碼收集到一個列表中。最後,它遍歷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++;
}
$vbLabelText   $csharpLabel

掃描輸入

帶有咖啡館網站連結的杯子

控制台顯示

透過 IronQR 掃描照片後,咖啡館網站的 URL 會被記錄下來。

控制台顯示網站網址

檢測模型模式

偵測模型模式專門利用機器學習技術來偵測影像中的二維碼位置。 這項特性使其在空間分析和電腦視覺應用上具有不可估量的價值。 它所使用的座標係原點位於(0, 0)

一般而言,QR 掃描器使用依賴三個查找圖案的標準解碼演算法,該模型捕獲 ID 的所有四個頂點。 result物件包含一個Points集合,您可以透過遍歷該集合來檢索位置資料。

程式碼重用了上一個範例中的杯子照片,以演示如何偵測影像中的位置值。

此函數傳回的座標以嚴格的"之字形"順序儲存:左上、右上、左下,最後是右下。

: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}");
        }
    }
}
$vbLabelText   $csharpLabel

帶標籤的杯子圖片

帶標籤的杯子

標籤的控制台

標籤控制台

掃描方法比較

功能( QRScanMode基本掃描( OnlyBasicScan掃描)自動掃描( Auto檢測模型( OnlyDetectionModel檢測模型)
輸出解碼後的文字(值)解碼後的文字(值)座標(點)
演算法僅限傳統方式混合型(機器學習+傳統)僅限機器學習
重點速度可讀性/檢索定位/電腦視覺

結論

IronQR的三種掃描模式可靈活應對任何二維碼讀取情境:

-自動掃描:適用於一般用途,具有最高的準確性和可靠性 -基本掃描:速度快、效率高,影像品質高。 -偵測模型:空間應用的位置感知

透過了解每種方法的優勢,您可以根據自身需求最佳化二維碼讀取實作。 無論您需要全面的資料擷取、閃電般的處理速度或精確的位置偵測,IronQR 都能滿足您的需求。

有關更多範例和詳細的 API 信息,請訪問IronQR 文件或瀏覽GitHub 上的程式碼範例

常見問題解答

讀取二維碼有哪些不同的掃描模式?

IronQR 提供自動、手動和大量掃描等多種掃描模式,可在不同場景下有效讀取二維碼。

如何在C#專案中實現二維碼掃描?

您可以透過整合 IronQR 庫在 C# 專案中實現二維碼掃描,該程式庫提供了易於使用的讀取二維碼的方法,並支援不同的掃描模式。

使用 IronQR 進行二維碼掃描有哪些好處?

IronQR 具有高精度、快速處理能力,並支援不同的掃描模式,使其成為 C# 專案中二維碼掃描的多功能選擇。

IronQR 是否可以同時讀取多個二維碼?

是的,IronQR 支援批次掃描模式,可同時讀取多個二維碼,進而提高效率。

IronQR是否支援掃描來自不同來源的二維碼?

IronQR 可以掃描來自各種來源的二維碼,包括影像、PDF 和即時攝影機畫面,為開發人員提供了靈活性。

IronQR 能否處理不同方向的二維碼?

是的,IronQR 的設計旨在準確讀取任何方向的二維碼,確保可靠的掃描結果。

IronQR的自動掃描模式是如何運作的?

IronQR 的自動掃描模式可以智慧地偵測和讀取二維碼,無需手動輸入,從而簡化掃描過程。

使用 IronQR 進行二維碼掃描需要哪些程式設計技能?

具備 C# 程式設計的基礎知識即可使用 IronQR 進行二維碼掃描,因為該程式庫提供了簡單直接的整合和使用方式。

IronQR是否有可供測試的試用版?

是的,IronQR 提供試用版,讓開發者在購買前測試其功能和掃描模式。

我可以在哪裡下載IronQR庫?

您可以從 Iron Software 網站下載 IronQR 庫,您也可以在該網站上找到文件和支援資源。

艾哈邁德·索海爾
全端開發工程師

Ahmad 是一位全端開發人員,精通 C#、Python 和 Web 技術。他對建立可擴展的軟體解決方案有著濃厚的興趣,並樂於探索如何在實際應用中實現設計與功能的完美結合。

在加入 Iron Software 團隊之前,Ahmad 曾從事自動化專案和 API 整合工作,專注於提高效能和開發者體驗。

在空閒時間,他喜歡嘗試 UI/UX 設計理念,為開源工具做出貢獻,偶爾還會涉足技術寫作和文件編寫,使複雜的主題更容易理解。

準備好開始了嗎?
Nuget 下載 55,860 | 版本: 2025.12 剛剛發布