Jak zdefiniować obszar przycięcia BarCode w celu szybszego odczytu w języku C
Zdefiniuj region kadrowania przy użyciu IronSoftware.Drawing.Rectangle, aby ograniczyć obszar skanowania IronBarcode do konkretnych regionów obrazu, co znacząco poprawia wydajność odczytu kodów kreskowych i redukuje błędy poprzez skupienie się tylko na istotnych obszarach.
Jedną z najważniejszych funkcji IronBarcode jest możliwość określenia obszarów przycięcia. Ta funkcja umożliwia IronBarcode odczyt tylko konkretnych kodów kreskowych lub obszarów określonych przez Region Kadrowania na obrazie używając obiektu IronSoftware.Drawing.Rectangle. Korzystanie z tej funkcji nie tylko zmniejsza liczbę błędów podczas czytania, ale także poprawia wydajność czytania. Technika ta jest szczególnie przydatna podczas pracy z dokumentami wielostronicowymi lub obrazami o wysokiej rozdzielczości, w których lokalizacja BARCODE-ów jest przewidywalna.
Podczas przetwarzania obrazów zawierających wiele BarCodes lub złożone tło, zdefiniowanie obszaru przycięcia ma kluczowe znaczenie dla optymalizacji szybkości odczytu BarCodes. Ograniczając obszar skanowania, można osiągnąć prędkość przetwarzania nawet 5 razy większą niż w przypadku skanowania całych obrazów, jednocześnie zmniejszając liczbę fałszywych alarmów spowodowanych elementami innymi niż BarCode.
Szybki start: Zdefiniuj i zastosuj obszar przycięcia, aby szybciej odczytywać BARCODE-y
Wystarczy w kilka sekund utworzyć prostokąt przycinania i przesłać go do IronBarcode — bez dodatkowej konfiguracji, bez żadnych utrudnień. Zobacz, jak łatwo jest ograniczyć skanowanie do konkretnego obszaru obrazu używając BarcodeReaderOptions.
-
Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode -
Skopiuj i uruchom ten fragment kodu.
var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) }); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do odczytu kodów kreskowych
- Znajdź współrzędne i rozmiar obszaru kadrowania na obrazie
- Utwórz obszar przycięcia na podstawie współrzędnych
- Użyj metody
Readdo wykrycia i odczytania BarCoda - Przekaż obiekt regionu przycięcia do metody
Jak znaleźć współrzędne i rozmiar obszaru kadrowania na obrazie?
Istnieje wiele sposobów na znalezienie współrzędnych punktu na obrazie. Jednym ze sposobów jest załadowanie obrazu za pomocą aplikacji Paint na komputerze. Aby uzyskać pierwszą współrzędną Regionu Kadrowania, przesuń kursor do preferowanego pierwszego punktu, który będzie lewym górnym rogiem Rectangle, i zanotuj współrzędne x, y podane przez aplikację w dolnym lewym rogu ekranu. Następnie zlokalizuj drugi punkt, który będzie prawym dolnym rogiem Rectangle. Aby lepiej zrozumieć, zapoznaj się z poniższym obrazkiem.
W bardziej zaawansowanych przypadkach warto rozważyć użycie oprogramowania do edycji obrazów, takiego jak GIMP lub Photoshop, które zapewniają precyzyjne współrzędne pikseli i narzędzia pomiarowe. Niektórzy programiści wolą korzystać z internetowych narzędzi do wyszukiwania współrzędnych lub tworzyć proste narzędzia HTML/JavaScript, które wyświetlają współrzędne myszy po najechaniu kursorem na obraz.
Ustawianie odniesienia CropRegion
Jakich narzędzi mogę użyć do określenia współrzędnych?
Wartości współrzędnych mogą być następnie użyte jako właściwości dla obiektu Rectangle. Szerokość obiektu można zdefiniować jako x2 - x1, natomiast wysokość jako y2 - y1. Podczas pracy z obrazami BarCode należy pamiętać, że współrzędne zaczynają się od lewego górnego rogu (0,0) i rosną w miarę przesuwania się w prawo (oś x) i w dół (oś y).
Kilka podejść do określania współrzędnych obejmuje:
- Wbudowane narzędzia systemu operacyjnego: Windows Paint, macOS Preview
- Narzędzia programistyczne przeglądarki: Sprawdzanie elementów na obrazach w sieci
- Professional oprogramowanie: Adobe Photoshop, GIMP
- Niestandardowe narzędzia: proste aplikacje do przeglądania współrzędnych
- Funkcje debugowania IronBarcode: Eksport przetworzonych obrazów z nakładkami współrzędnych
Jak obliczyć wymiary prostokąta na podstawie współrzędnych?
Po ustaleniu dwóch punktów narożnych obliczenie wymiarów jest proste. Prostokąt wymaga czterech parametrów: współrzędnej x, współrzędnej y, szerokości i wysokości. Oto jak poprawnie utworzyć instancję obszaru przycięcia:
:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.cs
using IronBarCode;
int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;
IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1);
Imports IronBarCode
Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522
Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2-x1, height:= y2-y1)
Ten system współrzędnych płynnie współpracuje z funkcjami korekcji obrazu IronBarcode, umożliwiając stosowanie filtrów tylko w określonych obszarach obrazu.
Jak zastosować CropRegion i odczytać BarCodes?
Gdy już zdefiniujesz CropRegions, gdzie chcesz, aby IronBarcode odczytywał, możesz zastosować obiekt w BarcodeReaderOptions jako jedną z właściwości, wraz z innymi ustawieniami. Może to być następnie użyte jako parametr w metodzie BarcodeReader.Read(). Poniższy fragment kodu ilustruje ten proces:
Jakie parametry akceptuje BarcodeReaderOptions?
Klasa BarcodeReaderOptions zapewnia kompleksową kontrolę nad procesem odczytu kodów kreskowych. Oprócz obszarów przycięcia można skonfigurować:
- Optymalizacja szybkości: Równowaga między dokładnością a wydajnością dzięki ustawieniom szybkości
- Typy BarCode: Określ dokładne formaty, których chcesz szukać (obsługiwane formaty)
- Filtry obrazu: stosowanie korekt w przypadku przekrzywionych lub uszkodzonych BARCODE-ów
- Wielowątkowość: Włącz przetwarzanie równoległe w celu uzyskania lepszej wydajności
- Obsługa obrotu: Automatyczne wykrywanie obróconych BARCODE-ów
Jak przetworzyć wiele wyników BarCode'ów z wyciętego obszaru?
Podczas skanowania przyciętego obszaru zawierającego wiele kodów kreskowych IronBarcode zwraca zbiór wyników. Każdy wynik zawiera cenne metadane, w tym dokładną lokalizację w obszarze wykadrowania, typ BARCODE oraz zdekodowaną wartość. Oto jak zaimplementować kompleksowe przetwarzanie obszarów przycięcia:
:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.cs
using IronBarCode;
using System;
int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;
IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1);
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
CropArea = crop1
};
var result = BarcodeReader.Read("sample.png", options);
foreach (var item in result)
{
Console.WriteLine(item.Value);
}
Imports IronBarCode
Imports System
Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522
Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1)
Private options As New BarcodeReaderOptions() With {.CropArea = crop1}
Private result = BarcodeReader.Read("sample.png", options)
For Each item In result
Console.WriteLine(item.Value)
Next item
Z powyższego fragmentu kodu używaliśmy zainstancjonowanego Rectangle w obiekcie BarcodeReaderOptions jako właściwość CropArea. Następnie używamy tego obiektu BarcodeReaderOptions jako parametru w metodzie BarcodeReader.Read(), aby zastosować obszar kadrowania do obrazu i odczytać kody kreskowe wewnątrz.
Zaawansowane techniki wycinania obszarów
W przypadku aplikacji produkcyjnych warto rozważyć następujące zaawansowane strategie:
- Dynamiczne obszary przycinania: Obliczaj obszary przycinania na podstawie szablonów dokumentów lub wyników OCR
- Wiele obszarów: Przetwarzaj kilka obszarów przycięcia w jednym obrazie w przypadku złożonych układów
- Optymalizacja wydajności: Połącz obszary przycinania z przetwarzaniem asynchronicznym, aby uzyskać maksymalną przepustowość
- Obsługa błędów: Wprowadź strategie awaryjne na wypadek, gdyby BarCodes nie zostały znalezione w oczekiwanych obszarach
Podczas pracy z dokumentami PDF można zastosować obszary przycięcia do określonych stron, co znacznie skraca czas przetwarzania dużych plików. Jest to szczególnie przydatne w przypadku faktur, etykiet wysyłkowych lub formularzy, w których pozycje BarCode są ustandaryzowane.
Najlepsze praktyki dotyczące definiowania obszaru przycięcia
Aby zmaksymalizować skuteczność obszarów przycięcia:
- Dodaj odstępy: Dodaj 10–20 pikseli wokół przewidywanych lokalizacji BarCode'ów, aby uwzględnić niewielkie różnice
- Dokładnie przetestuj: Sprawdź, czy obszary przycięcia działają w całym zestawie dokumentów
- Współrzędne dokumentu: Prowadź arkusz referencyjny zawierający typowe obszary przycinania dla Twojej aplikacji
- Weź pod uwagę skalowanie: uwzględnij różne rozdzielczości obrazów lub ustawienia DPI
- Monitorowanie wydajności: śledzenie czasów przetwarzania w celu weryfikacji skuteczności obszaru kadrowania
W przypadku aplikacji wymagających odporności na awarie należy zastosować podejście dwuetapowe: najpierw zeskanować obszar przycięcia, a następnie przejść do skanowania całego obrazu, jeśli w oczekiwanych obszarach nie zostaną znalezione żadne BARCODE-y.
Wnioski
Definiowanie obszarów przycinania to skuteczna technika optymalizacji wydajności odczytu BarCode w aplikacjach .NET. Ograniczając obszar skanowania do określonych regionów, można osiągnąć znaczną poprawę szybkości przy jednoczesnym zmniejszeniu liczby fałszywych alarmów. Niezależnie od tego, czy przetwarzasz pojedyncze obrazy, czy operacje wsadowe, obszary kadrowania zapewniają precyzję i wydajność wymaganą w środowiskach produkcyjnych.
Często Zadawane Pytania
Co to jest obszar przycięcia kodu kreskowego i dlaczego powinienem go używać?
Obszar przycięcia kodu kreskowego to określony obszar w obrębie obrazu, na którym IronBarcode koncentruje swoje wysiłki skanowania. Poprzez zdefiniowanie obszaru przycięcia za pomocą IronSoftware.Drawing.Rectangle, możesz osiągnąć do 5x szybsze prędkości odczytu kodów kreskowych, jednocześnie zmniejszając błędy poprzez ograniczenie skanowania tylko do odpowiednich obszarów Twojego obrazu.
Jak zdefiniować obszar przycięcia dla odczytu kodu kreskowego?
Możesz zdefiniować obszar przycięcia w IronBarcode, tworząc obiekt IronSoftware.Drawing.Rectangle ze specyficznymi współrzędnymi (x, y) i wymiarami (width, height), a następnie przekazując go w właściwości BarcodeReaderOptions.CropArea podczas wywołania metody Read.
Jakich ulepszeń wydajności mogę oczekiwać z użycia obszarów przycięcia?
Funkcja obszaru przycięcia w IronBarcode może poprawić wydajność odczytu kodów kreskowych nawet 5x w porównaniu do skanowania całych obrazów. Jest to szczególnie korzystne podczas pracy z dokumentami wielostronicowymi lub obrazami w wysokiej rozdzielczości, gdzie lokalizacje kodów kreskowych są przewidywalne.
Jak mogę znaleźć poprawne współrzędne dla mojego obszaru przycięcia?
Możesz znaleźć współrzędne obszaru przycięcia, korzystając z oprogramowania do edycji obrazów, jak Microsoft Paint, GIMP lub Photoshop. Po prostu otwórz swój obraz, przesuń kursorem do żądanego lewego górnego rogu obszaru, zanotuj współrzędne x,y, a następnie znajdź współrzędne prawego dolnego rogu w celu określenia szerokości i wysokości dla Twojego Rectangle w IronBarcode.
Kiedy użycie obszarów przycięcia jest szczególnie korzystne?
Obszary przycięcia w IronBarcode są szczególnie cenne przy przetwarzaniu obrazów z wieloma kodami kreskowymi, złożonymi tłami, dokumentami wielostronicowymi, lub obrazami w wysokiej rozdzielczości, gdzie lokalizacje kodów kreskowych są spójne i przewidywalne.

