diff --git a/ocr/arabic/net/ocr-configuration/_index.md b/ocr/arabic/net/ocr-configuration/_index.md index 3c687ed8..e6e419ad 100644 --- a/ocr/arabic/net/ocr-configuration/_index.md +++ b/ocr/arabic/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ url: /ar/net/ocr-configuration/ أطلق العنان لقدرات التعرف الضوئي على الحروف (OCR) القوية باستخدام Aspose.OCR لـ .NET. استخراج النص من الصور بسلاسة. ### [عملية OCRO مع القائمة في التعرف على الصور OCR](./ocr-operation-with-list/) أطلق العنان لإمكانات Aspose.OCR لـ .NET. قم بإجراء التعرف على الصور بتقنية التعرف الضوئي على الحروف (OCR) بسهولة باستخدام القوائم. تعزيز الإنتاجية واستخراج البيانات في تطبيقاتك. +### [كيفية تطبيق الترخيص في Aspose OCR – دليل خطوة بخطوة C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +تعلم كيفية تطبيق الترخيص في Aspose OCR باستخدام C# خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/arabic/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..467bd69c --- /dev/null +++ b/ocr/arabic/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-01-01 +description: كيفية تطبيق الترخيص لـ Aspose OCR في C#. تعلم كيفية قراءة الملف، تعيين + ترخيص Aspose، استخدام MemoryStream وتحميل الترخيص بكفاءة. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: ar +og_description: كيفية تطبيق الترخيص لـ Aspose OCR في C#. اتبع هذا الدليل لقراءة ملف + الترخيص، تعيين ترخيص Aspose، استخدام MemoryStream والتحقق من الإعداد. +og_title: كيفية تطبيق الترخيص في Aspose OCR – دليل C# كامل +tags: +- Aspose +- OCR +- C# +- Licensing +title: كيفية تطبيق الترخيص في Aspose OCR – دليل خطوة بخطوة بلغة C# +url: /ar/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تطبيق الترخيص في Aspose OCR – دليل C# كامل + +هل تساءلت يومًا **كيف تقوم بتطبيق الترخيص** لـ Aspose OCR دون البحث في وثائق غير واضحة؟ لست وحدك. يواجه معظم المطورين نفس المشكلة: يستطيعون قراءة الملف، لكنهم لا يعرفون الطريقة الصحيحة لإدخاله في المكتبة. في هذا البرنامج التعليمي سنستعرض كل التفاصيل — من تحميل ملف `.lic` من القرص إلى استدعاء `SetLicense` باستخدام `MemoryStream`. في النهاية ستحصل على حل يعمل يمكنك إدراجه في أي مشروع .NET. + +سنغطي أيضًا **كيفية قراءة الملف** بأمان، والطريقة الصحيحة **لتعيين ترخيص Aspose**، ولماذا يعتبر استخدام **MemoryStream** هو النهج الأنظف. إذا كنت مهتمًا **كيفية تحميل الترخيص** في بيئات مختلفة، فستجد النصائح مضمونة كذلك. لا تحتاج إلى مراجع خارجية — فقط شفرة جاهزة للنسخ واللصق. + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الشفرة تعمل مع .NET Core و .NET Framework على حد سواء) +- حزمة NuGet الخاصة بـ Aspose.OCR مثبتة (`Install-Package Aspose.OCR`) +- ملف ترخيص صالح `Aspose.OCR.lic` موجود في مكان يمكن لتطبيقك الوصول إليه +- إلمام أساسي بـ C# و Visual Studio (أو أي بيئة تطوير تفضلها) + +> **نصيحة احترافية:** احتفظ بملف الترخيص خارج مجلد التحكم بالمصدر لتجنب الالتزام غير المقصود. + +## الخطوة 1: كيفية قراءة الملف – تحميل بايتات الترخيص + +أول ما نحتاجه هو مصفوفة البايت الخام لملف الترخيص. استخدام `File.ReadAllBytes` بسيط وفعال، ويُصدر استثناء واضح إذا كان المسار غير صحيح. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**لماذا هذا مهم:** قراءة الملف مباشرةً إلى الذاكرة يتجنب أي تسرب لمقابض الملفات ويمنحنا مصفوفة بايت نظيفة للعمل معها لاحقًا. كما يجعل الطريقة قابلة لإعادة الاستخدام عبر تطبيقات الكونسول، خدمات الويب، أو Azure Functions. + +## الخطوة 2: كيفية استخدام MemoryStream – تحضير تدفق الترخيص + +تجاوز `License.SetLicense` في Aspose يتوقع `Stream`. تغليف مصفوفة البايت في `MemoryStream` هو الطريقة المألوفة لتلبية هذا المتطلب دون الحاجة للوصول إلى نظام الملفات مرة أخرى. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**فكرة رئيسية:** `MemoryStream` خفيف الوزن ويتم التخلص منه بسرعة. كما يتيح لك إعادة استخدام نفس مصفوفة البايت لعدة مكتبات إذا احتجت لتطبيق أكثر من ترخيص منتج Aspose. + +## الخطوة 3: تعيين ترخيص Aspose – جوهر “كيفية تطبيق الترخيص” + +الآن بعد أن لدينا `MemoryStream`، تطبيق الترخيص يصبح سطرًا واحدًا. فئة `License` موجودة في مساحة الأسماء `Aspose.OCR`، لذا تأكد من إضافة توجيه `using` المناسب. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +إذا كان الترخيص غير صالح أو منتهي الصلاحية، فإن `SetLicense` سيفشل بصمت، وستعمل المكتبة في وضع التجربة. لتكون متأكدًا تمامًا، يمكنك التحقق من ميزة لا تتوفر إلا في النسخة المرخصة (مثل إعدادات دقة OCR) أو الاعتماد ببساطة على رسالة التأكيد التي سنطبعها لاحقًا. + +## الخطوة 4: كيفية تحميل الترخيص – تجميع كل شيء معًا + +فيما يلي برنامج كونسول كامل وقابل للتنفيذ يوضح **كيفية تحميل الترخيص** من القرص، استخدام `MemoryStream`، والتحقق من أن الترخيص تم تطبيقه بنجاح. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### النتيجة المتوقعة + +``` +License applied successfully. You can now perform OCR operations. +``` + +إذا رأيت الرسالة، فإن المكتبة مرخصة بالكامل وجاهزة لمهام OCR على مستوى الإنتاج. + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | لماذا يحدث | الحل | +|--------|------------|------| +| **FileNotFoundException** عند قراءة الترخيص | المسار غير صحيح أو الملف غير منتشر مع التطبيق | استخدم مسارًا مطلقًا أو دمج الترخيص كموارد مضمَّنة (انظر “التحميل البديل” أدناه) | +| **الترخيص غير مُطبق ولا يوجد خطأ** | `SetLicense` يعود إلى وضع التجربة بصمت إذا كان التدفق فارغًا أو معطوبًا | تحقق من `licenseData.Length > 0` قبل إنشاء `MemoryStream` | +| **عدم التخلص من MemoryStream** | نسيان `using` يؤدي إلى بقاء موارد غير مُدارة | احرص دائمًا على تغليف التدفق داخل كتلة `using` كما هو موضح | + +### بديل: دمج الترخيص كموارد مضمَّنة + +إذا كنت تفضل عدم شحن ملف `.lic` منفصل، أضفه إلى مشروعك، واضبط **Build Action** إلى **Embedded Resource**، ثم اقرأه هكذا: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +بعد ذلك استدعِ `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` واستمر بنفس نهج `MemoryStream`. + +## الخلاصة + +غطينا **كيفية تطبيق الترخيص** لـ Aspose OCR من البداية إلى النهاية: قراءة الملف، إنشاء `MemoryStream`, استدعاء `SetLicense`، وتأكيد التفعيل. باتباع هذه الخطوات تُزيل التخمين، تتجنب الأخطاء الشائعة، وتضمن تشغيل محرك OCR في وضع كامل الميزات. + +بعد ذلك، يمكنك استكشاف **كيفية قراءة الملف** بشكل غير متزامن للخدمات ذات الإنتاجية العالية، أو الغوص في إعدادات OCR المتقدمة الآن بعد تحميل الترخيص بشكل صحيح. في كل الأحوال، النمط يبقى نفسه — قراءة، تدفق، تعيين، تحقق. + +هل لديك أسئلة حول حالات خاصة، مثل تحميل الترخيص في بيئة ASP.NET Core أو التعامل مع تراخيص منتجات Aspose متعددة؟ اترك تعليقًا أدناه، وتمنياتنا لك ببرمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/ocr-optimization/_index.md b/ocr/arabic/net/ocr-optimization/_index.md index 7c440b8b..a6e4dd94 100644 --- a/ocr/arabic/net/ocr-optimization/_index.md +++ b/ocr/arabic/net/ocr-optimization/_index.md @@ -47,12 +47,16 @@ url: /ar/net/ocr-optimization/ ### [مرشحات المعالجة المسبقة للصورة في التعرف على الصور OCR](./preprocessing-filters-for-image/) استكشف Aspose.OCR لـ .NET. تعزيز دقة التعرف الضوئي على الحروف (OCR) باستخدام مرشحات المعالجة المسبقة. قم بالتنزيل الآن للتكامل السلس. ### [تصحيح النتيجة مع التدقيق الإملائي في التعرف على الصور OCR](./result-correction-with-spell-checking/) -تعزيز دقة التعرف الضوئي على الحروف باستخدام Aspose.OCR لـ .NET. قم بتصحيح التهجئة وتخصيص القواميس وتحقيق التعرف على النص الخالي من الأخطاء دون عناء. +تعزيز دقة التعرف الضوئي على الحروف باستخدام Aspose.OCR لـ .NET. قم بتتصحيح التهجئة وتخصيص القواميس وتحقيق التعرف على النص الخالي من الأخطاء دون عناء. ### [حفظ نتيجة الصفحات المتعددة كمستند في التعرف على الصور بتقنية التعرف الضوئي على الحروف (OCR).](./save-multipage-result-as-document/) أطلق العنان لإمكانات Aspose.OCR لـ .NET. احفظ نتائج التعرف الضوئي على الحروف (OCR) متعددة الصفحات بسهولة كمستندات باستخدام هذا الدليل الشامل خطوة بخطوة. +### [كيفية تنفيذ التعرف الضوئي على الحروف دفعة واحدة في C# باستخدام محرك Aspose OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +تعلم كيفية معالجة مجموعة من الصور دفعة واحدة باستخدام Aspose OCR في بيئة C# لزيادة الإنتاجية والدقة. +### [معالجة مسبقة لصورة OCR في C# – تعزيز الدقة باستخدام Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +اكتشف كيفية تحسين دقة OCR عبر معالجة الصور مسبقًا في C# باستخدام Aspose OCR. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/arabic/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..806a3cef --- /dev/null +++ b/ocr/arabic/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-01-01 +description: كيفية تنفيذ OCR دفعيًا باستخدام محرك Aspose OCR في C#. تعلم كيفية التعرف + على النص من الصور واستخراج النص من ملفات TIFF مع تسريع GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: ar +og_description: كيفية تنفيذ التعرف الضوئي على الأحرف (OCR) على دفعات في C# باستخدام + محرك Aspose OCR. يوضح هذا الدليل كيفية التعرف على النص من الصور واستخراج النص من + ملفات TIFF بكفاءة. +og_title: كيفية تنفيذ OCR دفعيًا في C# – دليل Aspose الكامل +tags: +- OCR +- C# +- Aspose +- GPU +title: كيفية تنفيذ OCR دفعيًا في C# باستخدام محرك Aspose OCR +url: /ar/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تنفيذ OCR دفعةً في C# باستخدام محرك Aspose OCR Engine + +هل تساءلت يومًا **كيف تقوم بعملية OCR دفعةً** عندما يكون لديك العشرات من المستندات الممسوحة ضوئيًا مخزنة في مجلد؟ لست وحدك—فالعديد من المطورين يواجهون هذه المشكلة عند الانتقال من التعرف على صورة واحدة إلى معالجة مجموعة كاملة. الخبر السار هو أن Aspose OCR يجعل الأمر سهلًا للغاية، سواء كنت تعمل على CPU أو تستفيد من تسريع GPU. + +في هذا الدرس سنستعرض مثالًا كاملًا وقابلًا للتنفيذ ي **يتعرف على النص من الصور** وحتى **يستخرج النص من ملفات TIFF** بشكل دفعي. لا اختصارات غامضة مثل “انظر إلى الوثائق”—بل حل مستقل يمكنك نسخه ولصقه وتشغيله اليوم. + +## المتطلبات المسبقة + +* .NET 6.0 أو أحدث مثبت (الكود يستهدف .NET 6، لكن .NET 5 يعمل أيضًا). +* حزمة NuGet Aspose.OCR لـ .NET (يتوفر كل من إصداري CPU وGPU؛ قم بتثبيت الإصدار الذي يتوافق مع عتادك). +* مجلد يحتوي على بعض ملفات TIFF أو PNG التجريبية التي ترغب في معالجتها. +* Visual Studio 2022 أو أي بيئة تطوير تفضّلها. + +> **نصيحة احترافية:** إذا كنت تنوي استخدام نسخة GPU، تأكد من أن برنامج تشغيل الرسوميات محدث وأن CUDA 11+ مثبتة. سيعود المحرك تلقائيًا إلى CPU إذا لم يجد GPU متوافق. + +## الخطوة 1 – إعداد المشروع وتثبيت Aspose.OCR + +### H2: إنشاء تطبيق Console جديد وإضافة Aspose.OCR + +افتح الطرفية (أو Package Manager Console في Visual Studio) وشغّل: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +إذا كان لديك ترخيص يدعم GPU، أضف حزمة GPU بدلاً من ذلك: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +هذا كل شيء—الآن مشروعك يراجع مكتبة OCR التي سنستخدمها لـ **OCR دفعةً**. + +## الخطوة 2 – تهيئة محرك OCR (CPU أو GPU) + +### H2: كيفية تنفيذ OCR دفعةً – تهيئة المحرك + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**لماذا هذا مهم:** من خلال تبديل `UseGpu`، تسمح لـ Aspose باختيار أسرع مسار. إذا لم يكن GPU متاحًا، يتحول المحرك بهدوء إلى CPU، لذا لا يتعطل عمل الدفعة بسبب نقص العتاد. + +## الخطوة 3 – جمع الملفات التي تريد معالجتها + +### H2: التعرف على النص من الصور – بناء قائمة الملفات + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**ملاحظة حالة حافة:** إذا كان لديك مزيج من الصيغ، غيّر نمط البحث إلى `"*.*"` وقم بالفلترة حسب الامتداد داخل الحلقة. هذا يحافظ على مرونة الدفعة. + +## الخطوة 4 – معالجة كل صورة وعرض معاينة + +### H2: استخراج النص من TIFF – التكرار عبر الملفات + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**ما ستراه:** لكل ملف TIFF، يطبع الطرفية شيئًا مثل: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +تؤكد هذه المعاينة أن الدفعة نجحت دون الحاجة لفتح كل ملف يدويًا. + +## الخطوة 5 – حفظ النتائج (اختياري لكن مفيد) + +### H3: حفظ مخرجات OCR إلى ملفات نصية + +إذا كنت بحاجة إلى النص الكامل للمعالجة اللاحقة، أضف هذا داخل حلقة `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +الآن يحصل كل ملف TIFF على ملف `.txt` مرفق يحتوي على مخرجات OCR الكاملة—مثالي للفهرسة، البحث، أو إمداده إلى نموذج لغة. + +## الخطوة 6 – تشغيل العرض والتحقق + +1. بناء المشروع: `dotnet build`. +2. تشغيله: `dotnet run --project GpuBatchDemo.csproj`. + +يجب أن ترى سطور المعاينة مطبوعة في الطرفية، و(إذا أضفت الخطوة الاختيارية) مجموعة من ملفات `.txt` بجوار صور المصدر. + +### H3: المشكلات الشائعة وكيفية إصلاحها + +| العَرَض | السبب المحتمل | الحل | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | الصورة مظلمة جدًا أو DPI منخفض | معالجة مسبقة للصور (زيادة التباين، تكبير) أو تعيين `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | برنامج تشغيل قديم | تحديث برنامج تشغيل GPU، أو تعيين `UseGpu = false` لإجبار الاستخدام على CPU. | +| **Exception “File not found”** | فاصل مسار غير صحيح على Linux/macOS | استخدم `Path.Combine` أو الشرطات المائلة للأمام (`/`). | + +## الخطوة 7 – التوسع (أكثر من عدد قليل من الملفات) + +عند الانتقال من عدد قليل من ملفات TIFF إلى آلاف، ضع في الاعتبار: + +* **المعالجة المتوازية:** غلف `foreach` بـ `Parallel.ForEach` (تأكد من أن نسخة المحرك آمنة للخطوط المتعددة؛ وإلا أنشئ نسخة لكل خط). +* **الإدخال/الإخراج المجزأ:** اقرأ الصور على دفعات لتجنب استنفاد الذاكرة RAM. +* **التسجيل (Logging):** اكتب التقدم إلى ملف سجل؛ يساعد على الاستئناف بعد حدوث عطل. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **تذكر:** ذاكرة GPU مشتركة، لذا إنشاء عدد كبير جدًا من وظائف GPU المتوازية قد يبطئ الأداء فعليًا. جرّب مع عدد قليل من الخيوط أولاً. + +## مثال كامل يعمل (جاهز للنسخ واللصق) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +تشغيل هذا البرنامج سي **يتعرف على النص من الصور**، **يستخرج النص من TIFF**، ويظهر **كيفية تنفيذ OCR دفعةً** بكفاءة. + +## الخاتمة + +أصبح لديك الآن مثال شامل من البداية إلى النهاية لـ **كيفية تنفيذ OCR دفعةً** في C# باستخدام محرك OCR من Aspose. غطى الدرس كل شيء من إعداد المشروع، وتبديل تسريع GPU، وبناء قائمة الملفات، ومعالجة كل صورة، وحفظ النتائج. سواء كنت تستخرج النص من ملفات TIFF أو أي صيغة صورة أخرى، فإن النمط نفسه ينطبق—فقط غير امتدادات الملفات. + +هل أنت مستعد للخطوة التالية؟ جرّب دمج مخرجات OCR مع فهرس بحث، أو إمداد النص إلى نموذج لغة كبير، أو جرب المعالجة المتوازية لتقليل دقائق من الدفعات الضخمة. السماء هي الحد، ولديك الأساس للبناء عليه. + +هل لديك أسئلة أو ترغب في مشاركة حيلك الخاصة في OCR الدفعي؟ اترك تعليقًا أدناه—برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/arabic/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..44603b7f --- /dev/null +++ b/ocr/arabic/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-01-01 +description: معالجة مسبقة لصورة OCR لتعزيز الدقة. تعلم كيفية التعرف على نص الصورة، + تحسين دقة OCR، تحميل صورة OCR وعرض نص OCR باستخدام Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: ar +og_description: معالجة مسبقة لتقنية OCR للصور لتحسين الدقة. يوضح هذا الدليل كيفية + التعرف على نص الصورة، تحميل صورة OCR، تطبيق الفلاتر، وعرض نص OCR. +og_title: معالجة مسبقة لتقنية OCR للصور في C# – تعزيز الدقة باستخدام Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: معالجة مسبقة لصورة OCR في C# – تعزيز الدقة باستخدام Aspose OCR +url: /ar/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +هل تساءلت يومًا كيف **preprocess image ocr** بحيث يقرأ المحرك فعليًا ما هو على الصفحة؟ لست وحدك—معظم المطورين يصطدمون بجدار عندما يرفض مسح ضوضائي ومائل التعاون. الخبر السار هو أن بعض خطوات المعالجة المسبقة الذكية يمكنها تحويل صورة فوضوية إلى نص نظيف قابل للقراءة. + +في هذا الدرس سنستعرض مثالًا كاملًا وجاهزًا للتنفيذ يقوم بـ **recognize text image** للملفات، **improve OCR accuracy**، وأخيرًا **display OCR text** على وحدة التحكم. في النهاية ستعرف كيف **load image OCR** الأصول، وتضيف مرشحات مثل تصحيح الميل وإزالة الضوضاء، وتحصل على نتائج موثوقة—كل ذلك باستخدام Aspose.OCR لـ .NET. + +## ما ستتعلمه + +- كيفية إنشاء مثيل `OcrEngine` وتكوين مرشحات المعالجة المسبقة. +- لماذا تصحيح الميل ومرشحات إزالة الضوضاء مهمان لـ **improve OCR accuracy**. +- الكود الدقيق لـ **load image ocr** للملفات وتشغيل التعرف. +- كيفية **display OCR text** بطريقة سهلة للمستخدم. +- نصائح، مخاطر، وتعديلات اختيارية يمكنك تطبيقها في مشاريع العالم الحقيقي. + +### المتطلبات المسبقة + +- .NET 6+ (أو .NET Framework 4.7+) مثبت على جهازك. +- رخصة لـ Aspose.OCR (الإصدار التجريبي المجاني يعمل لهذا العرض). +- معرفة أساسية بـ C#—لا تحتاج إلى حيل متقدمة. + +إذا كان أي من ذلك غير مألوف لك، فقط توقف وقم بتثبيت العناصر المفقودة؛ باقي الدليل يفترض أنها موجودة. + +--- + +## preprocess image ocr – إعداد المرشحات + +أول شيء تحتاج إلى فهمه هو **why preprocessing matters**. محركات OCR رائعة في قراءة النص الواضح والمستقيم، لكن المسحات الواقعية غالبًا ما تعاني من الدوران، الضبابية، أو ضوضاء الخلفية. من خلال تزويد المحرك بصورة مُنظفة، تزيد فرص الحصول على نسخ صحيحة بشكل كبير. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**ما الذي يحدث هنا؟** +- **Step 1** ينشئ المحرك—قلب مكتبة Aspose OCR. +- **Step 2** يضيف مرشحين. الـ `SkewCorrectionFilter` يدور الصورة لتصبح أفقية، بينما `DenoiseFilter` يزيل الضوضاء على مستوى البكسل. +- **Step 3** اختياري لكنه مفيد؛ يمكنك تحديد الحد الأقصى للزاوية التي سيحاول المحرك تصحيحها، لتجنب الدوران الزائد على الصفحات المستقيمة بالفعل. +- **Step 4** هو المكان الذي **load image OCR** فيه البيانات. استبدل `YOUR_DIRECTORY/skewed_noisy.jpg` بالمسار إلى ملف الاختبار الخاص بك. +- **Step 5** فعليًا يشغل OCR وينتج `OcrResult`. +- **Step 6** **display OCR text** على وحدة التحكم، لتمنحك ملاحظات فورية. + +> **نصيحة احترافية:** إذا لاحظت أن الناتج لا يزال يحتوي على أحرف مشوشة، حاول زيادة `MaxAngle` أو إضافة `ContrastFilter` قبل خطوة إزالة الضوضاء. + +--- + +## recognize text image – تحميل ملفاتك بشكل صحيح + +عقبة شائعة هي **load image ocr** بصيغة أو DPI غير صحيح. Aspose.OCR يدعم PNG، JPEG، TIFF، BMP، وحتى الصور المستندة إلى PDF. ومع ذلك، يعمل المحرك بأفضل شكل مع 300 DPI أو أعلى للمستندات المطبوعة. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +إذا كنت تتعامل مع TIFF متعدد الصفحات، يمكنك التكرار عبر كل إطار: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**لماذا هذا مهم لـ improve OCR accuracy؟** الدقة العالية تحافظ على شكل كل حرف، مما يمنح المعرّف المزيد من نقاط البيانات للعمل معها. الصور ذات DPI منخفض غالبًا ما تؤدي إلى دمج أو كسر الحروف، مما سيخطئه المحرك. + +--- + +## improve OCR accuracy – تعديل معلمات المرشح + +إعدادات المرشح الافتراضية هي نقطة بداية جيدة، لكن يمكنك استخراج أداء إضافي منها. + +| المرشح | الخاصية الأساسية | القيمة النموذجية | متى يتم الضبط | +|--------|------------------|------------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | الصور المائلة بشدة (حتى 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | مسحات شديدة الضوضاء؛ زيادة إلى `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | لقطات شاشة منخفضة التباين. | + +مثال على تخصيص كلاهما: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**حالة حافة:** إذا كانت صورتك تحتوي على ملاحظات مكتوبة يدويًا ونص مطبوع، قد ترغب في إضافة `BinarizationFilter` قبل إزالة الضوضاء لفصل المقدمة عن الخلفية. + +--- + +## display OCR text – تنسيق المخرجات + +الإخراج البسيط على وحدة التحكم يعمل للعرض التجريبي، لكن كود الإنتاج غالبًا ما يحتاج إلى سلاسل مُنظفة، فواصل أسطر، أو حتى JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +إذا كنت تحتاج إلى JSON لاستجابة API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +الآن لقد **display OCR text** بصيغة يمكن للخدمات اللاحقة استهلاكها. + +--- + +## مثال كامل يعمل – جمع كل شيء معًا + +فيما يلي البرنامج النهائي المستقل الذي يمكنك نسخه ولصقه في مشروع وحدة تحكم جديد. يتضمن مرشحات اختيارية، تحميل صورة عالية الدقة، وإخراج نظيف. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**ناتج وحدة التحكم المتوقع (عينة):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +إذا شغلت البرنامج بملف مختلف، سيتغير النص والثقة وفقًا لذلك. + +--- + +## أسئلة شائعة وإجابات + +**س: ماذا لو كانت صورتي بالفعل مستقيمة؟** +ج: سيكتشف مرشح الميل زاوية قريبة من الصفر ويصبح عمليًا لا يفعل شيئًا، لذا يمكنك تركه مفعلاً بأمان. + +**س: هل يدعم Aspose.OCR لغات غير الإنجليزية؟** +ج: نعم—فقط قم بتعيين `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (أو أي لغة مدعومة) قبل استدعاء `Recognize`. + +**س: كيف أتعامل مع ملفات PDF متعددة الصفحات؟** +ج: حوّل كل صفحة إلى صورة (يمكن لـ Aspose.PDF القيام بذلك) ومررها واحدة تلو الأخرى إلى نفس مثيل `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/text-recognition/_index.md b/ocr/arabic/net/text-recognition/_index.md index 58e5dde9..57d3237e 100644 --- a/ocr/arabic/net/text-recognition/_index.md +++ b/ocr/arabic/net/text-recognition/_index.md @@ -55,9 +55,18 @@ url: /ar/net/text-recognition/ أطلق العنان لإمكانات التعرف الضوئي على الحروف في .NET باستخدام Aspose.OCR. استخراج النص من ملفات PDF دون عناء. قم بالتنزيل الآن للحصول على تجربة تكامل سلسة. ### [التعرف على الجدول في التعرف على الصور OCR](./recognize-table/) أطلق العنان لإمكانات Aspose.OCR لـ .NET من خلال دليلنا الشامل حول التعرف على الجداول في التعرف على الصور باستخدام OCR. +### [دليل c# OCR: استخراج النص من الصورة باستخدام Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +تعلم كيفية استخراج النص من الصور باستخدام Aspose OCR في تطبيقات C# بسهولة وفعالية. +### [دليل c# OCR: استخراج النص من الصور وتصديره إلى JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +تعلم كيفية استخراج النص من الصور باستخدام Aspose OCR في C# وتصديره بسهولة إلى تنسيق JSON +### [كيفية التعرف الضوئي على الصورة في C# – تحويل JPG إلى ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +تعلم كيفية تحويل صورة JPG إلى ملف ePub باستخدام Aspose.OCR في C# بسهولة. +### [التعرف على النص الروسي باستخدام Aspose OCR C# – دليل PDF متعدد الصفحات كامل](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +تعلم كيفية استخراج النص الروسي من ملفات PDF متعددة الصفحات باستخدام Aspose OCR في C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..992a1c50 --- /dev/null +++ b/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: دروس C# OCR تُظهر كيفية استخراج النص من الصورة، وإجراء OCR على ملفات + JPG باستخدام Aspose OCR. تعلم كيفية تحميل الصورة للـ OCR والحصول على نتائج دقيقة. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: ar +og_description: دليل C# OCR يشرح لك استخراج النص من الصورة، وإجراء OCR على ملفات JPG، + وتحميل الصور للـ OCR باستخدام Aspose. +og_title: دليل c# OCR – استخراج النص من الصورة باستخدام Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'دليل C# OCR: استخراج النص من الصورة باستخدام Aspose OCR' +url: /ar/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – استخراج النص من صورة باستخدام Aspose OCR + +هل تبحث عن **c# ocr tutorial** يعمل فعليًا؟ في هذا الدليل سنوضح لك كيفية **استخراج النص من صورة** و**إجراء OCR على ملفات JPG** باستخدام مكتبة Aspose.OCR. سواء كنت تبني ماسح فواتير، أو مؤرشف مستندات، أو مجرد فضولي حول قراءة النص من الصور، فإن الخطوات أدناه ستنقلك من الصفر إلى كود يعمل خلال دقائق. + +سنغطي كل ما تحتاجه: تثبيت الحزمة، تحميل صورة للـ OCR، تكوين موارد اللغة، تشغيل محرك التعرف، ومعالجة أكثر المشكلات شيوعًا. في النهاية ستحصل على تطبيق console مستقل يطبع النص المعترف به إلى الشاشة—بدون الحاجة إلى خدمات خارجية. + +## ما ستحتاجه + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا مع .NET Framework 4.6+) +- Visual Studio 2022، VS Code، أو أي محرر C# تفضله +- ملف صورة يحتوي على نص روسي (سيريلكي)، مثال: `receipt_ru.jpg` +- اتصال بالإنترنت للتنصيب الأول (Aspose سيقوم بتنزيل موارد اللغة تلقائيًا) + +إذا كان لديك كل ذلك، رائع—لنبدأ. + +## الخطوة 1: تثبيت Aspose.OCR وإنشاء مشروع جديد + +أولاً، أضف حزمة Aspose.OCR من NuGet إلى مشروعك. افتح الطرفية في مجلد الحل وشغّل: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** استخدم العلامة `--version` لتثبيت أحدث إصدار ثابت، مثال: `Aspose.OCR 23.9.0`. + +بعد ذلك، أنشئ مشروع console بسيط (تخطى هذه الخطوة إذا كان لديك مشروع بالفعل): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +الآن لديك بيئة نظيفة يمكنك لصق الكود الكامل فيها لاحقًا. + +## الخطوة 2: تحميل صورة للـ OCR + +تحميل الصورة هو الخطوة الوظيفية الأولى في أي **c# ocr tutorial**. Aspose.OCR يقبل مسار ملف، أو تدفق، أو حتى `Bitmap`. في مثالنا سنبقي الأمر بسيطًا ونحمّل من القرص: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** بتحميل الصورة صراحةً، تعطي المحرك هدفًا واضحًا، مما يحسن الدقة—خاصةً عند التعامل مع ملفات PDF متعددة الصفحات أو مدخلات ذات تنسيقات مختلطة. + +## الخطوة 3: تكوين اللغة وتنزيل الموارد تلقائيًا + +Aspose.OCR يأتي مع حزم لغات يمكن تنزيلها عند الحاجة. تمكين التنزيل التلقائي يضمن أن المحرك يحصل على بيانات اللغة الروسية في أول تشغيل للكود. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` يلغي الحاجة إلى تحميل ملفات `.dat` يدويًا. +> • ضبط `Language` يخبر المحرك بمجموعة الأحرف المتوقعة، مما يزيد بشكل كبير من سرعة ودقة التعرف. + +## الخطوة 4: تشغيل OCR واسترجاع النص المعترف به + +الآن يحدث الجزء الثقيل. طريقة `Recognize` تعالج الصورة وتعيد كائن `OcrResult` يحتوي على السلسلة المستخرجة. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +عند تنفيذ البرنامج، يجب أن ترى شيئًا مشابهًا لـ: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** النتيجة الدقيقة تعتمد على جودة الصورة الأصلية، لكن محرك Aspose القائم على الشبكات العصبية عادةً ما يتعامل مع الفواتير النظيفة والنماذج المطبوعة بدقة عالية. + +## مثال كامل يعمل + +فيما يلي **الكود الكامل القابل للتنفيذ** الذي يجمع كل الخطوات. انسخه إلى `Program.cs`، استبدل `YOUR_DIRECTORY` بالمسار الفعلي للمجلد، ثم شغّل `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** إذا كنت بحاجة إلى **استخراج النص من صورة** بامتدادات غير JPG (PNG, BMP, TIFF)، فقط غيّر امتداد الملف—Aspose يدعمها جميعًا. + +## الخطوة 5: المشكلات الشائعة & نصائح احترافية + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Garbage characters** | صورة منخفضة الدقة أو ضغط عالي | استخدم مصدرًا عالي الجودة، أو عالج مسبقًا باستخدام `Bitmap` (مثلاً زيادة التباين) | +| **Language not recognized** | حزمة اللغة لم تُنزل | تأكد من أن `AutoDownloadResources` مُعَدل إلى `true` وأن الجهاز لديه اتصال بالإنترنت في أول تشغيل | +| **Null `ocrResult.Text`** | مسار الصورة غير صحيح أو الملف مفقود | تحقق من المسار، واستخدم `File.Exists` قبل التحميل | +| **Performance lag** | دفعة كبيرة من الصور تُعالج تسلسليًا | أعد استخدام كائن `OcrEngine` واحد عبر عدة استدعاءات | + +### مكافأة: قراءة ملفات متعددة داخل حلقة + +إذا كنت بحاجة إلى **إجراء OCR على JPG** داخل مجلد، غلف المنطق داخل `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +هذا النمط يتوسع بسهولة لخطوط معالجة الفواتير. + +## الخاتمة + +لقد أكملت الآن **c# ocr tutorial** يوضح كيفية **استخراج النص من صورة**، **إجراء OCR على JPG**، و**تحميل صورة للـ OCR** باستخدام Aspose.OCR. يوضح البرنامج المثال كامل سير العمل—from تثبيت حزمة NuGet إلى طباعة النص السيريلكي المعترف به—وبالتالي يمكنك نسخه إلى أي مشروع .NET فورًا. + +هل أنت مستعد للخطوة التالية؟ جرّب استبدال `OcrLanguage.Russian` بـ `OcrLanguage.English` لتعرف فواتير إنجليزية، أو جرّب خيارات `OcrEngine.Settings` (مثل `PageSegmentationMode`, `ImagePreprocessing`) لضبط الدقة. يمكنك أيضًا دمج الناتج مع قاعدة بيانات، إنشاء ملفات PDF، أو إرساله إلى واجهة برمجة تطبيقات ترجمة. + +إذا واجهت أي صعوبات، راجع وثائق Aspose.OCR أو اترك تعليقًا أدناه. برمجة سعيدة، ولتكن نتائج OCR دائمًا واضحة كالكريستال! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..67a597d6 --- /dev/null +++ b/ocr/arabic/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: دليل C# OCR يوضح كيفية استخراج النص، تحميل الصورة للتعرف الضوئي على الأحرف، + وكتابة JSON إلى ملف باستخدام Aspose.OCR – دليل خطوة بخطوة. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: ar +og_description: دروس C# OCR التي تُرشدك إلى كيفية استخراج النص من الصور، تحميل الصورة + للتعرف الضوئي على الأحرف، وكتابة JSON إلى ملف باستخدام Aspose.OCR. +og_title: دليل OCR بلغة C# – استخراج النص وتصديره إلى JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: دليل c# OCR – استخراج النص من الصور وتصديره إلى JSON +url: /ar/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# دروس c# OCR – استخراج النص من الصور وتصديره إلى JSON + +هل تساءلت يومًا كيف تستخرج النص من فاتورة ممسوحة ضوئيًا دون قضاء ساعات في كتابة محللات مخصصة؟ أنت لست وحدك. في هذا **c# OCR tutorial** سنوضح لك بالضبط كيفية تحميل صورة لـ OCR، تشغيل محرك التعرف، ثم **write JSON to file** حتى تتمكن من تغذية البيانات إلى الأنظمة اللاحقة. + +تخيل أن لديك مجلدًا من الإيصالات، كل ملف اسمه `receipt1.png`، `receipt2.png`، وتحتاج إلى طريقة سريعة لتحويلها إلى سجلات JSON قابلة للبحث. هذه هي المشكلة التي سنحلها، وفي النهاية ستحصل على تطبيق console جاهز للتشغيل يقوم بذلك. لا توجد تبعيات إضافية بخلاف Aspose.OCR، ولا سحر—فقط خطوات واضحة وقابلة للتكرار. + +> **ما ستتعلمه** +> - كيفية **load image for OCR** باستخدام Aspose.OCR. +> - أفضل طريقة لـ **how to extract text** والحصول على درجات الثقة. +> - تحويل نتيجة OCR إلى حمولة **OCR image to JSON** منظمة بشكل جيد. +> - بأمان **write JSON to file** والتحقق من المخرجات. + +## المتطلبات المسبقة + +- .NET 6 SDK أو أحدث (الكود يعمل على .NET Core أيضًا). +- Visual Studio 2022 أو أي محرر تفضله. +- حزمة NuGet الخاصة بـ Aspose.OCR (`Install-Package Aspose.OCR`). +- ملف صورة (PNG, JPG, BMP) ترغب في معالجته – للعرض سنستخدم `invoice.png`. + +إذا كنت تفتقد أيًا من هذه، احصل على SDK من موقع Microsoft وأضف حزمة NuGet عبر Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +الآن بعد أن تم إعداد الأساس، دعنا نغوص في التنفيذ الفعلي. + +## الخطوة 1: c# OCR tutorial – تهيئة محرك OCR + +قبل أن نتمكن من **load image for OCR**، نحتاج إلى نسخة من المحرك الذي سيقود عملية التعرف. فئة `OcrEngine` خفيفة الوزن، ولكن من الممارسات الجيدة تغليفها داخل كتلة `using` حتى يتم تحرير الموارد بسرعة. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*نصيحة احترافية:* إذا كنت تخطط لمعالجة العديد من الصور دفعة واحدة، أعد استخدام نفس نسخة `OcrEngine` بدلاً من إنشاء نسخة جديدة في كل مرة. هذا يقلل من استهلاك الذاكرة ويسرّع العملية. + +## الخطوة 2: تحميل صورة لـ OCR + +الآن نقوم فعليًا بـ **load image for OCR**. يدعم Aspose.OCR مجموعة متنوعة من الصيغ، لذا يمكنك توجيهه إلى PNG أو JPEG أو حتى TIFF متعدد الصفحات. طريقة `OcrImage.FromFile` تقرأ الملف وتجهزه للتعرف. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **لماذا هذا مهم:** تحميل الصورة بشكل منفصل يتيح لك فحص أبعادها، DPI، أو حتى معالجتها مسبقًا (مثل التحويل إلى ثنائي) قبل إرسالها إلى المحرك. إذا كانت الصورة تالفة، فإن `FromFile` سيطرح استثناء واضح يمكنك التقاطه وتسجيله. + +## الخطوة 3: كيفية استخراج النص – تشغيل عملية التعرف + +مع الصورة في المتناول، يمكننا أخيرًا **how to extract text** منها. طريقة `Recognize` تُعيد كائن `OcrResult` يحتوي ليس فقط على النص العادي بل أيضًا على بيانات الموقع ودرجات الثقة لكل كلمة. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*حالة حدية:* بعض ملفات PDF تحتوي على طبقات نصية غير مرئية. إذا قمت بتمرير صفحة PDF مُحولة إلى صورة، قد لا يرى المحرك شيئًا. في هذه الحالات، فكر في استخدام Aspose.PDF لاستخراج الطبقة المخفية أولاً، ثم اللجوء إلى OCR فقط عند الحاجة. + +## الخطوة 4: OCR image to JSON – تحويل النتيجة + +توفر فئة `OcrResult` مساعدًا مريحًا `ToJson()` الذي يُسلسل مجموعة النتائج بالكامل—بما في ذلك صندوق حدود كل كلمة ودرجة الثقة—إلى سلسلة JSON. هذه هي أنظف طريقة لتحقيق **OCR image to JSON** دون كتابة محول خاص بك. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +إذا كنت تفضل مخططًا مخصصًا، يمكنك التكرار على `ocrResult.Words` وبناء كائنك الخاص، لكن في معظم السيناريوهات يكون JSON المدمج كافيًا ومُنظمًا جيدًا بالفعل. + +## الخطوة 5: كتابة JSON إلى ملف + +الآن يأتي الجزء الأخير من اللغز: حفظ حمولة JSON. تضمن طريقة `File.WriteAllText` إنشاء الملف (أو استبداله) بشكل ذري. تأكد من وجود الدليل الهدف، وإلا ستواجه `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*نصيحة:* إذا كنت تحتاج إلى UTF‑8 مع BOM أو ترميز مختلف، استخدم النسخة التي تقبل معامل `Encoding`. + +## الخطوة 6: التحقق من المخرجات + +يعطينا `Console.WriteLine` سريعًا إشارة إلى أن العملية انتهت بنجاح. يمكنك أيضًا فتح ملف JSON في عارض لتأكيد البنية. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### مقتطف JSON المتوقع + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +يتضمن JSON موقع كل كلمة، وهو مفيد إذا رغبت لاحقًا في تمييز النص في واجهة المستخدم. + +## مثال كامل يعمل + +فيما يلي البرنامج الكامل الجاهز للنسخ واللصق. استبدل `YOUR_DIRECTORY` بالمسار الفعلي حيث توجد صورتك. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +شغّل البرنامج (`dotnet run` من مجلد المشروع) وستجد `invoice.json` بجانب ملف PNG الأصلي. + +## المشكلات الشائعة وكيفية تجنبها + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** عند تحميل الصورة | خطأ في مسار أو ملف مفقود | استخدم `Path.Combine` وتحقق من وجود `File.Exists` قبل استدعاء `FromFile`. | +| **درجات الثقة المنخفضة** | جودة صورة سيئة، DPI منخفض | قم بالمعالجة المسبقة باستخدام `ocrImage.AdjustContrast` أو قم بزيادة حجم الصورة إلى 300 DPI. | +| **ملف JSON فارغ** | `ocrResult` أعاد null (فشل المحرك) | تحقق من أن صيغة الصورة مدعومة وأن الترخيص (إن وجد) تم تطبيقه بشكل صحيح. | +| **عنق زجاجة الأداء في الدفعات الكبيرة** | إعادة إنشاء `OcrEngine` في كل تكرار | أعد استخدام نسخة واحدة من `OcrEngine` عبر الدفعة، وقم بتحريرها فقط في النهاية. | + +## الخطوات التالية + +الآن بعد أن أتقنت **c# OCR tutorial**، قد ترغب في: + +- **Batch process** مجلدًا كاملاً وتجمع ملفات JSON في قاعدة بيانات واحدة. +- **Integrate** الناتج مع Azure Cognitive Search للحصول على PDFs قابلة للبحث. +- **Add language support** عن طريق ضبط `ocrEngine.Language = OcrLanguage.Spanish` (أو أي لغة مدعومة). +- **Post‑process** الـ JSON لاستخراج الجداول أو أزواج المفتاح‑القيمة باستخدام التعابير النمطية. + +كل من هذه الإضافات يبني على المفاهيم الأساسية التي غطيناها: تحميل الصور لـ OCR، استخراج النص، التحويل إلى JSON، وكتابة هذا الـ JSON إلى القرص. + +--- + +### الخلاصة + +في هذا **c# OCR tutorial** استعرضنا كل خطوة مطلوبة لـ **load image for OCR**، **how to extract text**، تحويل النتيجة إلى حمولة **OCR image to JSON**، وأخيرًا **write JSON to file**. مثال الكود الكامل جاهز للإدراج في أي مشروع .NET، وتوفر الشروحات السياق الذي تحتاجه لتكييف الحل مع سيناريوهات العالم الحقيقي. + +جرّبه مع مجموعة الإيصالات أو الفواتير الخاصة بك—عدل معالجة الصورة، جرب لغات مختلفة، وشاهد مخرجات JSON تتزايد. إذا واجهت أي مشاكل، راجع جدول المشكلات أو اترك تعليقًا أدناه. برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/arabic/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..8dda89cc --- /dev/null +++ b/ocr/arabic/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: تعلم كيفية إجراء التعرف الضوئي على الأحرف (OCR) للصور في C# وتحويل ملفات + JPG إلى ePub باستخدام Aspose OCR. يوضح هذا الدليل خطوة بخطوة أيضًا كيفية استخراج + النص من الصورة. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: ar +og_description: كيفية التعرف الضوئي على الأحرف (OCR) لصورة في C#؟ اتبع هذا الدليل + لاستخراج النص من الصورة وتحويل JPG إلى ePub باستخدام Aspose OCR. +og_title: كيفية إجراء OCR لصورة في C# – تحويل JPG إلى ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: كيفية إجراء OCR على صورة في C# – تحويل JPG إلى ePub +url: /ar/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية التعرف الضوئي على الأحرف (OCR) للصور في C# – تحويل JPG إلى ePub + +هل تساءلت يومًا **كيف تقوم بعمل OCR للصور** مباشرةً من تطبيق C# Console؟ لست وحدك. العديد من المطورين يواجهون صعوبة عندما يحتاجون لاستخراج النص من صورة ثم تجميع هذا النص في كتاب ePub قابل للقراءة. + +في هذا الدرس سنستعرض مثالًا كاملًا وقابلًا للتنفيذ **يستخرج النص من الصورة**، يحفظ النتيجة كملف ePub، ويظهر لك كيفية **تحويل JPG إلى ePub** دون مغادرة بيئة التطوير المتكاملة (IDE). لا إطالة، فقط الكود الذي يمكنك نسخه‑لصقه وتشغيله اليوم. + +## ما ستتعلمه + +- كيفية إعداد محرك Aspose OCR في مشروع .NET. +- الخطوات الدقيقة **لتحويل الصورة إلى epub** باستخدام الخيار `OcrSaveFormat.Epub`. +- نصائح للتعامل مع المشكلات الشائعة مثل صيغ الصور غير المدعومة أو الخطوط المفقودة. +- برنامج C# كامل يمكنك تجميعه وتشغيله الآن. + +**المتطلبات المسبقة**: .NET 6 SDK (أو أي نسخة حديثة من .NET)، حزمة NuGet صالحة لـ Aspose.OCR، وملف صورة (`input.jpg`) تريد معالجته. إذا لم تستخدم NuGet من قبل، افتح نافذة Package Manager Console وشغّل `Install-Package Aspose.OCR`. + +مستعد؟ لنبدأ. + +## الخطوة 1 – كيفية عمل OCR للصور وتحميل المصدر + +أول شيء تحتاجه هو كائن محرك OCR وصورة المصدر. تجعلك Aspose OCR تقوم بذلك بسهولة: تنشئ `OcrEngine`، ثم تزوده بـ `OcrImage` محمَّل من القرص. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **لماذا هذا مهم** – تهيئة المحرك مرة واحدة فقط تقلل من استهلاك الذاكرة، وتحميل الصورة مبكرًا يتيح لك التحقق من مسار الملف قبل بدء عملية OCR الثقيلة. + +## الخطوة 2 – تشغيل OCR واستخراج النص من الصورة + +الآن بعد أن أصبحت الصورة في الذاكرة، اطلب من المحرك التعرف على الأحرف. تُعيد طريقة `Recognize` كائن `OcrResult` يحتوي على النص العادي، درجات الثقة، وحتى معلومات التخطيط. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **نصيحة احترافية** – إذا كنت تحتاج النص فقط دون الـ ePub، يمكنك التوقف هنا. خاصية `ocrResult.Text` هي سلسلة نصية نظيفة يمكنك تمريرها إلى أي نظام آخر. + +## الخطوة 3 – حفظ النتيجة ككتاب ePub (تحويل JPG إلى ePub) + +يمكن لـ Aspose OCR تسلسل نتيجة OCR مباشرةً إلى عدة صيغ، بما فيها ePub. تُظهر هذه الخطوة بالضبط كيفية **تحويل JPG إلى ePub** في سطر واحد. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +عند تشغيل البرنامج، سترى النص المستخرج يُطبع في وحدة التحكم، وسيظهر ملف `book_page.epub` جديد بجوار صورة المصدر. افتحه بأي قارئ ePub (Calibre، Apple Books، إلخ) وستجد النص منسقًا ككتاب صفحة واحدة. + +### النتيجة المتوقعة + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +إذا تم فتح الـ ePub بنجاح، تهانينا—لقد أكملت مثال **c# OCR** كامل يحول JPEG إلى ePub محمول. + +## الخطوة 4 – المشكلات الشائعة عند تحويل الصورة إلى ePub + +حتى مع مكتبة قوية، قد تواجه بعض العقبات. إليك أسئلة شائعة وإجاباتها: + +| المشكلة | لماذا تحدث | كيفية الإصلاح | +|-------|----------------|------------| +| **صيغة صورة غير مدعومة** | Aspose OCR يتوقع صيغ نقطية (JPG, PNG, BMP). | حوّل الصورة إلى JPG أو PNG أولًا، مثلاً باستخدام `System.Drawing.Image`. | +| **مخرجات فارغة** | جودة الصورة منخفضة أو ضغط عالي. | زد الـ DPI، استخدم مسحًا أوضح، أو طبّق معالجة مسبقة (`ocrEngine.Preprocess`). | +| **خطوط مفقودة في الـ ePub** | كاتب الـ ePub الافتراضي يستخدم خطوط النظام التي قد لا تُضمّن. | عيّن `ocrEngine.Config.FontsDirectory` إلى مجلد يحتوي على ملفات .ttf المطلوبة. | +| **ملف ePub كبير** | تُضمّن صور عالية الدقة كصفحات منفصلة. | استخدم `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +معالجة هذه القضايا مبكرًا توفر عليك وقتًا في تتبع الأخطاء لاحقًا. + +## الخطوة 5 – توسيع المثال (ما بعد الأساسيات) + +الآن بعد أن أصبح لديك خط أنابيب **تحويل الصورة إلى epub** يعمل، قد تتساءل عن ما يمكن إضافته. إليك بعض الأفكار لتجربتها غدًا: + +1. **معالجة دفعات** – كرّر عبر مجلد من JPGs، أنشئ ePub لكل صورة، أو دمجها في ePub متعدد الفصول. +2. **اختيار اللغة** – عيّن `ocrEngine.Language = Language.English;` أو أي لغة مدعومة لتحسين الدقة. +3. **الحفاظ على التخطيط** – استخدم `OcrSaveFormat.Html` أولًا، ثم غلف الـ HTML داخل ePub لتنسيق أغنى. +4. **النشر السحابي** – غلف الكود في Azure Function أو AWS Lambda لتقديم خدمة OCR‑to‑ePub كخدمة ويب. + +كل من هذه التوسعات يبني على منطق **كيفية عمل OCR للصور** الذي غطيناه للتو. + +## الكود الكامل (جاهز للنسخ‑اللصق) + +فيما يلي البرنامج بالكامل في كتلة واحدة. استبدل `YOUR_DIRECTORY` بالمسار الفعلي لملف الصورة الخاص بك. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **تذكّر** – يجب تثبيت حزمة NuGet `Aspose.OCR`، ويجب أن يكون وقت تشغيل .NET المستهدف على الأقل .NET 5 للحصول على أفضل توافق. + +## الخلاصة + +لقد استعرضنا **كيفية عمل OCR للصور** في C# وحولنا تلك المسحات إلى كتب ePub نظيفة—أي **تحويل JPG إلى ePub** يمكنك دمجه في أي مشروع. باتباع الخطوات أعلاه ستتمكن من **استخراج النص من الصورة**، التعامل مع الحالات الطرفية الشائعة، وتوسيع الحل إلى وظائف دفعات أو خدمات سحابية. + +إذا كنت ترغب في الخطوة التالية، جرّب استبدال مخرجات ePub بـ PDF (`OcrSaveFormat.Pdf`) أو إمداد النص المستخرج إلى واجهة برمجة تطبيقات ترجمة. السماء هي الحد عندما تتقن الأساسيات. + +هل لديك أسئلة حول صيغة صورة معينة، أو تريد رؤية مثال على ePub متعدد الصفحات؟ اترك تعليقًا وسأكون سعيدًا بالمساعدة. برمجة سعيدة، واستمتع بتحويل الصور إلى كتب! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/arabic/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..b857fc3c --- /dev/null +++ b/ocr/arabic/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-01-01 +description: التعرف على النص الروسي فورًا باستخدام Aspose OCR C#. تعلم كيفية التعرف + على النص الصيني، قراءة عدد صفحات PDF، وتحويل نص صفحة PDF في درس واحد. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: ar +og_description: التعرف على النص الروسي بسرعة باستخدام Aspose OCR C#. يغطي هذا الدرس + أيضًا كيفية التعرف على النص الصيني، قراءة عدد صفحات PDF، وتحويل نص صفحة PDF. +og_title: التعرف على النص الروسي باستخدام Aspose OCR C# – دليل كامل +tags: +- Aspose OCR +- C# +- PDF processing +title: التعرف على النص الروسي باستخدام Aspose OCR C# – دليل كامل لملف PDF متعدد الصفحات +url: /ar/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# التعرف على النص الروسي باستخدام Aspose OCR C# – دليل كامل لملف PDF متعدد الصفحات + +هل احتجت يومًا إلى **التعرف على النص الروسي** في ملف PDF يجمع بين لغات متعددة، وتساءلت كيف تقوم بذلك دون الحاجة إلى أداة منفصلة لكل صفحة؟ لست وحدك. في العديد من المشاريع الواقعية ستحصل على ملف PDF واحد يحتوي على الإنجليزية، الروسية، وحتى الصينية في صفحات مختلفة، وتريد الحصول على ناتج نصي موحد ونظيف. + +> **ما ستحصل عليه** +> * تطبيق Console بلغة C# يمكن تشغيله لمعالجة ملف PDF متعدد الصفحات. +> * اختيار اللغة لكل صفحة (الروسية، الصينية، الإنجليزية). +> * تقنيات لاستعلام عدد صفحات PDF واستخراج نص كل صفحة. +> * نصائح، ملاحظات، وإمكانيات توسيع يمكنك تطبيقها في مشاريعك. + +--- + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا على .NET Framework 4.7+). +- حزمة NuGet **Aspose.OCR for .NET** مثبتة (`dotnet add package Aspose.OCR`). +- ملف PDF يحتوي على لغات مختلطة؛ سنستخدم في المثال `mixed_lang.pdf`. +- معرفة أساسية بتطبيقات Console في C#. + +إذا كان أي من هذه غير متوفر، احصل على أحدث نسخة من Aspose OCR عبر NuGet وضع ملف PDF في مسار يمكن الوصول إليه من مجلد المشروع. + +--- + +## الخطوة 1 – تهيئة محرك Aspose OCR + +أول شيء تحتاجه هو نسخة من `OcrEngine`. هذا الكائن يحمل جميع الإعدادات (مثل اللغة) ويقوم بالمعالجة الفعلية. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **لماذا هذا مهم:** +> المحرك قابل لإعادة الاستخدام، لذا لا نهدر الذاكرة بإنشاء نسخة جديدة لكل صفحة. إعادة استخدامه تسمح لنا بتغيير اللغة أثناء التشغيل، وهو أمر أساسي لـ **التعرف على النص الروسي** في صفحة واحدة و**التعرف على النص الصيني** في أخرى. + +--- + +## الخطوة 2 – تحميل ملف PDF ومعرفة عدد صفحاته + +قبل أن نبدأ بالتعرف، نحتاج إلى كائن PDF وعدد صفحاته. Aspose OCR يعامل كل صفحة كـ `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **نصيحة:** إذا كان ملف PDF كبيرًا، قد ترغب أولًا في قراءة العدد ثم تقرر ما إذا كنت ستعالج جميع الصفحات أو مجموعة فرعية فقط. + +--- + +## الخطوة 3 – ربط كل صفحة بلغتها المطلوبة + +Aspose OCR يدعم العديد من اللغات، لكن عليك إخبار المحرك أي لغة يستخدمها لكل صفحة. أدناه ننشئ `Dictionary` حيث المفتاح هو فهرس الصفحة (بدءًا من الصفر). + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **لماذا هذا حاسم:** +> بدون هذا الخريطة، سيحاول محرك OCR استخدام لغة افتراضية واحدة لكل الصفحات، مما يؤدي إلى ناتج غير مفهوم للنص الروسي أو الصيني. هذه الخطوة تمكّن **التعرف على النص الروسي** و**التعرف على النص الصيني** بشكل صحيح. + +--- + +## الخطوة 4 – التكرار عبر جميع الصفحات، ضبط اللغة، والتعرف على النص + +نقوم الآن بالتكرار على كل صفحة، نغيّر اللغة بناءً على الخريطة، ثم نستدعي `Recognize`. النتيجة تُخزن في `OcrResult`، ومنه نستخرج النص الصافي. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### ناتج Console المتوقع + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **شرح سير العملية:** +> * الحلقة تحترم **قراءة عدد صفحات PDF** التي طبعناها مسبقًا. +> * بتغيير `ocrEngine.Settings.Language` في كل دورة، نضمن **التعرف على النص الروسي** في الصفحة 2 و**التعرف على النص الصيني** في الصفحة 3. +> * عبارات `Console.WriteLine` تحول **نص صفحة PDF** إلى سلسلة قابلة للقراءة البشرية. + +--- + +## الخطوة 5 – تشغيل، التحقق، وتعديل + +1. بناء المشروع (`dotnet build`). +2. تشغيله (`dotnet run`). +3. مقارنة ناتج الـ Console مع ملف PDF الأصلي. + +إذا لاحظت فقدان أحرف، فكر في: + +- **زيادة دقة OCR** عبر ضبط `ocrEngine.Settings.DetectTextOrientation = true;`. +- **توفير حزمة لغة مخصصة** إذا كانت القواميس المدمجة للروسية أو الصينية قديمة. +- **ضبط DPI** عند تحميل PDF (`OcrImage.FromFile(path, 300)`)، ما قد يحسن التعرف على المسحات منخفضة الدقة. + +--- + +## إضافي: معالجة الحالات الخاصة + +### ماذا لو لم تكن لغة الصفحة موجودة في الخريطة؟ + +الكود بالفعل يرجع إلى الإنجليزية كخيار افتراضي، لكن يمكنك إضافة سجل تحذير: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### هل يمكننا معالجة ملفات PDF بأكثر من ثلاث لغات؟ + +بالتأكيد. قم بتمديد `languageMap` بإضافة فهارس وقيم `OcrLanguage` إضافية (مثل `OcrLanguage.French`). الحلقة ستتعامل مع أي عدد من الصفحات. + +### كيف يمكن تصدير النتائج إلى ملف بدلاً من الـ Console؟ + +استبدل استدعاءات `Console.WriteLine` بـ `File.AppendAllText("output.txt", …)` أو استخدم `StringBuilder` لتكتب المحتوى مرة واحدة بعد انتهاء الحلقة. + +--- + +## توضيح صورة + +![مثال على التعرف على النص الروسي](/images/recognize-russian-text.png "لقطة شاشة تُظهر ناتج OCR للنص الروسي") + +*الصورة أعلاه تُظهر ناتج الـ Console عند **التعرف على النص الروسي** في ملف PDF متعدد اللغات.* + +--- + +## الخلاصة + +استعرضنا مثالًا كاملاً من البداية إلى النهاية يوضح كيفية **التعرف على النص الروسي** (وكذلك **التعرف على النص الصيني**) من ملف PDF متعدد الصفحات باستخدام **Aspose OCR C#**. من خلال قراءة عدد صفحات PDF، ربط كل صفحة بلغتها المناسبة، والتكرار عبر المستند، يمكنك **تحويل نص صفحة PDF** إلى سلاسل نصية جاهزة للتخزين أو الفهرسة أو التحليل الإضافي. + +باختصار: + +- **تهيئة** محرك `OcrEngine` واحد. +- **تحميل** ملف PDF و**قراءة عدد صفحات PDF**. +- **ربط** الصفحات باللغات (الروسية، الصينية، إلخ). +- **التكرار**، ضبط `ocrEngine.Settings.Language`، و**التعرف** على كل صفحة. +- **إخراج** أو حفظ النص المستخرج. + +لا تتردد في تعديل هذا النمط للوثائق الأكبر، إضافة معالجة الأخطاء، أو ربط النتائج بمحرك بحث. الفكرة الأساسية—اختيار اللغة لكل صفحة—تظل هي المفتاح لجعل **التعرف على النص الروسي** موثوقًا في ملفات PDF مختلطة اللغات. + +هل لديك سيناريو مختلف، مثل مسح صور بدلاً من ملفات PDF؟ نفس المحرك يعمل؛ فقط استبدل `OcrImage.FromFile` بـ `OcrImage.FromStream` أو `FromBitmap`. نتمنى لك برمجة سعيدة، ولتكن OCR دائمًا دقيقة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/ocr-configuration/_index.md b/ocr/chinese/net/ocr-configuration/_index.md index 8d3e1997..736c67e5 100644 --- a/ocr/chinese/net/ocr-configuration/_index.md +++ b/ocr/chinese/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ url: /zh/net/ocr-configuration/ 使用 Aspose.OCR for .NET 解锁强大的 OCR 功能。无缝地从图像中提取文本。 ### [OCR 图像识别中的 OCROperation 与列表](./ocr-operation-with-list/) 释放 Aspose.OCR for .NET 的潜力。使用列表轻松执行 OCR 图像识别。提高应用程序的生产力和数据提取。 +### [如何在 Aspose OCR 中应用许可证 – 步骤详解 C# 指南](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +使用 C#,一步步演示在 Aspose OCR 中申请许可证的完整过程。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/chinese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..ac5987f2 --- /dev/null +++ b/ocr/chinese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-01-01 +description: 如何在 C# 中为 Aspose OCR 应用许可证。了解如何读取文件、设置 Aspose 许可证、使用 MemoryStream 并高效加载许可证。 +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: zh +og_description: 如何在 C# 中为 Aspose OCR 应用许可证。请按照本指南读取许可证文件、设置 Aspose 许可证、使用 MemoryStream + 并验证配置。 +og_title: 如何在 Aspose OCR 中应用许可证 – 完整 C# 教程 +tags: +- Aspose +- OCR +- C# +- Licensing +title: 如何在 Aspose OCR 中应用许可证 – 步骤详解 C# 指南 +url: /zh/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 Aspose OCR 中应用许可证 – 完整 C# 指南 + +是否曾经想过 **如何为 Aspose OCR 应用许可证** 而不必追逐模糊的文档?你并不孤单。大多数开发者都会遇到同样的难题:他们可以读取文件,但不知道如何正确地将其传递给库。在本教程中,我们将逐步讲解每一个细节——从磁盘加载 `.lic` 文件到使用 `MemoryStream` 调用 `SetLicense`。完成后,你将拥有一个可以直接放入任何 .NET 项目的可用方案。 + +我们还将介绍 **如何安全读取文件**、**正确设置 Aspose 许可证** 的方法,以及为何使用 **MemoryStream** 是最简洁的做法。如果你想了解 **如何在不同环境中加载许可证**,相关技巧也已包含其中。无需外部引用——只需纯粹、可直接复制粘贴的代码。 + +## 前提条件 + +- .NET 6.0 或更高(代码同样适用于 .NET Core 和 .NET Framework) +- 已安装 Aspose.OCR NuGet 包(`Install-Package Aspose.OCR`) +- 一个有效的 `Aspose.OCR.lic` 文件放置在应用程序可访问的位置 +- 对 C# 和 Visual Studio(或你喜欢的任何 IDE)有基本了解 + +> **专业提示:** 将许可证文件放在源代码控制文件夹之外,以避免意外提交。 + +## 步骤 1:如何读取文件 – 加载许可证字节 + +我们首先需要的是许可证文件的原始字节数组。使用 `File.ReadAllBytes` 简单高效,并且如果路径错误会自动抛出明确的异常。 + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**为什么这很重要:** 直接将文件读取到内存可避免文件句柄泄漏,并为后续操作提供干净的字节数组。它还使该方法可在控制台应用、Web 服务或 Azure Functions 中复用。 + +## 步骤 2:如何使用 MemoryStream – 准备许可证流 + +Aspose 的 `License.SetLicense` 重载需要一个 `Stream`。将字节数组包装在 `MemoryStream` 中是满足此需求的惯用方式,且无需再次触碰文件系统。 + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**关键洞见:** `MemoryStream` 轻量且能快速释放。如果以后需要为多个 Aspose 产品应用许可证,也可以复用同一字节数组。 + +## 步骤 3:设置 Aspose 许可证 – “如何应用许可证”的核心 + +有了 `MemoryStream` 后,应用许可证只需一行代码。`License` 类位于 `Aspose.OCR` 命名空间,请确保已添加相应的 `using` 指令。 + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +如果许可证无效或已过期,`SetLicense` 将静默失败,库会以试用模式运行。为确保成功,你可以检查仅在授权版本中可用的功能(例如 OCR 精度设置),或仅依赖后面打印的确认信息。 + +## 步骤 4:如何加载许可证 – 完整示例 + +下面是完整的可运行控制台程序,演示了 **如何从磁盘加载许可证**、使用 `MemoryStream`,并验证许可证是否成功应用。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### 预期输出 + +``` +License applied successfully. You can now perform OCR operations. +``` + +如果看到该信息,说明库已完整授权,可用于生产级 OCR 任务。 + +## 常见陷阱及如何避免 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **FileNotFoundException** 在读取许可证时 | 路径错误或文件未随应用部署 | 使用绝对路径或将许可证嵌入为资源(见下文“替代方案”) | +| **License 未应用且无错误** | `SetLicense` 在流为空或损坏时会静默回退到试用模式 | 在创建 `MemoryStream` 前验证 `licenseData.Length > 0` | +| **MemoryStream 未释放** | 忘记使用 `using` 会导致未管理资源残留 | 始终像示例中那样将流包装在 `using` 块中 | + +### 替代方案:将许可证嵌入为嵌入资源 + +如果不想单独发布 `.lic` 文件,可将其添加到项目中,设置 **Build Action** 为 **Embedded Resource**,然后这样读取: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +随后调用 `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")`,并继续使用相同的 `MemoryStream` 方法。 + +## 结论 + +我们已经完整覆盖了 **如何为 Aspose OCR 应用许可证** 的全过程:读取文件、创建 `MemoryStream`、调用 `SetLicense` 并确认激活。遵循这些步骤可消除猜测、避免常见错误,确保 OCR 引擎以全部功能模式运行。 + +接下来,你可以探索 **如何异步读取文件** 以支持高吞吐服务,或在许可证正确加载后深入高级 OCR 设置。无论如何,模式保持不变——读取、流化、设置、验证。 + +如果对边缘情况有疑问,例如在 ASP.NET Core 环境中加载许可证或处理多个 Aspose 产品许可证,欢迎在下方留言,祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/ocr-optimization/_index.md b/ocr/chinese/net/ocr-optimization/_index.md index d78ff613..555be3ef 100644 --- a/ocr/chinese/net/ocr-optimization/_index.md +++ b/ocr/chinese/net/ocr-optimization/_index.md @@ -30,15 +30,6 @@ url: /zh/net/ocr-optimization/ 通过探索,使用 Aspose.OCR for .NET 提高 OCR 准确性[预处理过滤器](./preprocessing-filters-for-image/)。立即下载并了解如何在识别之前微调图像。本教程确保无缝集成,提高准确性和效率。 -## OCR 图像识别中的拼写检查结果校正 - -实现无与伦比的 OCR 准确性[Aspose.OCR for .NET](./result-correction-with-spell-checking/)。我们的拼写检查结果校正教程使您能够轻松自定义词典、纠正拼写并确保无错误的文本识别。使用 Aspose.OCR 进入精确的世界。 - -## 在 OCR 图像识别中将多页结果保存为文档 - -使用 Aspose.OCR for .NET 轻松将多页 OCR 结果保存为文档。我们的[分步指南](./save-multipage-result-as-document/)释放文档创建的全部潜力。无缝集成 Aspose.OCR 并轻松将您的 OCR 结果转换为多页文档。 - -使用 Aspose.OCR For .NET 教程列表,您可以访问其他资源并随时了解 OCR 优化的最新进展。通过 Aspose.OCR for .NET 教程深入了解精确和高效的世界。 ## OCR 优化教程 ### [在 OCR 图像识别中对 URL 中的图像执行 OCR](./perform-ocr-on-image-from-url/) 探索与 Aspose.OCR for .NET 的无缝 OCR 集成。精确识别图像中的文本。 @@ -46,13 +37,18 @@ url: /zh/net/ocr-optimization/ 通过我们的综合指南释放 Aspose.OCR for .NET 的潜力。逐步学习如何准备用于图像识别的矩形。通过无缝 OCR 集成提升您的 .NET 应用程序。 ### [OCR 图像识别中图像的预处理过滤器](./preprocessing-filters-for-image/) 探索适用于 .NET 的 Aspose.OCR。使用预处理过滤器提高 OCR 准确性。立即下载以实现无缝集成。 +### [在 C# 中预处理图像 OCR – 使用 Aspose OCR 提升准确性](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +了解如何在 C# 项目中使用 Aspose OCR 进行图像预处理,以显著提升识别准确率。 ### [OCR 图像识别中的拼写检查结果校正](./result-correction-with-spell-checking/) 使用 Aspose.OCR for .NET 提高 OCR 准确性。轻松纠正拼写、自定义词典并实现无差错的文本识别。 ### [在 OCR 图像识别中将多页结果保存为文档](./save-multipage-result-as-document/) 释放 Aspose.OCR for .NET 的潜力。借助这份全面的分步指南,轻松将多页 OCR 结果保存为文档。 +### [使用 Aspose OCR 引擎在 C# 中批量 OCR 的方法](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +了解如何在 C# 项目中使用 Aspose OCR 引擎实现批量 OCR 处理,提高识别效率。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/chinese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..763a2d8c --- /dev/null +++ b/ocr/chinese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-01-01 +description: 如何在 C# 中使用 Aspose OCR 引擎进行批量 OCR。学习如何从图像识别文本以及使用 GPU 加速从 TIFF 文件提取文本。 +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: zh +og_description: 如何在 C# 中使用 Aspose OCR 引擎批量进行 OCR。本指南展示了如何高效地从图像识别文本并从 TIFF 文件中提取文本。 +og_title: 如何在 C# 中批量 OCR – 完整的 Aspose 指南 +tags: +- OCR +- C# +- Aspose +- GPU +title: 如何在 C# 中使用 Aspose OCR 引擎批量进行 OCR +url: /zh/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 Aspose OCR 引擎进行批量 OCR + +有没有想过 **如何批量 OCR**,当你有几十个扫描文档放在一个文件夹中时?你并不孤单——许多开发者在从单张图像识别转向处理整个集合时都会遇到这个难题。好消息是,Aspose OCR 让这变得轻而易举,无论你是运行在 CPU 上还是利用 GPU 加速。 + +在本教程中,我们将逐步演示一个完整、可运行的示例,**从图像中识别文本**,甚至 **批量提取 TIFF 文件中的文本**。没有模糊的 “参考文档” 快捷方式——只有一个可以直接复制粘贴并立即运行的自包含解决方案。 + +## 前置条件 + +在开始之前,请确保你具备以下条件: + +* 已安装 .NET 6.0 或更高版本(代码目标为 .NET 6,.NET 5 也可运行)。 +* Aspose.OCR for .NET NuGet 包(提供 CPU 与 GPU 版本;请安装与你的硬件匹配的版本)。 +* 一个包含若干 TIFF 或 PNG 示例文件的文件夹,供你处理。 +* Visual Studio 2022 或任意你喜欢的 IDE。 + +> **专业提示:** 如果计划使用 GPU 版,请确认显卡驱动已是最新,并已安装 CUDA 11+。如果找不到兼容的 GPU,引擎会自动回退到 CPU。 + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: 创建一个新的控制台应用并添加 Aspose.OCR + +打开终端(或 Visual Studio 中的 Package Manager Console),运行: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +如果你拥有 GPU 授权许可证,请改为添加 GPU 包: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +就这样——你的项目现在已经引用了我们将用于 **批量 OCR** 的 OCR 库。 + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: 批量 OCR – 引擎初始化 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**为什么重要:** 通过切换 `UseGpu`,让 Aspose 决定最快的路径。如果 GPU 不可用,引擎会静默切换回 CPU,确保批处理作业不会因硬件缺失而崩溃。 + +## Step 3 – Gather the Files You Want to Process + +### H2: 从图像中识别文本 – 构建文件列表 + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**边缘情况说明:** 如果文件格式混杂,请将搜索模式改为 `"*.*"`,并在循环内部按扩展名过滤。这样可以保持批处理的灵活性。 + +## Step 4 – Process Each Image and Show a Preview + +### H2: 从 TIFF 中提取文本 – 循环遍历文件 + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**你将看到的结果:** 对每个 TIFF,控制台会打印类似下面的内容: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +该预览确认批处理已成功完成,而无需手动打开每个文件。 + +## Step 5 – Save Results (Optional but Handy) + +### H3: 将 OCR 输出持久化为文本文件 + +如果需要完整的文本进行后续处理,请在 `foreach` 循环内部加入以下代码: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +现在每个 TIFF 都会生成一个对应的 `.txt` 文件,里面包含完整的 OCR 输出——非常适合索引、搜索或喂入语言模型。 + +## Step 6 – Run the Demo and Verify + +1. 构建项目:`dotnet build`。 +2. 执行:`dotnet run --project GpuBatchDemo.csproj`。 + +你应该会在控制台看到预览行的输出,并且(如果添加了可选步骤)在源图像旁边生成一系列 `.txt` 文件。 + +### H3: 常见问题及解决方案 + +| 症状 | 可能原因 | 解决办法 | +|------|----------|----------| +| **`ocrResult.Text` 为空** | 图像过暗或 DPI 过低 | 预处理图像(提升对比度、放大)或设置 `ocrEngine.Settings.PreprocessImage = true`。 | +| **GPU 错误 “CUDA driver version is insufficient”** | 驱动过旧 | 更新 GPU 驱动,或将 `UseGpu = false` 强制使用 CPU。 | +| **异常 “File not found”** | Linux/macOS 上路径分隔符错误 | 使用 `Path.Combine` 或正斜杠 (`/`)。 | + +## Step 7 – Scaling Up (Beyond a Few Files) + +当你从少量 TIFF 扩展到成千上万时,请考虑: + +* **并行处理:** 将 `foreach` 包装在 `Parallel.ForEach` 中(确保引擎实例是线程安全的;否则为每个线程创建独立实例)。 +* **分块 I/O:** 分批读取图像,防止内存耗尽。 +* **日志记录:** 将进度写入日志文件,便于崩溃后恢复。 + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **记住:** GPU 内存是共享的,启动过多并行 GPU 任务反而会拖慢速度。建议先用少量线程进行测试。 + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +运行此程序将 **从图像中识别文本**、**从 TIFF 中提取文本**,并演示 **如何高效批量 OCR**。 + +--- + +## 结论 + +现在你已经拥有一个完整、端到端的 **批量 OCR** 示例,使用 C# 与 Aspose 的 OCR 引擎实现。教程涵盖了从项目搭建、GPU 加速切换、文件列表构建、逐图像处理到结果持久化的全部步骤。无论是提取 TIFF 文件的文本还是其他图像格式,只需更换文件扩展名即可复用同一模式。 + +准备好下一步了吗?尝试将 OCR 输出集成到搜索索引中、喂入大语言模型,或通过并行处理进一步缩短大批量任务的耗时。天地无限,而你已经拥有了坚实的基础。 + +有任何问题或想分享自己的批量 OCR 技巧?在下方留言吧——祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/chinese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..a24e1e6f --- /dev/null +++ b/ocr/chinese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-01-01 +description: 预处理图像 OCR 以提升准确率。学习如何识别文本图像、提高 OCR 准确率、加载图像 OCR 并使用 Aspose OCR 显示 OCR + 文本。 +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: zh +og_description: 预处理图像 OCR 以提高准确性。本指南展示了如何识别文本图像、加载图像 OCR、应用过滤器以及显示 OCR 文本。 +og_title: 在 C# 中预处理图像 OCR – 使用 Aspose OCR 提升准确性 +tags: +- Aspose OCR +- C# +- Image preprocessing +title: 在 C# 中预处理图像 OCR – 使用 Aspose OCR 提升准确率 +url: /zh/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中预处理图像 OCR – 使用 Aspose OCR 提升准确率 + +有没有想过如何 **preprocess image ocr**,让引擎真正读取页面上的内容?你并不孤单——大多数开发者在面对噪声大、倾斜的扫描件时都会卡住。好消息是,几步聪明的预处理可以把灾难级的图像变成干净、可读的文本。 + +在本教程中,我们将演示一个完整、可直接运行的示例,能够 **recognize text image** 文件、**improve OCR accuracy**,并最终在控制台 **display OCR text**。完成后,你将了解如何 **load image OCR** 资源,附加如倾斜校正和去噪的过滤器,并获得可靠的结果——全部使用 Aspose.OCR for .NET。 + +## 你将学到 + +- 如何创建 `OcrEngine` 实例并配置预处理过滤器。 +- 为什么倾斜校正和去噪过滤器对 **improve OCR accuracy** 很重要。 +- 用于 **load image ocr** 文件并运行识别的完整代码。 +- 如何以用户友好的方式 **display OCR text**。 +- 技巧、陷阱以及可在实际项目中应用的可选调整。 + +### 前置条件 + +- 在机器上已安装 .NET 6+(或 .NET Framework 4.7+)。 +- Aspose.OCR 许可证(免费试用可用于本演示)。 +- 基础 C# 知识——不需要高级技巧。 + +如果其中任何一点你不熟悉,只需暂停并安装缺失的部分;其余指南默认这些已就绪。 + +--- + +## preprocess image ocr – 设置过滤器 + +首先你需要了解 **why preprocessing matters**。OCR 引擎擅长读取清晰、正面的文字,但实际扫描件常常出现旋转、模糊或背景噪声。将清理后的图像喂给引擎可以显著提升正确转录的概率。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**这段代码在做什么?** +- **Step 1** 创建引擎——Aspose OCR 库的核心。 +- **Step 2** 附加两个过滤器。`SkewCorrectionFilter` 将图像旋转回水平,`DenoiseFilter` 平滑像素级噪声。 +- **Step 3** 是可选但实用的;你可以限制引擎尝试校正的最大角度,防止对已经水平的页面过度旋转。 +- **Step 4** 是 **load image OCR** 数据的地方。将 `YOUR_DIRECTORY/skewed_noisy.jpg` 替换为你的测试文件路径。 +- **Step 5** 实际运行 OCR 并生成 `OcrResult`。 +- **Step 6** 在控制台 **display OCR text**,为你提供即时反馈。 + +> **Pro tip:** 如果你发现输出仍包含乱码,尝试增大 `MaxAngle` 或在去噪步骤前添加 `ContrastFilter`。 + +--- + +## recognize text image – 正确加载文件 + +常见的绊脚石是 **load image ocr** 使用了错误的格式或 DPI。Aspose.OCR 支持 PNG、JPEG、TIFF、BMP,甚至基于 PDF 的图像。然而,对于印刷文档,引擎在 300 DPI 或更高时表现最佳。 + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +如果你处理的是多页 TIFF,可以遍历每一帧: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** 更高的分辨率保留每个字符的形状,为识别器提供更多数据点。低 DPI 图像常导致字符合并或断裂,导致引擎误判。 + +--- + +## improve OCR accuracy – 调整过滤器参数 + +默认的过滤器设置是一个良好的起点,但你可以从中挤出额外的性能。 + +| 过滤器 | 关键属性 | 常见值 | 何时调整 | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (度) | 图像倾斜严重(最高可达 30°)时。 | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | 噪声非常大的扫描件;可提升至 `0.8`。 | +| `ContrastFilter` (optional) | `Level` | `1.2` | 低对比度的截图。 | + +自定义两者的示例: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** 如果图像同时包含手写笔记和印刷文字,你可能想在去噪前添加 `BinarizationFilter`,以将前景与背景分离。 + +--- + +## display OCR text – 格式化输出 + +普通的控制台输出适用于演示,但生产代码通常需要清理后的字符串、换行,甚至 JSON。 + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +如果你需要用于 API 响应的 JSON: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +现在你已经以下游服务可消费的格式 **display OCR text**。 + +--- + +## 完整工作示例 – 综合全部 + +下面是完整的、可直接复制粘贴到新控制台项目中的程序。它包括可选过滤器、高分辨率图像加载以及干净的输出。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**预期的控制台输出(示例):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +如果使用不同的文件运行程序,文本和置信度将相应变化。 + +--- + +## 常见问题与解答 + +**Q: 如果我的图像已经是直的怎么办?** +A: 倾斜过滤器会检测到接近零度的角度,实际上不做任何操作,因此可以安全地保持启用。 + +**Q: Aspose.OCR 是否支持除英语之外的语言?** +A: 支持——只需在调用 `Recognize` 前设置 `ocrEngine.Settings.Language = OcrLanguage.Spanish;`(或任何受支持的语言)。 + +**Q: 如何处理多页 PDF?** +A: 将每页转换为图像(Aspose.PDF 可以完成),然后逐页喂给同一个 `OcrEngine` 实例。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/text-recognition/_index.md b/ocr/chinese/net/text-recognition/_index.md index 9a3154c2..e80a753d 100644 --- a/ocr/chinese/net/text-recognition/_index.md +++ b/ocr/chinese/net/text-recognition/_index.md @@ -53,11 +53,20 @@ url: /zh/net/text-recognition/ 使用 Aspose.OCR 增强您的 .NET 应用程序,以实现高效的图像文本识别。探索 OCR 检测区域模式以获得精确结果。 ### [OCR图像识别中识别PDF](./recognize-pdf/) 使用 Aspose.OCR 释放 .NET 中 OCR 的潜力。轻松从 PDF 中提取文本。立即下载以获得无缝集成体验。 +### [使用 Aspose OCR C# 识别俄文文本 – 完整多页 PDF 指南](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +通过本完整指南,使用 Aspose OCR C# 在多页 PDF 中识别俄文文本,实现高效提取与处理。 ### [OCR图像识别中的识别表](./recognize-table/) 通过我们关于 OCR 图像识别中表格识别的综合指南,释放 Aspose.OCR for .NET 的潜力。 +### [C# OCR 教程:使用 Aspose OCR 从图像提取文本](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +使用 Aspose OCR 在 .NET 中轻松提取图像文本,提升您的 OCR 能力。 +### [C# OCR 教程:从图像提取文本并导出为 JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +使用 Aspose OCR 在 .NET 中提取图像文本并导出为 JSON,提升您的 OCR 工作流。 +### [C# OCR 教程:将 JPG 转换为 ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +使用 Aspose.OCR 在 C# 中将 JPG 图像转换为 ePub 电子书,轻松实现图像文字提取与格式转换。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..65a6f0f5 --- /dev/null +++ b/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR 教程,展示如何从图像中提取文本,使用 Aspose OCR 对 JPG 文件进行 OCR。学习如何加载图像进行 OCR 并获得准确的结果。 +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: zh +og_description: c# OCR 教程,指导您从图像中提取文本,对 JPG 进行 OCR,并使用 Aspose 加载图像进行 OCR。 +og_title: C# OCR 教程 – 使用 Aspose OCR 从图像中提取文本 +tags: +- OCR +- C# +- Aspose +title: C# OCR 教程:使用 Aspose OCR 从图像中提取文本 +url: /zh/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 教程 – 使用 Aspose OCR 从图像提取文本 + +寻找一个真正可用的 **c# ocr tutorial** 吗?在本指南中,我们将展示如何使用 Aspose.OCR 库 **extract text from an image** 并 **perform OCR on JPG** 文件。无论您是构建收据扫描器、文档归档系统,还是仅仅对从图片读取文本感兴趣,下面的步骤都能让您在几分钟内从零实现可运行的代码。 + +我们将覆盖您需要的所有内容:安装包、加载用于 OCR 的图像、配置语言资源、运行识别引擎以及处理最常见的陷阱。完成后,您将拥有一个自包含的控制台应用程序,它会将识别的文本打印到控制台——无需外部服务。 + +## 您需要的环境 + +- .NET 6.0 或更高(代码同样适用于 .NET Framework 4.6+) +- Visual Studio 2022、VS Code,或您偏好的任何 C# 编辑器 +- 包含俄语(西里尔字母)文本的图像文件,例如 `receipt_ru.jpg` +- 首次运行时需要网络连接(Aspose 将自动下载语言资源) + +如果您已经具备以上条件,太好了——让我们开始吧。 + +## 步骤 1:安装 Aspose.OCR 并创建新项目 + +首先,向项目添加 Aspose.OCR NuGet 包。在解决方案文件夹中打开终端并运行: + +```bash +dotnet add package Aspose.OCR +``` + +> **技巧提示:** 使用 `--version` 参数锁定到最新的稳定版本,例如 `Aspose.OCR 23.9.0`。 + +接下来,创建一个简单的控制台项目(如果已有项目可跳过): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +现在您拥有一个干净的起点,稍后可以粘贴完整的示例代码。 + +## 步骤 2:加载用于 OCR 的图像 + +加载图像是任何 **c# ocr tutorial** 的首个功能步骤。Aspose.OCR 支持文件路径、流或甚至 `Bitmap`。在本例中,我们将保持简单,从磁盘加载: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **原因说明:** 通过显式加载图像,您为引擎提供了明确的目标,从而提升准确性——尤其在处理多页 PDF 或混合格式输入时。 + +## 步骤 3:配置语言并自动下载资源 + +Aspose.OCR 附带可按需下载的语言包。启用自动下载可确保引擎在首次运行代码时获取俄语语言数据。 + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **说明:** +> • `AutoDownloadResources = true` 省去了手动获取 `.dat` 文件的步骤。 +> • 设置 `Language` 告诉引擎预期的字符集,从而显著提升识别速度和准确性。 + +## 步骤 4:运行 OCR 并获取识别文本 + +现在开始进行繁重的处理。`Recognize` 方法会处理图像并返回包含提取字符串的 `OcrResult` 对象。 + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +运行程序后,您应该会看到类似如下的输出: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **预期结果:** 具体输出取决于源图像的质量,但 Aspose 基于神经网络的引擎通常能高保真地处理干净的收据和打印表单。 + +## 完整可运行示例 + +下面是 **完整、可运行的代码**,整合了所有步骤。将其复制粘贴到 `Program.cs`,将 `YOUR_DIRECTORY` 替换为实际文件夹路径,然后运行 `dotnet run`。 + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **提示:** 如果需要 **extract text from image** 的文件不是 JPG(如 PNG、BMP、TIFF),只需更改文件扩展名——Aspose 都能处理。 + +## 步骤 5:常见陷阱与技巧 + +| 问题 | 产生原因 | 解决方案 | +|-------|----------------|-----| +| **乱码字符** | 低分辨率图像或高压缩率 | 使用更高质量的源,或使用 `Bitmap` 进行预处理(例如,提高对比度) | +| **语言未识别** | 语言包未下载 | 确保 `AutoDownloadResources` 为 `true`,并且机器在首次运行时能够访问互联网 | +| **`ocrResult.Text` 为 null** | 图像路径错误或文件缺失 | 验证路径,加载前使用 `File.Exists` 检查 | +| **性能下降** | 大批量图像顺序处理 | 在多次调用中复用同一个 `OcrEngine` 实例 | + +### 额外提示:在循环中读取多个文件 + +如果需要对文件夹中的 **perform OCR on JPG** 文件进行 OCR,可将逻辑包装在 `foreach` 中: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +此模式非常适合收据处理流水线的扩展。 + +## 结论 + +您刚刚完成了一个 **c# ocr tutorial**,展示了如何使用 Aspose.OCR **extract text from image**、**perform OCR on JPG**,以及 **load image for OCR**。示例程序演示了完整流程——从安装 NuGet 包到打印识别的西里尔文文本——您可以立即将其复制到任何 .NET 项目中使用。 + +准备好下一步了吗?尝试将 `OcrLanguage.Russian` 替换为 `OcrLanguage.English` 以识别英文收据,或尝试 `OcrEngine.Settings` 选项(例如 `PageSegmentationMode`、`ImagePreprocessing`)来微调准确性。您还可以将输出集成到数据库、生成 PDF,或传递给翻译 API。 + +如果遇到任何问题,请查阅 Aspose.OCR 文档或在下方留言。祝编码愉快,愿您的 OCR 结果始终清晰如晶! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..902b147c --- /dev/null +++ b/ocr/chinese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-01-01 +description: C# OCR 教程,展示如何提取文本、加载图像进行 OCR,并使用 Aspose.OCR 将 JSON 写入文件——一步一步的指南。 +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: zh +og_description: c# OCR 教程,逐步演示如何从图像中提取文本、加载图像进行 OCR,以及使用 Aspose.OCR 将 JSON 写入文件。 +og_title: c# OCR tutorial – Extract Text and Export to JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: C# OCR 教程 – 从图像提取文本并导出为 JSON +url: /zh/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 教程 – 从图像提取文本并导出为 JSON + +是否曾想过如何在不花费数小时编写自定义解析器的情况下,从扫描的发票中提取文本?你并不孤单。在本 **c# OCR 教程** 中,我们将向你展示如何为 OCR 加载图像、运行识别引擎,然后 **将 JSON 写入文件**,以便将数据馈送到下游系统。 + +想象一下,你有一个收据文件夹,每个文件名为 `receipt1.png`、`receipt2.png`,你需要一种快速方法将它们转换为可搜索的 JSON 记录。这就是我们要解决的问题,完成后你将拥有一个可直接运行的控制台应用程序,专门用于此目的。无需除 Aspose.OCR 之外的额外依赖,也没有魔法——只有清晰、可复现的步骤。 + +> **你将学到** +> - 如何使用 Aspose.OCR **加载图像进行 OCR**。 +> - **提取文本** 并获取置信度分数的最佳方式。 +> - 将 OCR 结果转换为结构良好的 **OCR 图像到 JSON** 负载。 +> - 安全 **将 JSON 写入文件** 并验证输出。 + +## 前置条件 + +- .NET 6 SDK 或更高版本(代码同样适用于 .NET Core)。 +- Visual Studio 2022 或你喜欢的任意编辑器。 +- Aspose.OCR NuGet 包(`Install-Package Aspose.OCR`)。 +- 一张你想要处理的图像文件(PNG、JPG、BMP)——演示中我们使用 `invoice.png`。 + +如果缺少上述任意项,请从 Microsoft 官网下载 SDK,并通过包管理器控制台添加 NuGet 包: + +```powershell +Install-Package Aspose.OCR +``` + +现在基础工作已经就绪,让我们深入实际实现。 + +## 第一步:c# OCR 教程 – 初始化 OCR 引擎 + +在 **加载图像进行 OCR** 之前,需要一个驱动识别过程的引擎实例。`OcrEngine` 类体积轻巧,但最好将其放在 `using` 块中,以便及时释放资源。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*小贴士*:如果计划批量处理大量图像,建议复用同一个 `OcrEngine` 实例,而不是每次都创建新实例。这样可以降低内存消耗并提升速度。 + +## 第二步:加载图像进行 OCR + +现在我们真正 **加载图像进行 OCR**。Aspose.OCR 支持多种格式,你可以指向 PNG、JPEG,甚至是多页 TIFF。`OcrImage.FromFile` 方法读取文件并为识别做好准备。 + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **为何重要**:单独加载图像可以让你检查其尺寸、DPI,或在送入引擎前进行预处理(例如二值化)。如果图像损坏,`FromFile` 会抛出明确的异常,你可以捕获并记录。 + +## 第三步:提取文本 – 运行识别 + +手握图像后,终于可以 **提取文本** 了。`Recognize` 方法返回一个 `OcrResult` 对象,除了纯文本外,还包含每个单词的位置数据和置信度分数。 + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*边缘情况*:某些 PDF 包含不可见的文本层。如果你将 PDF 页面渲染为图像后再送入引擎,可能会什么也看不到。此时可以先使用 Aspose.PDF 提取隐藏层,再在必要时回退到 OCR。 + +## 第四步:OCR 图像到 JSON – 转换结果 + +`OcrResult` 类提供了便利的 `ToJson()` 方法,可将整个结果集(包括每个单词的边界框和置信度)序列化为 JSON 字符串。这是实现 **OCR 图像到 JSON** 的最简洁方式,无需自行编写序列化器。 + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +如果你需要自定义模式,也可以遍历 `ocrResult.Words` 并自行构建对象,但在大多数场景下内置的 JSON 已经足够且结构良好。 + +## 第五步:将 JSON 写入文件 + +现在进入最后一步:持久化 JSON 负载。`File.WriteAllText` 方法确保文件以原子方式创建(或覆盖)。请确保目标目录已存在,否则会抛出 `DirectoryNotFoundException`。 + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*提示*:如果需要带 BOM 的 UTF‑8 或其他编码,可使用接受 `Encoding` 参数的重载。 + +## 第六步:验证输出 + +一个简短的 `Console.WriteLine` 即可告诉我们过程是否成功。你也可以在查看器中打开 JSON 文件,以确认其结构。 + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### 预期的 JSON 片段 + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON 包含每个单词的位置,对于后续在 UI 中高亮显示文本非常有用。 + +## 完整工作示例 + +下面是完整的、可直接复制粘贴的程序。将 `YOUR_DIRECTORY` 替换为实际存放图像的路径。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +在项目文件夹中运行程序(`dotnet run`),你会在原始 PNG 同目录下看到 `invoice.json`。 + +## 常见陷阱及规避方法 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **FileNotFoundException** 在加载图像时 | 路径拼写错误或文件缺失 | 使用 `Path.Combine` 并在调用 `FromFile` 前检查 `File.Exists`。 | +| **置信度分数低** | 图像质量差、DPI 低 | 使用 `ocrImage.AdjustContrast` 进行预处理,或将图像放大至 300 DPI。 | +| **JSON 文件为空** | `ocrResult` 为 null(引擎失败) | 确认图像格式受支持,且许可证(如有)已正确应用。 | +| **大批量处理性能瓶颈** | 每次迭代重新创建 `OcrEngine` | 在批处理期间复用单个 `OcrEngine` 实例,结束后再一次性释放。 | + +## 后续步骤 + +掌握了 **c# OCR 教程** 后,你可能想要: + +- **批量处理** 整个文件夹,并将所有 JSON 汇总到单个数据库中。 +- **集成** 输出到 Azure Cognitive Search,实现可搜索的 PDF。 +- **添加语言支持**,例如 `ocrEngine.Language = OcrLanguage.Spanish`(或任何受支持的语言)。 +- **后处理** JSON,使用正则表达式提取表格或键值对。 + +上述每个扩展都基于我们已覆盖的核心概念:加载图像进行 OCR、提取文本、转换为 JSON、并将 JSON 写入磁盘。 + +--- + +### 结论 + +在本 **c# OCR 教程** 中,我们逐步演示了如何 **加载图像进行 OCR**、**提取文本**、将结果转化为 **OCR 图像到 JSON** 负载,最后 **将 JSON 写入文件**。完整代码示例可直接嵌入任何 .NET 项目,配套的解释帮助你将方案适配到真实业务场景。 + +尝试使用自己的收据或发票进行实验——调整图像预处理、切换不同语言,观察 JSON 输出的变化。如遇到问题,可回顾上表中的陷阱或在下方留言。祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/chinese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..b415a455 --- /dev/null +++ b/ocr/chinese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-01-01 +description: 学习如何在 C# 中使用 Aspose OCR 对图像进行 OCR 并将 JPG 转换为 ePub。本分步指南还展示了如何从图像中提取文本。 +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: zh +og_description: 如何在 C# 中进行图像 OCR?请遵循本指南,从图像中提取文本并使用 Aspose OCR 将 JPG 转换为 ePub。 +og_title: 如何在 C# 中进行图像 OCR – 将 JPG 转换为 ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: 如何在 C# 中进行图像 OCR – 将 JPG 转换为 ePub +url: /zh/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中进行图像 OCR – 将 JPG 转换为 ePub + +是否曾想过 **如何在 C# 控制台应用中直接对图像文件进行 OCR**?你并不是唯一的遇到这个问题的人。许多开发者在需要从照片中提取文本并将其打包成可阅读的 ePub 书籍时都会卡住。 + +在本教程中,我们将演示一个完整、可运行的示例,**从图像中提取文本**,将结果保存为 ePub,并展示如何 **在不离开 IDE 的情况下将 JPG 转换为 ePub**。没有冗余,只提供可以复制‑粘贴并立即运行的代码。 + +## 你将学到的内容 + +- 如何在 .NET 项目中设置 Aspose OCR 引擎。 +- 使用 `OcrSaveFormat.Epub` 选项 **将图像转换为 ePub** 的完整步骤。 +- 处理常见陷阱(如不受支持的图像格式或缺失字体)的技巧。 +- 一个完整的 C# 程序,你可以立即编译并执行。 + +**先决条件**:.NET 6 SDK(或任意较新 .NET 版本)、有效的 Aspose.OCR NuGet 包,以及一张你想处理的图像文件(`input.jpg`)。如果你从未使用过 NuGet,只需打开包管理器控制台并运行 `Install-Package Aspose.OCR` 即可。 + +准备好了吗?让我们开始吧。 + +## 第一步 – 如何 OCR 图像并加载源文件 + +首先需要创建一个 OCR 引擎实例并加载源图像。Aspose OCR 让这一步变得非常简单:你创建一个 `OcrEngine`,然后将从磁盘加载的 `OcrImage` 传入。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **为什么这很重要** – 只初始化一次引擎可以保持低内存使用,提前加载图像还能在进行繁重的 OCR 工作之前验证文件路径是否正确。 + +## 第二步 – 运行 OCR 并从图像中提取文本 + +图像已在内存中后,调用引擎进行字符识别。`Recognize` 方法返回一个 `OcrResult` 对象,其中包含纯文本、置信度分数,甚至布局信息。 + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **专业提示** – 如果你只需要文本而不需要 ePub,可以在此停止。`ocrResult.Text` 属性是一个干净的字符串,能够直接输送到任何其他系统。 + +## 第三步 – 将结果保存为 ePub 书籍(将 JPG 转换为 ePub) + +Aspose OCR 可以直接将 OCR 结果序列化为多种格式,包括 ePub。此步骤展示了如何在一行代码中 **将 JPG 转换为 ePub**。 + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +运行程序后,你会在控制台看到提取的文本,同时在源图像旁边生成一个新的 `book_page.epub` 文件。使用任意 ePub 阅读器(Calibre、Apple Books 等)打开,它会以单页书籍的形式呈现整齐的 OCR 文本。 + +### 预期输出 + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +如果 ePub 能够正常打开,恭喜你——你刚刚完成了一个完整的 **c# OCR 示例**,实现了将 JPEG 转换为可携带的 ePub。 + +## 第四步 – 将图像转换为 ePub 时的常见问题 + +即使使用了强大的库,你仍可能遇到一些障碍。下面是快速 FAQ: + +| 问题 | 产生原因 | 解决办法 | +|-------|----------------|------------| +| **不受支持的图像格式** | Aspose OCR 只接受光栅格式(JPG、PNG、BMP)。 | 先将图像转换为 JPG 或 PNG,例如使用 `System.Drawing.Image`。 | +| **输出为空白** | 图像质量低或压缩过重。 | 提高 DPI,使用更清晰的扫描,或进行图像预处理(`ocrEngine.Preprocess`)。 | +| **ePub 中缺失字体** | 默认的 ePub 写入器使用系统字体,可能未嵌入。 | 将 `ocrEngine.Config.FontsDirectory` 设置为包含所需 .ttf 文件的文件夹。 | +| **ePub 文件过大** | 高分辨率图像被作为单独页面嵌入。 | 使用 `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`。 | + +提前处理这些问题可以避免后期的调试困扰。 + +## 第五步 – 扩展示例(超出基础) + +现在你已经拥有了一个可用的 **将图像转换为 ePub** 流程,或许会想进一步探索。以下是一些可以在明天尝试的思路: + +1. **批量处理** – 循环遍历文件夹中的 JPG,针对每张图像生成一个 ePub,或将它们合并为多章节 ePub。 +2. **语言选择** – 设置 `ocrEngine.Language = Language.English;` 或任意受支持语言,以提升识别准确度。 +3. **保持布局** – 先使用 `OcrSaveFormat.Html`,再将生成的 HTML 包装进 ePub,以获得更丰富的格式。 +4. **云部署** – 将代码封装为 Azure Function 或 AWS Lambda,提供 OCR‑to‑ePub 的 Web 服务。 + +这些扩展都基于我们刚才讲解的 **如何 OCR 图像** 的核心逻辑。 + +## 完整可运行代码(复制‑粘贴即用) + +下面是一整段程序代码。将 `YOUR_DIRECTORY` 替换为实际的图像文件路径。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **请记住** – 必须已安装 `Aspose.OCR` NuGet 包,目标 .NET 运行时建议至少为 .NET 5,以获得最佳兼容性。 + +## 结论 + +我们已经完整演示了 **如何在 C# 中对图像文件进行 OCR**,并将这些扫描结果转换为整洁的 ePub 书籍——本质上是一个 **将 JPG 转换为 ePub** 的工作流,能够直接嵌入任何项目。按照上述步骤,你可以 **从图像中提取文本**、处理常见边缘情况,并将解决方案扩展到批处理或云服务。 + +如果想进一步探索,可以尝试将 ePub 输出改为 PDF(`OcrSaveFormat.Pdf`),或将 OCR 文本送入翻译 API。掌握基础后,想象空间无限。 + +对特定图像格式有疑问,或想看到多页 ePub 示例?欢迎留言,我会乐于帮助。祝编码愉快,享受将图片变成书籍的过程! + +![如何 OCR 图像示例](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/chinese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..b5ea6018 --- /dev/null +++ b/ocr/chinese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: 使用 Aspose OCR C# 即时识别俄文文本。学习识别中文文本、读取 PDF 页数以及在一个教程中转换 PDF 页面文本。 +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: zh +og_description: 使用 Aspose OCR C# 快速识别俄文文本。本教程还涵盖如何识别中文文本、读取 PDF 页数以及转换 PDF 页面文本。 +og_title: 使用 Aspose OCR C# 识别俄文文本 – 完整指南 +tags: +- Aspose OCR +- C# +- PDF processing +title: 使用 Aspose OCR C# 识别俄文文本 – 完整多页 PDF 指南 +url: /zh/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR C# 识别俄文文本 – 完整的多页 PDF 教程 + +是否曾经需要在混合语言的 PDF 中 **recognize russian text**,并且想知道如何在不为每页单独使用工具的情况下完成?你并不孤单。在许多真实项目中,你会得到一个包含英文、俄文,甚至中文的单个 PDF,且仍希望得到统一、干净的文本输出。 + +在本指南中,我们将准确展示如何使用 **Aspose OCR C#** 来 **recognize russian text**(以及其他语言),同时演示如何 **read pdf page count**、**recognize chinese text** 和 **convert pdf page text** 为方便的控制台输出。无需外部服务,无隐藏步骤——只需纯 C# 代码,复制粘贴即可运行。 + +> **What you’ll walk away with** +> * 一个可运行的 C# 控制台应用程序,用于处理多页 PDF。 +> * 每页语言选择(俄文、中文、英文)。 +> * 查询 PDF 页面计数并提取每页文本的技术。 +> * 可应用于自己项目的技巧、陷阱和扩展。 + +## 先决条件 + +- .NET 6.0 或更高(代码同样适用于 .NET Framework 4.7+)。 +- 已安装 **Aspose.OCR for .NET** NuGet 包(`dotnet add package Aspose.OCR`)。 +- 包含混合语言的 PDF 文件;演示中我们使用 `mixed_lang.pdf`。 +- 对 C# 控制台应用有基本了解。 + +如果缺少上述任意项,请从 NuGet 获取最新的 Aspose OCR,并将 PDF 放在项目文件夹可访问的位置。 + +## 步骤 1 – 初始化 Aspose OCR 引擎 + +首先需要的是 `OcrEngine` 实例。该对象保存所有设置(如语言),并执行繁重的工作。 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> 引擎是可重用的,这样我们就不会为每页创建新实例而浪费内存。重复使用它还能让我们在运行时切换语言,这对于在某页 **recognize russian text**、在另一页 **recognize chinese text** 至关重要。 + +## 步骤 2 – 加载 PDF 并获取页面数量 + +在开始识别之前,我们需要 PDF 对象及其页面计数。Aspose OCR 将每页视为 `OcrImage`。 + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** 如果 PDF 很大,您可能想先读取计数,然后决定是处理所有页面还是仅处理子集。 + +## 步骤 3 – 为每页映射所需语言 + +Aspose OCR 支持多种语言,但必须为每页指定使用哪种语言。下面我们创建一个 `Dictionary`,其中键为从零开始的页面索引。 + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Why this is crucial:** +> 如果没有此映射,OCR 引擎会对每页使用单一默认语言,导致俄文或中文文本输出乱码。此步骤直接实现对 **recognize russian text** 和 **recognize chinese text** 的正确识别。 + +## 步骤 4 – 遍历所有页面,设置语言并识别文本 + +现在我们遍历每页,根据映射切换语言,并调用 `Recognize`。结果存储在 `OcrResult` 中,我们从中提取纯文本。 + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### 预期的控制台输出 + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explanation of the flow:** +> * 循环遵循我们之前打印的 **read pdf page count**。 +> * 通过在每次迭代中切换 `ocrEngine.Settings.Language`,我们确保在第 2 页准确 **recognize russian text**,在第 3 页准确 **recognize chinese text**。 +> * `Console.WriteLine` 语句有效地 **convert pdf page text** 为人类可读的字符串。 + +## 步骤 5 – 运行、验证并微调 + +1. 构建项目(`dotnet build`)。 +2. 运行项目(`dotnet run`)。 +3. 将控制台输出与原始 PDF 进行比较。 + +如果发现字符缺失,请考虑: + +- 通过设置 `ocrEngine.Settings.DetectTextOrientation = true;` **Increasing OCR accuracy**。 +- 如果内置的俄文或中文词典已过时,**Providing a custom language pack**。 +- 加载 PDF 时 **Adjusting DPI**(`OcrImage.FromFile(path, 300)`),这可以提升低分辨率扫描的识别效果。 + +## 附加:处理边缘情况 + +### 如果页面的语言不在映射中怎么办? + +代码已经回退到英文,但您也可以添加一个记录警告的回退机制: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### 我们能处理包含超过三种语言的 PDF 吗? + +当然可以。通过在 `languageMap` 中添加更多索引和支持的 `OcrLanguage` 值(例如 `OcrLanguage.French`)来扩展。循环将能够处理任意页数。 + +### 如何将结果导出到文件而不是控制台? + +将 `Console.WriteLine` 调用替换为 `File.AppendAllText("output.txt", …)`,或使用 `StringBuilder`,在循环结束后一次性写入。 + +## 图片示例 + +![识别俄文文本示例](/images/recognize-russian-text.png "显示俄文 OCR 输出的截图") + +*上图展示了在混合语言 PDF 上执行 **recognize russian text** 时的控制台输出。* + +## 结论 + +我们已经完整演示了一个端到端的示例,展示如何使用 **Aspose OCR C#** 从多页 PDF 中 **recognize russian text**(以及 **recognize chinese text**)。通过读取 PDF 的页面计数、为每页映射正确的语言并遍历文档,您可以 **convert pdf page text** 为纯字符串,以便存储、索引或进一步分析。 + +In short: + +- **Initialize** 单个 `OcrEngine`。 +- **Load** PDF 并 **read pdf page count**。 +- **Map** 页面到语言(俄文、中文等)。 +- **Iterate**,设置 `ocrEngine.Settings.Language`,并 **recognize** 每页。 +- **Output** 或保存提取的文本。 + +欢迎将此模式应用于更大的文档,添加错误处理,或将结果接入搜索索引。核心思想——每页语言选择——保持不变,这正是实现混合语言 PDF 中可靠 **recognize russian text** 的关键。 + +如果有其他场景,例如扫描图像而非 PDF?同一引擎同样适用,只需将 `OcrImage.FromFile` 替换为 `OcrImage.FromStream` 或 `FromBitmap`。祝编码愉快,愿您的 OCR 永远精准! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/ocr-configuration/_index.md b/ocr/czech/net/ocr-configuration/_index.md index 7aacf222..9f09904c 100644 --- a/ocr/czech/net/ocr-configuration/_index.md +++ b/ocr/czech/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ Odemkněte sílu rozpoznávání obrázků OCR v .NET s Aspose.OCR. Extrahujte t Odemkněte výkonné možnosti OCR s Aspose.OCR pro .NET. Bezproblémově extrahujte text z obrázků. ### [OCROoperace se seznamem v OCR rozpoznávání obrazu](./ocr-operation-with-list/) Odemkněte potenciál Aspose.OCR pro .NET. Bez námahy provádějte rozpoznávání obrázků OCR pomocí seznamů. Zvyšte produktivitu a extrakci dat ve svých aplikacích. +### [Jak použít licenci v Aspose OCR – krok za krokem průvodce v C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Naučte se, jak aktivovat licenci v Aspose OCR pro .NET aplikace pomocí C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/czech/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..b2336c40 --- /dev/null +++ b/ocr/czech/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: Jak aplikovat licenci pro Aspose OCR v C#. Naučte se, jak číst soubor, + nastavit licenci Aspose, použít MemoryStream a efektivně načíst licenci. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: cs +og_description: Jak použít licenci pro Aspose OCR v C#. Postupujte podle tohoto návodu + k načtení licenčního souboru, nastavení licence Aspose, použití MemoryStream a ověření + nastavení. +og_title: Jak použít licenci v Aspose OCR – Kompletní C# tutoriál +tags: +- Aspose +- OCR +- C# +- Licensing +title: Jak použít licenci v Aspose OCR – krok za krokem průvodce v C# +url: /cs/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak použít licenci v Aspose OCR – Kompletní průvodce pro C# + +Už jste se někdy zamysleli nad **tím, jak použít licenci** pro Aspose OCR, aniž byste museli pronásledovat nejasnou dokumentaci? Nejste v tom sami. Většina vývojářů narazí na stejný problém: dokážou soubor načíst, ale neví, jak jej správně předat knihovně. V tomto tutoriálu projdeme každý detail – od načtení souboru `.lic` z disku po volání `SetLicense` s `MemoryStream`. Na konci budete mít funkční řešení, které můžete vložit do libovolného .NET projektu. + +Také se podíváme na **to, jak bezpečně načíst soubor**, správný způsob **nastavení licence Aspose** a proč je použití **MemoryStream** nejčistším přístupem. Pokud vás zajímá **jak načíst licenci** v různých prostředích, tyto tipy jsou také zahrnuty. Nepotřebujete žádné externí odkazy – jen čistý, připravený k základnímu zkopírování kód. + +## Požadavky + +- .NET 6.0 nebo novější (kód funguje jak s .NET Core, tak s .NET Framework) +- Aspose.OCR NuGet balíček nainstalován (`Install-Package Aspose.OCR`) +- Platný soubor `Aspose.OCR.lic` umístěný na místě, kde ho aplikace může najít +- Základní znalost C# a Visual Studio (nebo libovolného IDE dle preference) + +> **Tip:** Uchovávejte licenční soubor mimo složku se zdrojovým kódem, aby nedošlo k náhodnému commitu. + +## Krok 1: Jak načíst soubor – Načtení bajtů licence + +Prvním, co potřebujeme, je surové pole bajtů licenčního souboru. Použití `File.ReadAllBytes` je jednoduché i efektivní a automaticky vyhodí srozumitelnou výjimku, pokud je cesta špatná. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Proč je to důležité:** Načtení souboru přímo do paměti zabraňuje únikům souborových handle a poskytuje čisté pole bajtů, se kterým můžeme později pracovat. Také to činí metodu znovupoužitelnou napříč konzolovými aplikacemi, webovými službami nebo Azure Functions. + +## Krok 2: Jak použít MemoryStream – Připravte licenční stream + +Aspose’s `License.SetLicense` overload expects a `Stream`. Zabalit pole bajtů do `MemoryStream` je idiomatický způsob, jak splnit tuto požadavek, aniž byste znovu zasahovali do souborového systému. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Klíčový postřeh:** `MemoryStream` je nenáročný a rychle se uvolní. Také vám umožní znovu použít stejné pole bajtů pro více knihoven, pokud budete potřebovat použít licence pro více produktů Aspose. + +## Krok 3: Nastavení licence Aspose – Jádro „jak použít licenci“ + +Nyní, když máme `MemoryStream`, aplikace licence je jednorázová operace. Třída `License` se nachází v namespace `Aspose.OCR`, takže se ujistěte, že jste přidali správnou `using` direktivu. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Pokud je licence neplatná nebo vypršela, `SetLicense` selže tiše a knihovna bude fungovat v režimu zkušební verze. Pro naprostou jistotu můžete zkontrolovat funkci, která je dostupná jen v licencované verzi (např. nastavení přesnosti OCR), nebo se spolehnout na potvrzovací zprávu, kterou později vytiskneme. + +## Krok 4: Jak načíst licenci – Sestavení všeho dohromady + +Níže je kompletní spustitelný konzolový program, který demonstruje **jak načíst licenci** z disku, použít `MemoryStream` a ověřit, že licence byla úspěšně aplikována. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Očekávaný výstup + +``` +License applied successfully. You can now perform OCR operations. +``` + +Pokud vidíte zprávu, knihovna je plně licencovaná a připravená na produkční úlohy OCR. + +## Časté úskalí a jak se jim vyhnout + +| Problém | Proč se to stane | Řešení | +|-------|----------------|-----| +| **FileNotFoundException** při čtení licence | Cesta je špatná nebo soubor není nasazen s aplikací | Použijte absolutní cestu nebo vložte licenci jako zdroj (viz „alternativní načítání“ níže) | +| **Licence nebyla aplikována, ale žádná chyba** | `SetLicense` tiše přepne do zkušebního režimu, pokud je stream prázdný nebo poškozený | Ověřte `licenseData.Length > 0` před vytvořením `MemoryStream` | +| **MemoryStream není uvolněn** | Zapomenutí `using` vede k zbytkům neřízených prostředků | Vždy obalte stream do bloku `using`, jak je ukázáno | + +### Alternativa: Vložení licence jako vložený zdroj + +Pokud raději nechcete distribuovat samostatný soubor `.lic`, přidejte jej do projektu, nastavte **Build Action** na **Embedded Resource** a načtěte jej takto: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Poté zavolejte `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` a pokračujte stejným přístupem s `MemoryStream`. + +## Závěr + +Probrali jsme **jak použít licenci** pro Aspose OCR od začátku do konce: načtení souboru, vytvoření `MemoryStream`, volání `SetLicense` a potvrzení aktivace. Dodržením těchto kroků odstraníte hádání, vyhnete se běžným chybám a zajistíte, že váš OCR engine běží v plném režimu. + +Příště můžete zkoumat **jak asynchronně načíst soubor** pro služby s vysokou propustností, nebo se ponořit do pokročilých nastavení OCR, nyní když je licence správně načtena. V každém případě zůstává vzor stejný – načíst, streamovat, nastavit, ověřit. + +Máte otázky ohledně okrajových případů, jako je načítání licence v prostředí ASP.NET Core nebo správa více licencí produktů Aspose? Zanechte komentář níže a šťastné programování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/ocr-optimization/_index.md b/ocr/czech/net/ocr-optimization/_index.md index 278be8e2..9de14413 100644 --- a/ocr/czech/net/ocr-optimization/_index.md +++ b/ocr/czech/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Prozkoumejte Aspose.OCR pro .NET. Zvyšte přesnost OCR pomocí filtrů předbě Vylepšete přesnost OCR pomocí Aspose.OCR pro .NET. Opravte pravopis, přizpůsobte slovníky a dosáhněte bezproblémového rozpoznávání textu bez námahy. ### [Uložit vícestránkový výsledek jako dokument v rozpoznávání obrazu OCR](./save-multipage-result-as-document/) Odemkněte potenciál Aspose.OCR pro .NET. Pomocí tohoto komplexního podrobného průvodce snadno ukládejte vícestránkové výsledky OCR jako dokumenty. +### [Jak provádět hromadné OCR v C# s Aspose OCR Engine](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Naučte se provádět hromadné OCR v C# s Aspose OCR Engine a efektivně zpracovávat velké množství obrázků. + +### [Předzpracování obrazu OCR v C# – Zvýšení přesnosti s Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Zvyšte přesnost OCR v C# předzpracováním obrázků pomocí Aspose OCR. Jednoduchý průvodce pro lepší výsledky. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/czech/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..84f06ca0 --- /dev/null +++ b/ocr/czech/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: Jak provádět dávkové OCR pomocí Aspose OCR Engine v C#. Naučte se rozpoznávat + text z obrázků a extrahovat text z TIFF souborů s akcelerací GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: cs +og_description: Jak provádět hromadné OCR v C# s Aspose OCR Engine. Tento průvodce + vám ukáže, jak efektivně rozpoznávat text z obrázků a extrahovat text z TIFF souborů. +og_title: Jak provádět dávkové OCR v C# – Kompletní průvodce Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Jak provést dávkové OCR v C# s OCR enginem Aspose +url: /cs/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak provádět hromadné OCR v C# s OCR enginem Aspose + +Už jste se někdy zamysleli **jak provádět hromadné OCR**, když máte desítky naskenovaných dokumentů uložených ve složce? Nejste v tom sami — mnoho vývojářů narazí na tuto překážku při přechodu z rozpoznávání jedné obrázkové souboru na zpracování celé kolekce. Dobrou zprávou je, že Aspose OCR to dělá hračkou, ať už běžíte na CPU nebo využíváte akceleraci GPU. + +V tomto tutoriálu projdeme kompletním, spustitelným příkladem, který **rozpoznává text z obrázků** a dokonce **extrahuje text z TIFF** souborů hromadně. Žádné vágní odkazy typu „viz dokumentace“ — jen samostatné řešení, které můžete dnes zkopírovat, vložit a spustit. + +## Požadavky + +Než se pustíme dál, ujistěte se, že máte: + +* .NET 6.0 nebo novější nainstalovaný (kód cílí na .NET 6, ale .NET 5 funguje také). +* NuGet balíček Aspose.OCR pro .NET (k dispozici jsou verze pro CPU i GPU; nainstalujte tu, která odpovídá vašemu hardwaru). +* Složku s několika ukázkovými TIFF nebo PNG soubory, které chcete zpracovat. +* Visual Studio 2022 nebo jakékoli jiné IDE, které preferujete. + +> **Tip:** Pokud plánujete použít verzi pro GPU, ověřte, že máte aktuální grafický ovladač a že je nainstalováno CUDA 11+. Engine automaticky přejde na CPU, pokud nenajde kompatibilní GPU. + +## Krok 1 – Nastavení projektu a instalace Aspose.OCR + +### H2: Vytvořte novou konzolovou aplikaci a přidejte Aspose.OCR + +Otevřete terminál (nebo Package Manager Console ve Visual Studiu) a spusťte: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Pokud máte licenci s podporou GPU, přidejte místo toho GPU balíček: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +A to je vše — váš projekt nyní odkazuje na OCR knihovnu, kterou použijeme pro **hromadné OCR**. + +## Krok 2 – Inicializace OCR enginu (CPU nebo GPU) + +### H2: Jak provádět hromadné OCR – Inicializace enginu + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Proč je to důležité:** Přepnutím `UseGpu` necháte Aspose rozhodnout o nejrychlejší cestě. Pokud GPU není k dispozici, engine tiše přepne zpět na CPU, takže váš hromadný úkol nikdy nezhaví kvůli chybějícímu hardwaru. + +## Krok 3 – Shromáždění souborů, které chcete zpracovat + +### H2: Rozpoznání textu z obrázků – Vytvoření seznamu souborů + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Poznámka k okrajovým případům:** Pokud máte směs formátů, změňte vyhledávací vzor na `"*.*"` a filtrujte podle přípony uvnitř smyčky. Tím zůstane hromadná úloha flexibilní. + +## Krok 4 – Zpracování každého obrázku a zobrazení náhledu + +### H2: Extrahování textu z TIFF – Procházení souborů + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Co uvidíte:** Pro každý TIFF konzole vypíše něco jako: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Tento náhled potvrzuje, že hromadné zpracování proběhlo úspěšně, aniž byste museli ručně otevírat každý soubor. + +## Krok 5 – Uložení výsledků (volitelné, ale užitečné) + +### H3: Uložení OCR výstupu do textových souborů + +Pokud potřebujete kompletní text pro další zpracování, přidejte následující kód uvnitř smyčky `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Nyní každý TIFF získá doprovodný `.txt` soubor obsahující celý OCR výstup — ideální pro indexování, vyhledávání nebo předání jazykovému modelu. + +## Krok 6 – Spuštění demoa a ověření + +1. Sestavte projekt: `dotnet build`. +2. Spusťte: `dotnet run --project GpuBatchDemo.csproj`. + +Měli byste vidět řádky s náhledem vytištěné v konzoli a (pokud jste přidali volitelný krok) sérii `.txt` souborů vedle vašich zdrojových obrázků. + +### H3: Časté problémy a jejich řešení + +| Příznak | Pravděpodobná příčina | Oprava | +|---------|-----------------------|--------| +| **Prázdný `ocrResult.Text`** | Obrázek je příliš tmavý nebo má nízké DPI | Předzpracujte obrázky (zvyšte kontrast, upscale) nebo nastavte `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU chyba “CUDA driver version is insufficient”** | Zastaralý ovladač | Aktualizujte GPU ovladač, nebo nastavte `UseGpu = false` pro vynucení CPU. | +| **Výjimka “File not found”** | Špatný oddělovač cesty na Linux/macOS | Používejte `Path.Combine` nebo dopředná lomítka (`/`). | + +## Krok 7 – Škálování (nad několik souborů) + +Když přejdete z několika TIFF na tisíce, zvažte: + +* **Paralelní zpracování:** Zabalte `foreach` do `Parallel.ForEach` (ujistěte se, že instance enginu je thread‑safe; jinak vytvořte jednu na každé vlákno). +* **Dávkové I/O:** Čtěte obrázky po částech, abyste nevyčerpali RAM. +* **Logování:** Zapisujte průběh do log souboru; pomůže to obnovit zpracování po pádu. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Pamatujte:** Paměť GPU je sdílená, takže spouštění příliš mnoha paralelních GPU úloh může ve skutečnosti zpomalit výkon. Otestujte nejprve s několika vlákny. + +## Kompletní funkční příklad (připravený ke kopírování) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Spuštěním tohoto programu **rozpoznáte text z obrázků**, **extrahujete text z TIFF** a ukážete **jak provádět hromadné OCR** efektivně. + +--- + +## Závěr + +Nyní máte solidní, end‑to‑end příklad **jak provádět hromadné OCR** v C# pomocí OCR enginu od Aspose. Tutoriál pokryl vše od nastavení projektu, přepínání GPU akcelerace, tvorby seznamu souborů, zpracování každého obrázku až po ukládání výsledků. Ať už extrahujete text z TIFF souborů nebo jakéhokoli jiného formátu obrázku, stejný vzor platí — stačí jen vyměnit přípony souborů. + +Jste připraveni na další krok? Zkuste integrovat OCR výstup do vyhledávacího indexu, předat text velkému jazykovému modelu nebo experimentovat s paralelním zpracováním, abyste ušetřili minuty u masivních batchů. Možnosti jsou neomezené a máte pevný základ, na kterém můžete stavět. + +Máte otázky nebo chcete sdílet své vlastní tipy na hromadné OCR? Zanechte komentář níže — šťastné kódování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/czech/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..3245b9cc --- /dev/null +++ b/ocr/czech/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Předzpracujte obrázek OCR pro zvýšení přesnosti. Naučte se, jak rozpoznávat + text na obrázku, zlepšit přesnost OCR, načíst OCR obrázku a zobrazit OCR text pomocí + Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: cs +og_description: předzpracujte OCR obrázku pro zlepšení přesnosti. Tento průvodce ukazuje, + jak rozpoznat text na obrázku, načíst OCR obrázku, aplikovat filtry a zobrazit OCR + text. +og_title: Předzpracování OCR obrázku v C# – Zvyšte přesnost s Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Předzpracování OCR obrázku v C# – Zvyšte přesnost pomocí Aspose OCR +url: /cs/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Už jste se někdy zamýšleli, jak **preprocess image ocr**, aby engine skutečně četl, co je na stránce? Nejste sami — většina vývojářů narazí na problém, když špinavý, nakloněný sken odmítá spolupracovat. Dobrou zprávou je, že několik chytrých kroků předzpracování může proměnit katastrofální obrázek v čistý, čitelný text. + +V tomto tutoriálu projdeme kompletní, připravený příklad, který **recognize text image** soubory, **improve OCR accuracy**, a nakonec **display OCR text** v konzoli. Na konci budete vědět, jak **load image OCR** zdroje, připojit filtry jako korekci sklonu a odšumování, a získat spolehlivé výsledky — vše s Aspose.OCR pro .NET. + +## What You’ll Learn + +- Jak vytvořit instanci `OcrEngine` a nakonfigurovat filtry předzpracování. +- Proč jsou filtry pro korekci sklonu a odšumování důležité pro **improve OCR accuracy**. +- Přesný kód pro **load image ocr** soubory a spuštění rozpoznávání. +- Jak **display OCR text** uživatelsky přívětivým způsobem. +- Tipy, úskalí a volitelné úpravy, které můžete použít v reálných projektech. + +### Prerequisites + +- .NET 6+ (nebo .NET Framework 4.7+) nainstalovaný na vašem počítači. +- Licence pro Aspose.OCR (pro tento demo funguje i bezplatná zkušební verze). +- Základní znalost C# — žádné pokročilé triky nejsou potřeba. + +Pokud vám něco z toho není známé, zastavte se, nainstalujte chybějící komponenty; zbytek průvodce předpokládá, že jsou k dispozici. + +--- + +## preprocess image ocr – Setting Up Filters + +První věc, kterou musíte pochopit, je **why preprocessing matters**. OCR enginy jsou skvělé v čtení ostrého, rovného textu, ale reálné skeny často trpí rotací, rozmazáním nebo šumem na pozadí. Pokud engine nasytíte vyčištěným obrázkem, dramaticky zvýšíte šanci na správnou transkripci. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Co se zde děje?** +- **Step 1** vytváří engine — srdce knihovny Aspose OCR. +- **Step 2** připojuje dva filtry. `SkewCorrectionFilter` otočí obrázek zpět do vodorovné polohy, zatímco `DenoiseFilter` vyhladí šum na úrovni pixelů. +- **Step 3** je volitelný, ale užitečný; můžete omezit maximální úhel, který engine bude zkoušet korigovat, čímž zabráníte pře‑rotaci již rovných stránek. +- **Step 4** je místo, kde **load image OCR** data. Nahraďte `YOUR_DIRECTORY/skewed_noisy.jpg` cestou k vašemu testovacímu souboru. +- **Step 5** skutečně spouští OCR a vytváří `OcrResult`. +- **Step 6** **display OCR text** v konzoli, což vám poskytne okamžitou zpětnou vazbu. + +> **Tip:** Pokud si všimnete, že výstup stále obsahuje nesmyslné znaky, zkuste zvýšit `MaxAngle` nebo před krok odšumování přidat `ContrastFilter`. + +--- + +## recognize text image – Loading Your Files Correctly + +Častým úskalím je **load image ocr** ve špatném formátu nebo DPI. Aspose.OCR podporuje PNG, JPEG, TIFF, BMP a dokonce i PDF‑založené obrázky. Engine však funguje nejlépe s 300 DPI nebo vyšším pro tištěné dokumenty. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Pokud pracujete s více‑stránkovým TIFF, můžete projít každý rámec: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Proč je to důležité pro improve OCR accuracy?** Vyšší rozlišení zachovává tvar každého znaku, což rozpoznávači poskytuje více datových bodů. Obrázky s nižším DPI často vedou k sloučeným nebo poškozeným glyfům, které engine špatně interpretuje. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +Výchozí nastavení filtrů je dobrý výchozí bod, ale můžete z nich vytěžit ještě více výkonu. + +| Filtr | Klíčová vlastnost | Typická hodnota | Kdy upravit | +|--------|-------------------|-----------------|-------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (stupňů) | Obrázky silně nakloněné (až 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Velmi špinavé skeny; zvýšte na `0.8`. | +| `ContrastFilter` (volitelný) | `Level` | `1.2` | Nízkokontrastní screenshoty. | + +Příklad přizpůsobení obou: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Hraniční případ:** Pokud váš obrázek obsahuje jak ručně psané poznámky, tak tištěný text, můžete před odšuměním přidat `BinarizationFilter`, aby se oddělila popředí od pozadí. + +--- + +## display OCR text – Formatting the Output + +Čistý výstup do konzole stačí pro ukázky, ale produkční kód často potřebuje vyčištěné řetězce, zalomení řádků nebo dokonce JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Pokud potřebujete JSON pro odpověď API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Nyní **display OCR text** ve formátu, který mohou konzumovat downstream služby. + +--- + +## Full Working Example – Put It All Together + +Níže je finální, samostatný program, který můžete zkopírovat a vložit do nového konzolového projektu. Obsahuje volitelné filtry, načtení vysokého rozlišení a čistý výstup. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Očekávaný výstup v konzoli (ukázka):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Pokud spustíte program s jiným souborem, text a jistota (confidence) se podle toho změní. + +--- + +## Common Questions & Answers + +**Q: Co když je můj obrázek už rovný?** +A: Filtr sklonu detekuje téměř nulový úhel a prakticky se stane nečinným, takže jej můžete nechat zapnutý. + +**Q: Podporuje Aspose.OCR jazyky kromě angličtiny?** +A: Ano — stačí nastavit `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (nebo jakýkoli podporovaný jazyk) před voláním `Recognize`. + +**Q: Jak zacházet s více‑stránkovými PDF?** +A: Každou stránku převedete na obrázek (Aspose.PDF to umí) a předáte je po jedné stejnému `OcrEngine` instance. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/text-recognition/_index.md b/ocr/czech/net/text-recognition/_index.md index b178a0c0..179cb40a 100644 --- a/ocr/czech/net/text-recognition/_index.md +++ b/ocr/czech/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Vylepšete své aplikace .NET pomocí Aspose.OCR pro efektivní rozpoznávání Odemkněte potenciál OCR v .NET s Aspose.OCR. Extrahujte text z PDF bez námahy. Stáhněte si nyní pro bezproblémovou integraci. ### [Rozpoznat tabulku v OCR rozpoznávání obrazu](./recognize-table/) Odemkněte potenciál Aspose.OCR pro .NET pomocí našeho komplexního průvodce rozpoznáváním tabulek při rozpoznávání obrázků OCR. +### [c# OCR tutoriál: Extrahování textu z obrázku pomocí Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Naučte se, jak pomocí Aspose OCR v C# extrahovat text z obrázku a integrovat OCR do vašich .NET aplikací. +### [c# OCR tutoriál – Extrahování textu z obrázků a export do JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Naučte se pomocí Aspose OCR v C# extrahovat text z obrázků a exportovat výsledky do formátu JSON. +### [Jak provést OCR obrázku v C# – převést JPG na ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Naučte se pomocí Aspose.OCR v C# převést JPG obrázek na ePub formát a integrovat OCR do vašich .NET aplikací. +### [Rozpoznat ruský text pomocí Aspose OCR C# – Kompletní průvodce vícestránkovým PDF](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Naučte se rozpoznávat ruský text v PDF s více stránkami pomocí Aspose OCR v C#. Kompletní průvodce krok za krokem. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..a03733d6 --- /dev/null +++ b/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR tutoriál ukazující, jak extrahovat text z obrázku, provádět OCR + na JPG souborech pomocí Aspose OCR. Naučte se načíst obrázek pro OCR a získat přesné + výsledky. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: cs +og_description: c# OCR tutoriál, který vás provede extrakcí textu z obrázku, prováděním + OCR na JPG a načítáním obrázků pro OCR pomocí Aspose. +og_title: c# OCR tutoriál – Extrahovat text z obrázku pomocí Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# OCR tutoriál: Extrahovat text z obrázku pomocí Aspose OCR' +url: /cs/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Extrahování textu z obrázku pomocí Aspose OCR + +Hledáte **c# ocr tutorial**, který opravdu funguje? V tomto průvodci vám ukážeme, jak **extrahovat text z obrázku** a **provádět OCR na JPG** souborech pomocí knihovny Aspose.OCR. Ať už stavíte skener účtenek, archivátor dokumentů, nebo jste jen zvědaví, jak číst text z obrázků, kroky níže vás od nuly dovedou k funkčnímu kódu během několika minut. + +Provedeme vše, co potřebujete: instalaci balíčku, načtení obrázku pro OCR, konfiguraci jazykových zdrojů, spuštění rozpoznávacího enginu a řešení nejčastějších úskalí. Na konci budete mít samostatnou konzolovou aplikaci, která vytiskne rozpoznaný text do konzole — žádné externí služby nejsou potřeba. + +## What You’ll Need + +- .NET 6.0 nebo novější (kód funguje také s .NET Framework 4.6+) +- Visual Studio 2022, VS Code nebo jakýkoli C# editor, který preferujete +- Soubor obrázku obsahující ruský (cyrilický) text, např. `receipt_ru.jpg` +- Internetové připojení pro první spuštění (Aspose automaticky stáhne jazykové zdroje) + +Pokud už to máte, skvělé — ponořme se do toho. + +## Step 1: Install Aspose.OCR and Create a New Project + +Nejprve přidejte NuGet balíček Aspose.OCR do svého projektu. Otevřete terminál ve složce řešení a spusťte: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Použijte přepínač `--version` k uzamčení na nejnovější stabilní verzi, např. `Aspose.OCR 23.9.0`. + +Dále vytvořte jednoduchý konzolový projekt (přeskočte, pokud už nějaký máte): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Nyní máte čistý základ, kam můžete později vložit celý ukázkový kód. + +## Step 2: Load Image for OCR + +Načtení obrázku je první funkční krok v jakémkoli **c# ocr tutorial**. Aspose.OCR přijímá cestu k souboru, stream nebo dokonce `Bitmap`. Pro náš příklad to uděláme jednoduše a načteme z disku: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Proč je to důležité:** Explicitním načtením obrázku dáváte enginu jasný cíl, což zlepšuje přesnost — zejména při práci s vícestránkovými PDF nebo smíšenými formáty vstupu. + +## Step 3: Configure Language and Auto‑Download Resources + +Aspose.OCR přichází s jazykovými balíčky, které lze stáhnout na vyžádání. Povolení automatického stahování zajistí, že engine získá ruská jazyková data při prvním spuštění kódu. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Vysvětlení:** +> • `AutoDownloadResources = true` odstraňuje manuální krok stahování souborů `.dat`. +> • Nastavení `Language` říká enginu, jakou znakovou sadu očekávat, což dramaticky zvyšuje rychlost a přesnost rozpoznávání. + +## Step 4: Run OCR and Retrieve the Recognized Text + +Nyní se provádí těžká práce. Metoda `Recognize` zpracuje obrázek a vrátí objekt `OcrResult` obsahující extrahovaný řetězec. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Po spuštění programu byste měli vidět něco jako: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Co očekávat:** Přesný výstup závisí na kvalitě vstupního obrázku, ale engine založený na neuronových sítích od Aspose obvykle zvládne čisté účtenky a tištěné formuláře s vysokou věrností. + +## Complete Working Example + +Níže je **úplný, spustitelný kód**, který kombinuje všechny kroky. Zkopírujte jej do `Program.cs`, nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce a spusťte `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Pokud potřebujete **extrahovat text z obrázku** z jiných formátů než JPG (PNG, BMP, TIFF), stačí změnit příponu souboru — Aspose je zvládne všechny. + +## Step 5: Common Pitfalls & Pro Tips + +| Problém | Proč se stane | Řešení | +|-------|----------------|-----| +| **Špatné znaky** | Nízké rozlišení obrázku nebo silná komprese | Použijte zdroj vyšší kvality nebo předzpracujte pomocí `Bitmap` (např. zvýšení kontrastu) | +| **Jazyk není rozpoznán** | Jazykový balíček nebyl stažen | Ujistěte se, že `AutoDownloadResources` je `true` a počítač má při prvním spuštění přístup k internetu | +| **Null `ocrResult.Text`** | Nesprávná cesta k obrázku nebo soubor chybí | Ověřte cestu, použijte `File.Exists` před načtením | +| **Zpomalení výkonu** | Velká dávka obrázků zpracovávaná sekvenčně | Znovu použijte jedinou instanci `OcrEngine` napříč více voláními | + +### Bonus: Reading Multiple Files in a Loop + +Pokud potřebujete **provádět OCR na JPG** souborech ve složce, zabalte logiku do `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Tento vzor se dobře škáluje pro pipeline zpracování účtenek. + +## Conclusion + +Právě jste dokončili **c# ocr tutorial**, který ukazuje, jak **extrahovat text z obrázku**, **provádět OCR na JPG** a **načíst obrázek pro OCR** pomocí Aspose.OCR. Ukázkový program demonstruje celý tok — od instalace NuGet balíčku po vytištění rozpoznaného cyrilického textu — takže jej můžete ihned zkopírovat do libovolného .NET projektu. + +Jste připraveni na další krok? Zkuste nahradit `OcrLanguage.Russian` za `OcrLanguage.English` a rozpoznávejte anglické účtenky, nebo experimentujte s možnostmi `OcrEngine.Settings` (např. `PageSegmentationMode`, `ImagePreprocessing`) pro doladění přesnosti. Výstup můžete také integrovat do databáze, generovat PDF nebo posílat do překladové API. + +Pokud narazíte na problémy, podívejte se do dokumentace Aspose.OCR nebo zanechte komentář níže. Šťastné kódování a ať jsou vaše OCR výsledky vždy krystalicky čisté! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..82fc9e35 --- /dev/null +++ b/ocr/czech/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR tutoriál ukazující, jak extrahovat text, načíst obrázek pro OCR + a zapsat JSON do souboru pomocí Aspose.OCR – krok za krokem průvodce. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: cs +og_description: c# OCR tutoriál, který vás provede, jak extrahovat text z obrázků, + načíst obrázek pro OCR a zapsat JSON do souboru pomocí Aspose.OCR. +og_title: c# OCR tutoriál – Extrahujte text a exportujte do JSONu +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR tutoriál – Extrahujte text z obrázků a exportujte do JSON +url: /cs/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutoriál – Extrahování textu z obrázků a export do JSON + +Už jste se někdy ptali, jak extrahovat text ze skenované faktury, aniž byste strávili hodiny psaním vlastních parserů? Nejste v tom sami. V tomto **c# OCR tutoriálu** vám ukážeme přesně, jak načíst obrázek pro OCR, spustit rozpoznávací engine a poté **zapsat JSON do souboru**, abyste mohli data předat do následných systémů. + +Představte si, že máte složku s účtenkami, každou pojmenovanou `receipt1.png`, `receipt2.png`, a potřebujete rychlý způsob, jak je převést na prohledávatelné JSON záznamy. To je problém, který vyřešíme, a na konci budete mít připravenou konzolovou aplikaci, která to udělá. Žádné další závislosti kromě Aspose.OCR a žádná magie – jen jasné, reprodukovatelné kroky. + +> **Co se naučíte** +> - Jak **načíst obrázek pro OCR** pomocí Aspose.OCR. +> - Nejlepší způsob, **jak extrahovat text** a získat skóre důvěry. +> - Převod výsledku OCR do dobře strukturovaného **OCR image to JSON** payloadu. +> - Bezpečně **zapsat JSON do souboru** a ověřit výstup. + +## Požadavky + +- .NET 6 SDK nebo novější (kód funguje také na .NET Core). +- Visual Studio 2022 nebo jakýkoli editor, který preferujete. +- Aspose.OCR NuGet balíček (`Install-Package Aspose.OCR`). +- Soubor s obrázkem (PNG, JPG, BMP), který chcete zpracovat – pro ukázku použijeme `invoice.png`. + +Pokud vám něco z toho chybí, stáhněte SDK z webu Microsoftu a přidejte NuGet balíček přes Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Nyní, když je vše připravené, ponořme se do samotné implementace. + +## Krok 1: c# OCR tutoriál – Inicializace OCR enginu + +Než budeme moci **načíst obrázek pro OCR**, potřebujeme instanci enginu, který bude řídit proces rozpoznávání. Třída `OcrEngine` je lehká, ale je dobré ji zabalit do bloku `using`, aby byly prostředky uvolněny okamžitě. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Pokud plánujete zpracovávat mnoho obrázků najednou, znovu použijte stejnou instanci `OcrEngine` místo vytváření nové při každém volání. Snížíte tak zatížení paměti a urychlíte zpracování. + +## Krok 2: Načíst obrázek pro OCR + +Nyní skutečně **načteme obrázek pro OCR**. Aspose.OCR podporuje řadu formátů, takže můžete zadat PNG, JPEG nebo i více‑stránkový TIFF. Metoda `OcrImage.FromFile` načte soubor a připraví jej k rozpoznání. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Proč je to důležité:** Načtení obrázku odděleně vám umožní zkontrolovat jeho rozměry, DPI nebo ho předzpracovat (např. binarizací) před odesláním do enginu. Pokud je obrázek poškozený, `FromFile` vyhodí jasnou výjimku, kterou můžete zachytit a zalogovat. + +## Krok 3: Jak extrahovat text – Spustit rozpoznání + +S obrázkem v ruce můžeme konečně **jak extrahovat text** z něj. Metoda `Recognize` vrací objekt `OcrResult`, který obsahuje nejen čistý text, ale i poziční data a skóre důvěry pro každé slovo. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Některé PDF obsahují neviditelné textové vrstvy. Pokud pošlete stránku PDF převedenou na obrázek, engine může nic nevidět. V takových případech zvažte použití Aspose.PDF k extrakci skryté vrstvy a až poté použijte OCR jen podle potřeby. + +## Krok 4: OCR image to JSON – Převod výsledku + +Třída `OcrResult` nabízí pohodlný pomocník `ToJson()`, který serializuje celý výsledek – včetně ohraničovacích boxů a důvěry každého slova – do JSON řetězce. To je nejčistší způsob, jak dosáhnout **OCR image to JSON** bez psaní vlastního serializeru. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Pokud preferujete vlastní schéma, můžete iterovat přes `ocrResult.Words` a vytvořit si vlastní objekt, ale pro většinu scénářů je vestavěný JSON dostačující a již dobře strukturovaný. + +## Krok 5: Zapsat JSON do souboru + +Nyní přichází poslední část skládačky: uložení JSON payloadu. Metoda `File.WriteAllText` zajistí, že soubor bude vytvořen (nebo přepsán) atomicky. Ujistěte se, že cílový adresář existuje, jinak narazíte na `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* Pokud potřebujete UTF‑8 s BOM nebo jiné kódování, použijte přetížení, které přijímá argument `Encoding`. + +## Krok 6: Ověřit výstup + +Rychlý `Console.WriteLine` nám řekne, že proces byl úspěšně dokončen. Můžete také otevřít JSON soubor v prohlížeči, abyste potvrdili strukturu. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Očekávaný úryvek JSON + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON obsahuje umístění každého slova, což je užitečné, pokud později chcete v UI zvýraznit text. + +## Kompletní funkční příklad + +Níže je kompletní, připravený k zkopírování program. Nahraďte `YOUR_DIRECTORY` skutečnou cestou, kde se váš obrázek nachází. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Spusťte program (`dotnet run` ze složky projektu) a najdete `invoice.json` vedle původního PNG. + +## Časté problémy a jak se jim vyhnout + +| Problém | Proč k tomu dochází | Řešení | +|-------|----------------|-----| +| **FileNotFoundException při načítání obrázku** | Chybná cesta nebo chybějící soubor | Použijte `Path.Combine` a před voláním `FromFile` zkontrolujte `File.Exists`. | +| **Nízké skóre důvěry** | Špatná kvalita obrázku, nízké DPI | Předzpracujte pomocí `ocrImage.AdjustContrast` nebo zvětšete obrázek na 300 DPI. | +| **JSON soubor je prázdný** | `ocrResult` vrátil null (engine selhal) | Ověřte, že formát obrázku je podporován a že licence (pokud je) je správně aplikována. | +| **Úzké hrdlo výkonu při velkých dávkách** | Znovu vytváření `OcrEngine` při každé iteraci | Znovu použijte jedinou instanci `OcrEngine` během celé dávky a uvolněte ji až na konci. | + +## Další kroky + +Nyní, když jste zvládli **c# OCR tutoriál**, můžete: + +- **Zpracovat dávku** celého adresáře a sloučit JSON soubory do jedné databáze. +- **Integrovat** výstup s Azure Cognitive Search pro prohledávatelné PDF. +- **Přidat podporu jazyků** nastavením `ocrEngine.Language = OcrLanguage.Spanish` (nebo jakýkoli podporovaný jazyk). +- **Post‑process** JSON pro extrakci tabulek nebo klíč‑hodnota párů pomocí regulárních výrazů. + +Každé z těchto rozšíření staví na základních konceptech, které jsme probírali: načítání obrázků pro OCR, extrakce textu, převod do JSON a zápis JSON na disk. + +--- + +### Závěr + +V tomto **c# OCR tutoriálu** jsme prošli všemi kroky potřebnými k **načtení obrázku pro OCR**, **jak extrahovat text**, převodu výsledku do **OCR image to JSON** payloadu a nakonec **zapsání JSON do souboru**. Kompletní ukázkový kód je připravený k vložení do jakéhokoli .NET projektu a vysvětlení vám poskytují kontext potřebný k přizpůsobení řešení reálným scénářům. + +Vyzkoušejte to na své vlastní sadě účtenek nebo faktur – vyladěte předzpracování obrázku, experimentujte s různými jazyky a sledujte, jak JSON výstup roste. Pokud narazíte na potíže, podívejte se znovu na tabulku s problémy nebo zanechte komentář níže. Šťastné programování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/czech/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..63f4abc9 --- /dev/null +++ b/ocr/czech/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: Naučte se, jak provádět OCR obrázku v C# a převést JPG na ePub pomocí + Aspose OCR. Tento krok‑za‑krokem průvodce také ukazuje, jak extrahovat text z obrázku. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: cs +og_description: Jak provést OCR obrázku v C#? Postupujte podle tohoto návodu, abyste + extrahovali text z obrázku a převáděli JPG na ePub pomocí Aspose OCR. +og_title: Jak provést OCR obrázku v C# – převést JPG na ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Jak provést OCR obrázku v C# – převést JPG na ePub +url: /cs/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak provést OCR obrázku v C# – Převod JPG na ePub + +Už jste se někdy zamýšleli **jak provést OCR obrázku** přímo z konzolové aplikace v C#? Nejste v tom sami. Mnoho vývojářů narazí na problém, když potřebují získat text z fotografie a poté jej zabalit do čitelné ePub knihy. + +V tomto tutoriálu projdeme kompletním, spustitelným příkladem, který **extrahuje text z obrázku**, uloží výsledek jako ePub a ukáže vám, jak **převést JPG na ePub** bez opuštění vašeho IDE. Žádné zbytečnosti, jen kód, který můžete dnes zkopírovat‑vložit a spustit. + +## Co se naučíte + +- Jak nastavit Aspose OCR engine v .NET projektu. +- Přesné kroky k **převodu obrázku na epub** pomocí volby `OcrSaveFormat.Epub`. +- Tipy pro řešení běžných problémů, jako jsou nepodporované formáty obrázků nebo chybějící fonty. +- Úplný C# program, který můžete okamžitě zkompilovat a spustit. + +**Požadavky**: .NET 6 SDK (nebo jakákoli recentní verze .NET), platný NuGet balíček Aspose.OCR a soubor obrázku (`input.jpg`), který chcete zpracovat. Pokud jste s NuGetem nikdy nepracovali, stačí otevřít Package Manager Console a spustit `Install-Package Aspose.OCR`. + +Připravení? Ponořme se. + +## Krok 1 – Jak provést OCR obrázku a načíst zdroj + +Prvním, co potřebujete, je instance OCR engine a zdrojový obrázek. Aspose OCR to usnadňuje: vytvoříte `OcrEngine` a poté mu předáte `OcrImage` načtený z disku. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Proč je to důležité** – Inicializace engine jen jednou udržuje nízkou spotřebu paměti a načtení obrázku brzy vám umožní ověřit cestu k souboru před tím, než začne náročná OCR práce. + +## Krok 2 – Spustit OCR a extrahovat text z obrázku + +Jakmile je obrázek v paměti, požádejte engine o rozpoznání znaků. Metoda `Recognize` vrací objekt `OcrResult`, který obsahuje čistý text, skóre důvěry a dokonce i informace o rozložení. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Tip** – Pokud potřebujete jen text a ne ePub, můžete zde skončit. Vlastnost `ocrResult.Text` je čistý řetězec, který můžete předat jakémukoli jinému systému. + +## Krok 3 – Uložit výsledek jako ePub knihu (Převod JPG na ePub) + +Aspose OCR může přímo serializovat výsledek OCR do několika formátů, včetně ePub. Tento krok ukazuje přesně, jak **převést JPG na ePub** jedním řádkem. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Když spustíte program, uvidíte extrahovaný text vytištěný do konzole a nový soubor `book_page.epub` se objeví vedle vašeho zdrojového obrázku. Otevřete jej v libovolném ePub čtečce (Calibre, Apple Books atd.) a najdete OCR text hezky naformátovaný jako jednostránková kniha. + +### Očekávaný výstup + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Pokud se ePub otevře správně, gratulujeme—právě jste dokončili kompletní **c# OCR příklad**, který převádí JPEG na přenosný ePub. + +## Krok 4 – Časté problémy při převodu obrázku na ePub + +I když používáte solidní knihovnu, můžete narazit na několik překážek. Zde je rychlé FAQ: + +| Problém | Proč se vyskytuje | Jak opravit | +|-------|----------------|------------| +| **Nepodporovaný formát obrázku** | Aspose OCR očekává rastrové formáty (JPG, PNG, BMP). | Nejprve převést obrázek na JPG nebo PNG, např. pomocí `System.Drawing.Image`. | +| **Prázdný výstup** | Nízká kvalita obrázku nebo silná komprese. | Zvyšte DPI, použijte čistší sken nebo aplikujte předzpracování obrázku (`ocrEngine.Preprocess`). | +| **Chybějící fonty v ePub** | Výchozí ePub writer používá systémové fonty, které nemusí být vloženy. | Nastavte `ocrEngine.Config.FontsDirectory` na složku s požadovanými .ttf soubory. | +| **Velký ePub soubor** | Vysoce rozlišené obrázky jsou vloženy jako samostatné stránky. | Použijte `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Řešení těchto problémů včas vám ušetří honění chyb později. + +## Krok 5 – Rozšíření příkladu (Mimo základy) + +Jakmile máte funkční **pipeline převodu obrázku na epub**, můžete se ptát, co dalšího můžete udělat. Zde je několik nápadů, které můžete vyzkoušet zítra: + +1. **Dávkové zpracování** – Procházet složku s JPG soubory, generovat jeden ePub na obrázek nebo je sloučit do vícestránkového ePub. +2. **Výběr jazyka** – Nastavte `ocrEngine.Language = Language.English;` nebo jakýkoli podporovaný jazyk pro zlepšení přesnosti. +3. **Zachování rozložení** – Nejprve použijte `OcrSaveFormat.Html`, poté zabalte HTML do ePub pro bohatší formátování. +4. **Nasazení do cloudu** – Zabalte kód do Azure Function nebo AWS Lambda, abyste nabídli OCR‑to‑ePub jako webovou službu. + +Každé z těchto rozšíření staví na základní logice **jak provést OCR obrázku**, kterou jsme právě probrali. + +## Kompletní funkční kód (připravený ke kopírování) + +Níže je celý program v jednom bloku. Nahraďte `YOUR_DIRECTORY` skutečnou cestou k vašemu souboru obrázku. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Pamatujte** – NuGet balíček `Aspose.OCR` musí být nainstalován a cílové .NET runtime by mělo být alespoň .NET 5 pro nejlepší kompatibilitu. + +## Závěr + +Právě jsme probrali **jak provést OCR obrázku** v C# a proměnili tyto skeny na čisté ePub knihy—v podstatě workflow **převodu JPG na ePub**, které můžete vložit do jakéhokoli projektu. Dodržením výše uvedených kroků budete schopni **extrahovat text z obrázku**, řešit běžné okrajové případy a rozšířit řešení na dávkové úlohy nebo cloudové služby. + +Pokud vás zajímá další logický krok, zkuste nahradit výstup ePub PDF (`OcrSaveFormat.Pdf`) nebo předat OCR text do překladového API. Možnosti jsou neomezené, jakmile zvládnete základy. + +Máte otázky ohledně konkrétního formátu obrázku, nebo chcete vidět příklad vícestránkového ePub? Zanechte komentář a rád pomohu. Šťastné programování a užívejte si převod obrázků na knihy! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/czech/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..b7567682 --- /dev/null +++ b/ocr/czech/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: Okamžitě rozpoznávejte ruský text pomocí Aspose OCR C#. Naučte se rozpoznávat + čínský text, číst počet stránek PDF a převádět text stránek PDF v jednom tutoriálu. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: cs +og_description: Rychle rozpoznávejte ruský text pomocí Aspose OCR C#. Tento tutoriál + také pokrývá, jak rozpoznat čínský text, zjistit počet stránek PDF a převést text + stránek PDF. +og_title: Rozpoznání ruského textu pomocí Aspose OCR C# – Kompletní průvodce +tags: +- Aspose OCR +- C# +- PDF processing +title: Rozpoznat ruský text pomocí Aspose OCR C# – Kompletní průvodce vícestránkovým + PDF +url: /cs/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznání ruského textu pomocí Aspose OCR C# – kompletní návod pro více‑stránkové PDF + +Už jste někdy potřebovali **rozpoznat ruský text** v PDF, které míchá jazyky, a přemýšleli, jak to udělat, aniž byste museli tahat samostatný nástroj pro každou stránku? Nejste v tom sami. V mnoha reálných projektech narazíte na jediný PDF, který obsahuje angličtinu, ruštinu a dokonce čínštinu na různých stránkách, a přesto chcete mít jeden čistý textový výstup. + +V tomto průvodci vám ukážeme, jak **rozpoznat ruský text** (a další jazyky) pomocí **Aspose OCR C#**, a zároveň demonstrujeme, jak **číst počet stránek PDF**, **rozpoznat čínský text** a **převést text stránky PDF** do praktického výpisu v konzoli. Žádné externí služby, žádné skryté kroky — jen čistý C# kód, který můžete zkopírovat a spustit. + +> **Co si z toho odnesete** +> * Spustitelná C# konzolová aplikace, která zpracuje více‑stránkové PDF. +> * Výběr jazyka po stránce (ruština, čínština, angličtina). +> * Techniky pro získání počtu stránek PDF a extrakci textu z každé stránky. +> * Tipy, úskalí a rozšíření, která můžete použít ve svých projektech. + +--- + +## Požadavky + +- .NET 6.0 nebo novější (kód funguje také na .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet balíček nainstalovaný (`dotnet add package Aspose.OCR`). +- PDF soubor, který obsahuje smíšené jazyky; pro ukázku budeme odkazovat na `mixed_lang.pdf`. +- Základní znalost C# konzolových aplikací. + +Pokud vám něco chybí, stáhněte si nejnovější Aspose OCR z NuGet a umístěte PDF do složky, která je přístupná z kořenového adresáře projektu. + +--- + +## Krok 1 – Inicializace Aspose OCR Engine + +První věc, kterou potřebujete, je instance `OcrEngine`. Tento objekt obsahuje všechna nastavení (např. jazyk) a provádí těžkou práci. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Proč je to důležité:** +> Engine je znovu použitelný, takže neplýtváme pamětí vytvářením nové instance pro každou stránku. Opětovné použití také umožňuje měnit jazyk za běhu, což je nezbytné pro **rozpoznání ruského textu** na jedné stránce a **rozpoznání čínského textu** na jiné. + +--- + +## Krok 2 – Načtení PDF a zjištění počtu stránek + +Než začneme rozpoznávat, potřebujeme PDF objekt a jeho počet stránek. Aspose OCR zachází s každou stránkou jako s `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** Pokud je PDF obrovské, můžete si nejprve přečíst počet stránek a rozhodnout, zda zpracujete všechny stránky nebo jen podmnožinu. + +--- + +## Krok 3 – Přiřazení každé stránky požadovanému jazyku + +Aspose OCR podporuje mnoho jazyků, ale musíte mu říct, který použít pro kterou stránku. Níže vytvoříme `Dictionary`, kde klíč je index stránky od nuly. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Proč je to klíčové:** +> Bez tohoto mapování by OCR engine zkoušel jeden výchozí jazyk pro všechny stránky, což by vedlo k nečitelné výstupní podobě ruského nebo čínského textu. Tento krok přímo umožňuje **rozpoznat ruský text** a **rozpoznat čínský text** správně. + +--- + +## Krok 4 – Procházení všech stránek, nastavení jazyka a rozpoznání textu + +Nyní iterujeme přes každou stránku, přepínáme jazyk podle našeho mapování a voláme `Recognize`. Výsledek je uložen v `OcrResult`, ze kterého získáme čistý text. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Očekávaný výstup v konzoli + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Vysvětlení postupu:** +> * Smyčka respektuje **čtení počtu stránek PDF**, který jsme vypsali dříve. +> * Přepínáním `ocrEngine.Settings.Language` v každé iteraci zajišťujeme přesné **rozpoznání ruského textu** na stránce 2 a **rozpoznání čínského textu** na stránce 3. +> * Příkazy `Console.WriteLine` efektivně **převádějí text stránky PDF** na lidsky čitelný řetězec. + +--- + +## Krok 5 – Spuštění, ověření a ladění + +1. Sestavte projekt (`dotnet build`). +2. Spusťte jej (`dotnet run`). +3. Porovnejte výstup v konzoli s originálním PDF. + +Pokud zaznamenáte chybějící znaky, zvažte: + +- **Zvýšení přesnosti OCR** nastavením `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Poskytnutí vlastního jazykového balíčku**, pokud jsou vestavěné slovníky pro ruštinu nebo čínštinu zastaralé. +- **Úpravu DPI** při načítání PDF (`OcrImage.FromFile(path, 300)`), což může zlepšit rozpoznání u nízkokvalitních skenů. + +--- + +## Bonus: Řešení okrajových případů + +### Co když jazyk stránky není v mapě? + +Kód již přepne na angličtinu, ale můžete také přidat záložní řešení, které zaznamená varování: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Můžeme zpracovávat PDF s více než třemi jazyky? + +Ano. Rozšiřte `languageMap` o další indexy a podporované hodnoty `OcrLanguage` (např. `OcrLanguage.French`). Smyčka zvládne libovolný počet stránek. + +### Jak exportovat výsledky do souboru místo konzole? + +Nahraďte volání `Console.WriteLine` příkazem `File.AppendAllText("output.txt", …)` nebo použijte `StringBuilder`, který zapíšete jednorázově po skončení smyčky. + +--- + +## Ilustrační obrázek + +![příklad rozpoznání ruského textu](/images/recognize-russian-text.png "Snímek obrazovky ukazující výstup OCR pro ruský text") + +*Obrázek výše demonstruje výstup v konzoli, když je provedeno **rozpoznání ruského textu** na PDF s více jazyky.* + +--- + +## Závěr + +Prošli jsme kompletním příkladem, který ukazuje, jak **rozpoznat ruský text** (a také **rozpoznat čínský text**) z více‑stránkového PDF pomocí **Aspose OCR C#**. Čtením počtu stránek PDF, mapováním každé stránky na správný jazyk a iterací přes dokument můžete **převést text stránky PDF** na čisté řetězce připravené k uložení, indexaci nebo dalšímu zpracování. + +Stručně: + +- **Inicializujte** jediný `OcrEngine`. +- **Načtěte** PDF a **přečtěte počet stránek PDF**. +- **Namapujte** stránky na jazyky (ruština, čínština, atd.). +- **Iterujte**, nastavte `ocrEngine.Settings.Language` a **rozpoznávejte** každou stránku. +- **Vypište** nebo uložte extrahovaný text. + +Neváhejte tento vzor přizpůsobit větším dokumentům, přidat ošetření chyb nebo propojit výsledky s vyhledávacím indexem. Hlavní myšlenka — výběr jazyka po stránce — zůstává stejná a umožňuje spolehlivé **rozpoznání ruského textu** v PDF s více jazyky. + +Máte jiný scénář, například skenování obrázků místo PDF? Ten samý engine funguje; stačí nahradit `OcrImage.FromFile` za `OcrImage.FromStream` nebo `FromBitmap`. Šťastné programování a ať je vaše OCR vždy přesná! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/ocr-configuration/_index.md b/ocr/dutch/net/ocr-configuration/_index.md index f3691e00..c2c8c1ee 100644 --- a/ocr/dutch/net/ocr-configuration/_index.md +++ b/ocr/dutch/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Ontgrendel de kracht van OCR-beeldherkenning in .NET met Aspose.OCR. Extraheer t Ontgrendel krachtige OCR-mogelijkheden met Aspose.OCR voor .NET. Extraheer tekst naadloos uit afbeeldingen. ### [OCR-bewerking met lijst in OCR-beeldherkenning](./ocr-operation-with-list/) Ontgrendel het potentieel van Aspose.OCR voor .NET. Voer moeiteloos OCR-beeldherkenning uit met lijsten. Verhoog de productiviteit en gegevensextractie in uw applicaties. +### [Hoe licentie toe te passen in Aspose OCR – Stapsgewijze C#-gids](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Leer hoe u de licentie van Aspose OCR installeert in uw C#-project, stap voor stap. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/dutch/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..db9f1cb4 --- /dev/null +++ b/ocr/dutch/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Hoe een licentie voor Aspose OCR in C# toe te passen. Leer hoe je een + bestand leest, de Aspose‑licentie instelt, MemoryStream gebruikt en de licentie + efficiënt laadt. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: nl +og_description: Hoe de licentie voor Aspose OCR in C# toe te passen. Volg deze gids + om het licentiebestand te lezen, de Aspose‑licentie in te stellen, MemoryStream + te gebruiken en de configuratie te verifiëren. +og_title: Hoe een licentie toe te passen in Aspose OCR – Complete C#‑handleiding +tags: +- Aspose +- OCR +- C# +- Licensing +title: Hoe een licentie toe te passen in Aspose OCR – Stapsgewijze C#‑gids +url: /nl/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe een licentie toe te passen in Aspose OCR – Complete C# gids + +Heb je je ooit afgevraagd **hoe je een licentie** voor Aspose OCR toepast zonder vage documentatie te moeten doorzoeken? Je bent niet de enige. De meeste ontwikkelaars lopen tegen hetzelfde probleem aan: ze kunnen het bestand lezen, maar weten niet hoe ze het correct in de bibliotheek moeten laden. In deze tutorial lopen we stap voor stap alles door – van het laden van het `.lic`‑bestand vanaf schijf tot het aanroepen van `SetLicense` met een `MemoryStream`. Aan het einde heb je een werkende oplossing die je in elk .NET‑project kunt gebruiken. + +We behandelen ook **hoe je een bestand** veilig leest, de juiste manier om een **Aspose‑licentie in te stellen**, en waarom het gebruik van een **MemoryStream** de schoonste aanpak is. Als je benieuwd bent naar **hoe je een licentie laadt** in verschillende omgevingen, staan die tips er ook bij. Geen externe referenties nodig – alleen pure, kant‑klaar‑te‑kopiëren code. + +## Vereisten + +- .NET 6.0 of hoger (de code werkt zowel met .NET Core als .NET Framework) +- Aspose.OCR NuGet‑pakket geïnstalleerd (`Install-Package Aspose.OCR`) +- Een geldig `Aspose.OCR.lic`‑bestand op een locatie die je applicatie kan bereiken +- Basiskennis van C# en Visual Studio (of een andere IDE naar keuze) + +> **Pro tip:** Houd het licentiebestand buiten je source‑control map om per ongeluk committen te voorkomen. + +## Stap 1: Hoe een bestand lezen – Laad de licentiebits + +Het eerste wat we nodig hebben is de ruwe byte‑array van het licentiebestand. `File.ReadAllBytes` gebruiken is zowel simpel als efficiënt, en het gooit automatisch een duidelijke uitzondering als het pad onjuist is. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Waarom dit belangrijk is:** Het bestand direct in het geheugen lezen voorkomt lekken van bestands‑handles en levert een schone byte‑array op die later gebruikt kan worden. Het maakt de methode bovendien herbruikbaar voor console‑apps, webservices of Azure Functions. + +## Stap 2: Hoe MemoryStream te gebruiken – Bereid de licentiestroom voor + +De overload `License.SetLicense` van Aspose verwacht een `Stream`. Het omhullen van de byte‑array in een `MemoryStream` is de idiomatische manier om aan die eis te voldoen zonder opnieuw het bestandssysteem aan te raken. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Kerninzicht:** `MemoryStream` is lichtgewicht en wordt snel vrijgegeven. Het stelt je ook in staat dezelfde byte‑array te hergebruiken voor meerdere bibliotheken als je ooit meer dan één Aspose‑productlicentie moet toepassen. + +## Stap 3: Aspose‑licentie instellen – De kern van “hoe een licentie toe te passen” + +Nu we een `MemoryStream` hebben, is het toepassen van de licentie een één‑regelige operatie. De `License`‑klasse bevindt zich in de `Aspose.OCR`‑namespace, dus zorg dat je de juiste `using`‑directive hebt toegevoegd. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Als de licentie ongeldig of verlopen is, zal `SetLicense` stilzwijgend falen en werkt de bibliotheek in de proefmodus. Om er absoluut zeker van te zijn, kun je een functie controleren die alleen beschikbaar is in de gelicentieerde versie (bijv. OCR‑nauwkeurigheidsinstellingen) of simpelweg vertrouwen op het bevestigingsbericht dat we later afdrukken. + +## Stap 4: Hoe een licentie te laden – Alles samenvoegen + +Hieronder staat het volledige, uitvoerbare console‑programma dat laat zien **hoe je een licentie** van schijf laadt, een `MemoryStream` gebruikt en verifieert dat de licentie succesvol is toegepast. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Verwachte uitvoer + +``` +License applied successfully. You can now perform OCR operations. +``` + +Als je dit bericht ziet, is de bibliotheek volledig gelicentieerd en klaar voor productie‑OCR‑taken. + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| **FileNotFoundException** bij het lezen van de licentie | Pad is onjuist of het bestand is niet meegeleverd met de app | Gebruik een absoluut pad of embed de licentie als resource (zie “alternatief laden” hieronder) | +| **Licentie niet toegepast maar geen fout** | `SetLicense` valt stilzwijgend terug naar proefmodus als de stream leeg of corrupt is | Controleer `licenseData.Length > 0` voordat je de `MemoryStream` maakt | +| **MemoryStream niet vrijgegeven** | Het vergeten van `using` laat ongebeheerste resources hangen | Wikkel de stream altijd in een `using`‑blok zoals getoond | + +### Alternatief: De licentie embedden als Embedded Resource + +Als je liever geen apart `.lic`‑bestand distribuert, voeg het dan toe aan je project, stel **Build Action** in op **Embedded Resource**, en lees het als volgt: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Roep daarna `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` aan en ga verder met dezelfde `MemoryStream`‑aanpak. + +## Conclusie + +We hebben behandeld **hoe je een licentie** voor Aspose OCR van begin tot eind toepast: het bestand lezen, een `MemoryStream` maken, `SetLicense` aanroepen en de activatie bevestigen. Door deze stappen te volgen elimineer je giswerk, vermijd je veelvoorkomende fouten en zorg je dat je OCR‑engine in de volledige functionaliteitsmodus draait. + +Vervolgens kun je **hoe je een bestand** asynchroon leest voor high‑throughput services verkennen, of dieper duiken in geavanceerde OCR‑instellingen nu de licentie correct is geladen. Hoe dan ook, het patroon blijft hetzelfde – lezen, streamen, instellen, verifiëren. + +Heb je vragen over randgevallen, zoals het laden van de licentie in een ASP.NET Core‑omgeving of het beheren van meerdere Aspose‑productlicenties? Laat een reactie achter, en happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/ocr-optimization/_index.md b/ocr/dutch/net/ocr-optimization/_index.md index 4c44e37b..b7c5e6a8 100644 --- a/ocr/dutch/net/ocr-optimization/_index.md +++ b/ocr/dutch/net/ocr-optimization/_index.md @@ -49,10 +49,15 @@ Ontdek Aspose.OCR voor .NET. Verbeter de OCR-nauwkeurigheid met voorverwerkingsf ### [Resultaatcorrectie met spellingcontrole in OCR-beeldherkenning](./result-correction-with-spell-checking/) Verbeter de OCR-nauwkeurigheid met Aspose.OCR voor .NET. Corrigeer spellingen, pas woordenboeken aan en bereik moeiteloos foutloze tekstherkenning. ### [Bewaar het resultaat van meerdere pagina's als document in OCR-beeldherkenning](./save-multipage-result-as-document/) -Ontgrendel het potentieel van Aspose.OCR voor .NET. Sla OCR-resultaten van meerdere pagina's moeiteloos op als documenten met deze uitgebreide stapsgewijze handleiding. +Ontgrendel het potentieel van Aspose.OCR voor .NET. Sla OCR-resulten van meerdere pagina's moeiteloos op als documenten met deze uitgebreide stapsgewijze handleiding. +### [Batch-OCR uitvoeren in C# met Aspose OCR-engine](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Leer hoe u meerdere afbeeldingen in één batch kunt verwerken met Aspose OCR-engine in C#. +### [Voorverwerking van afbeelding OCR in C# – Verhoog de nauwkeurigheid met Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Verbeter de OCR-nauwkeurigheid door afbeeldingen voor te verwerken in C# met Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/dutch/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..f6e8cef4 --- /dev/null +++ b/ocr/dutch/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-01-01 +description: Hoe batch-OCR te gebruiken met de Aspose OCR Engine in C#. Leer tekst + te herkennen in afbeeldingen en tekst te extraheren uit TIFF‑bestanden met GPU‑versnelling. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: nl +og_description: Hoe batch-OCR uit te voeren in C# met de Aspose OCR-engine. Deze gids + laat zien hoe je tekst uit afbeeldingen kunt herkennen en efficiënt tekst uit TIFF‑bestanden + kunt extraheren. +og_title: Hoe batch-OCR in C# uit te voeren – Complete Aspose-gids +tags: +- OCR +- C# +- Aspose +- GPU +title: Hoe batch-OCR in C# met de Aspose OCR-engine +url: /nl/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe batch‑OCR uit te voeren in C# met de Aspose OCR‑engine + +Heb je je ooit afgevraagd **hoe je batch‑OCR kunt doen** wanneer je tientallen gescande documenten in een map hebt liggen? Je bent niet de enige—veel ontwikkelaars lopen tegen die muur aan wanneer ze van herkenning van één afbeelding overstappen naar het verwerken van een hele collectie. Het goede nieuws is dat Aspose OCR het een fluitje van een cent maakt, of je nu op een CPU draait of gebruikmaakt van GPU‑versnelling. + +In deze tutorial lopen we een compleet, uitvoerbaar voorbeeld door dat **tekst herkent uit afbeeldingen** en zelfs **tekst uit TIFF‑bestanden** in bulk **extraheert**. Geen vage “zie de docs” shortcuts—gewoon een zelfstandige oplossing die je vandaag kunt kopiëren‑plakken en uitvoeren. + +## Vereisten + +Voordat we beginnen, zorg dat je het volgende hebt: + +* .NET 6.0 of later geïnstalleerd (de code richt zich op .NET 6, maar .NET 5 werkt ook). +* Aspose.OCR for .NET NuGet‑pakket (zowel CPU‑ als GPU‑versies zijn beschikbaar; installeer de versie die bij je hardware past). +* Een map met een paar voorbeeld‑TIFF‑ of PNG‑bestanden die je wilt verwerken. +* Visual Studio 2022 of een andere IDE naar keuze. + +> **Pro‑tip:** Als je van plan bent de GPU‑versie te gebruiken, controleer dan of je grafische driver up‑to‑date is en dat CUDA 11+ geïnstalleerd is. De engine valt automatisch terug op CPU als er geen compatibele GPU wordt gevonden. + +## Stap 1 – Project instellen en Aspose.OCR installeren + +### H2: Maak een nieuwe console‑app en voeg Aspose.OCR toe + +Open een terminal (of de Package Manager Console in Visual Studio) en voer uit: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Als je een GPU‑enabled licentie hebt, voeg dan in plaats daarvan het GPU‑pakket toe: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Dat is alles—je project verwijst nu naar de OCR‑bibliotheek die we gaan gebruiken voor **batch‑OCR**. + +## Stap 2 – OCR‑engine initialiseren (CPU of GPU) + +### H2: Hoe batch‑OCR – Engine‑initialisatie + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Waarom dit belangrijk is:** Door `UseGpu` te schakelen laat je Aspose het snelste pad kiezen. Als de GPU niet beschikbaar is, schakelt de engine stilletjes terug naar CPU, zodat je batch‑taak nooit crasht door ontbrekende hardware. + +## Stap 3 – Verzamel de bestanden die je wilt verwerken + +### H2: Tekst herkennen uit afbeeldingen – De bestandenlijst bouwen + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Opmerking voor randgevallen:** Als je een mix van formaten hebt, wijzig dan het zoekpatroon naar `"*.*"` en filter op extensie binnen de lus. Zo blijft de batch flexibel. + +## Stap 4 – Verwerk elke afbeelding en toon een preview + +### H2: Tekst uit TIFF extraheren – Door de bestanden loopen + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Wat je zult zien:** Voor elke TIFF print de console iets als: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Die preview bevestigt dat de batch geslaagd is zonder elke file handmatig te hoeven openen. + +## Stap 5 – Resultaten opslaan (optioneel maar handig) + +### H3: OCR‑output opslaan in tekstbestanden + +Als je de volledige tekst nodig hebt voor verdere verwerking, voeg dit toe binnen de `foreach`‑lus: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Nu krijgt elke TIFF een bijbehorend `.txt`‑bestand met de volledige OCR‑output—perfect voor indexering, zoeken of invoer voor een language model. + +## Stap 6 – Demo uitvoeren en verifiëren + +1. Build het project: `dotnet build`. +2. Executeer: `dotnet run --project GpuBatchDemo.csproj`. + +Je zou de preview‑regels in de console moeten zien, en (als je de optionele stap hebt toegevoegd) een reeks `.txt`‑bestanden naast je bron‑afbeeldingen. + +### H3: Veelvoorkomende valkuilen & hoe ze op te lossen + +| Symptoom | Waarschijnlijke oorzaak | Oplossing | +|----------|--------------------------|-----------| +| **Lege `ocrResult.Text`** | Afbeelding te donker of lage DPI | Pre‑process afbeeldingen (verhoog contrast, upscale) of stel `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU‑fout “CUDA driverversie is onvoldoende”** | Verouderde driver | Update GPU‑driver, of stel `UseGpu = false` om CPU te forceren. | +| **Uitzondering “Bestand niet gevonden”** | Verkeerde pad‑scheidingsteken op Linux/macOS | Gebruik `Path.Combine` of forward slashes (`/`). | + +## Stap 7 – Opschalen (meer dan een paar bestanden) + +Wanneer je van een handvol TIFF‑bestanden naar duizenden gaat, overweeg dan: + +* **Parallel verwerken:** Wrap de `foreach` in `Parallel.ForEach` (zorg dat de engine‑instantie thread‑safe is; anders maak je er één per thread). +* **Chunked I/O:** Lees afbeeldingen in batches om RAM‑uitputting te voorkomen. +* **Logging:** Schrijf voortgang naar een log‑bestand; dat helpt bij het hervatten na een crash. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Onthoud:** GPU‑geheugen wordt gedeeld, dus het starten van te veel parallelle GPU‑taken kan je juist vertragen. Test eerst met een paar threads. + +## Volledig werkend voorbeeld (klaar om te kopiëren‑plakken) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Het uitvoeren van dit programma **herkent tekst uit afbeeldingen**, **extraheert tekst uit TIFF**, en laat zien **hoe je batch‑OCR efficiënt kunt uitvoeren**. + +--- + +## Conclusie + +Je hebt nu een solide, end‑to‑end voorbeeld van **hoe je batch‑OCR kunt doen** in C# met de OCR‑engine van Aspose. De tutorial behandelde alles van het opzetten van het project, het schakelen van GPU‑versnelling, het bouwen van een bestandenlijst, het verwerken van elke afbeelding, tot het opslaan van resultaten. Of je nu tekst uit TIFF‑bestanden of een ander afbeeldingsformaat extraheert, hetzelfde patroon geldt—verander alleen de bestandsextensies. + +Klaar voor de volgende stap? Probeer de OCR‑output te integreren met een zoekindex, voer de tekst in een groot‑taalmodel, of experimenteer met parallel verwerken om minuten te besparen bij enorme batches. De mogelijkheden zijn eindeloos, en je hebt nu de basis om verder te bouwen. + +Heb je vragen of wil je je eigen batch‑OCR‑trucs delen? Laat een reactie achter—happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/dutch/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..fd0690ad --- /dev/null +++ b/ocr/dutch/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,270 @@ +--- +category: general +date: 2026-01-01 +description: Verwerk afbeelding‑OCR vooraf om de nauwkeurigheid te verbeteren. Leer + hoe je tekst in afbeeldingen herkent, de OCR‑nauwkeurigheid verbetert, afbeelding‑OCR + laadt en OCR‑tekst weergeeft met Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: nl +og_description: Verwerk afbeelding OCR vooraf om de nauwkeurigheid te verbeteren. + Deze gids laat zien hoe je tekst in een afbeelding herkent, afbeelding OCR laadt, + filters toepast en OCR‑tekst weergeeft. +og_title: Afbeelding OCR voorbewerken in C# – Verhoog de nauwkeurigheid met Aspose + OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Afbeelding OCR voorverwerken in C# – Verhoog de nauwkeurigheid met Aspose OCR +url: /nl/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Verbeter de nauwkeurigheid met Aspose OCR + +Heb je je ooit afgevraagd hoe je **preprocess image ocr** kunt uitvoeren zodat de engine daadwerkelijk leest wat er op de pagina staat? Je bent niet de enige—de meeste ontwikkelaars lopen tegen een muur aan wanneer een ruisvolle, scheve scan niet wil meewerken. Het goede nieuws is dat een paar slimme preprocessing‑stappen een ramp‑zone afbeelding kunnen omzetten in schone, leesbare tekst. + +In deze tutorial lopen we stap voor stap door een compleet, kant‑klaar voorbeeld dat **recognize text image** bestanden verwerkt, **improve OCR accuracy**, en uiteindelijk **display OCR text** op de console toont. Aan het einde weet je hoe je **load image OCR** assets kunt laden, filters zoals scheefcorrectie en ruisonderdrukking kunt toevoegen, en betrouwbare resultaten krijgt—alles met Aspose.OCR voor .NET. + +## Wat je zult leren + +- Hoe je een `OcrEngine`‑instantie maakt en preprocessing‑filters configureert. +- Waarom scheefcorrectie‑ en denoise‑filters belangrijk zijn voor **improve OCR accuracy**. +- De exacte code om **load image ocr** bestanden te laden en herkenning uit te voeren. +- Hoe je **display OCR text** op een gebruiksvriendelijke manier toont. +- Tips, valkuilen en optionele aanpassingen die je in real‑world projecten kunt toepassen. + +### Vereisten + +- .NET 6+ (of .NET Framework 4.7+) geïnstalleerd op je machine. +- Een licentie voor Aspose.OCR (de gratis proefversie werkt voor deze demo). +- Basiskennis van C#—geen geavanceerde trucs nodig. + +Als een van deze onbekend klinkt, pauzeer dan even en installeer de ontbrekende onderdelen; de rest van de gids gaat ervan uit dat ze aanwezig zijn. + +--- + +## preprocess image ocr – Filters instellen + +Het eerste dat je moet begrijpen is **why preprocessing matters**. OCR‑engines zijn uitstekend in het lezen van scherpe, recht‑op tekst, maar scans uit de praktijk hebben vaak te maken met rotatie, onscherpte of achtergrondruis. Door een opgeschoonde afbeelding aan de engine te voeren, vergroot je de kans op een correcte transcriptie aanzienlijk. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Wat gebeurt er hier?** +- **Step 1** maakt de engine—het hart van de Aspose OCR‑bibliotheek. +- **Step 2** voegt twee filters toe. De `SkewCorrectionFilter` draait de afbeelding terug naar horizontaal, terwijl `DenoiseFilter` pixel‑niveau ruis gladstrijkt. +- **Step 3** is optioneel maar handig; je kunt de maximale hoek die de engine probeert te corrigeren beperken, waardoor over‑rotatie op al rechte pagina's wordt voorkomen. +- **Step 4** is waar je **load image OCR** gegevens laadt. Vervang `YOUR_DIRECTORY/skewed_noisy.jpg` door het pad naar je testbestand. +- **Step 5** voert de OCR daadwerkelijk uit en produceert een `OcrResult`. +- **Step 6** **display OCR text** op de console, waardoor je direct feedback krijgt. + +> **Pro tip:** Als je merkt dat de output nog steeds onduidelijke tekens bevat, probeer dan de `MaxAngle` te verhogen of een `ContrastFilter` toe te voegen vóór de denoise‑stap. + +--- + +## recognize text image – Laad je bestanden correct + +Een veelvoorkomend struikelblok is **load image ocr** met een verkeerd formaat of DPI. Aspose.OCR ondersteunt PNG, JPEG, TIFF, BMP en zelfs PDF‑gebaseerde afbeeldingen. De engine werkt echter het beste met 300 DPI of hoger voor afgedrukte documenten. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Als je met een multi‑page TIFF werkt, kun je door elk frame itereren: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Hogere resolutie behoudt de vorm van elk teken, waardoor de herkenner meer datapunten heeft om mee te werken. Afbeeldingen met een lagere DPI leiden vaak tot samengevoegde of gebroken glyphs, die de engine verkeerd interpreteert. + +--- + +## improve OCR accuracy – Filterparameters afstemmen + +De standaard filterinstellingen zijn een goed uitgangspunt, maar je kunt er extra prestaties uit halen. + +| Filter | Sleutel‑eigenschap | Typische waarde | Wanneer aan te passen | +|--------|--------------------|-----------------|-----------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Afbeeldingen die sterk gekanteld zijn (tot 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Zeer ruisende scans; verhogen naar `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Screenshots met laag contrast. | + +Voorbeeld van het aanpassen van beide: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Als je afbeelding zowel handgeschreven notities als gedrukte tekst bevat, wil je misschien een `BinarizationFilter` toevoegen vóór het denoisen om de voorgrond van de achtergrond te scheiden. + +--- + +## display OCR text – De uitvoer opmaken + +Eenvoudige console‑output werkt voor demo’s, maar productcode heeft vaak opgeschoonde strings, regeleinden of zelfs JSON nodig. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Als je JSON nodig hebt voor een API‑respons: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Nu heb je **display OCR text** in een formaat dat downstream‑services kunnen gebruiken. + +--- + +## Volledig werkend voorbeeld – Alles samenvoegen + +Hieronder vind je het uiteindelijke, zelfstandige programma dat je kunt kopiëren en plakken in een nieuw console‑project. Het bevat optionele filters, een hoog‑resolutie afbeelding‑load en schone output. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Verwachte console‑output (voorbeeld):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Als je het programma met een ander bestand uitvoert, zullen de tekst en het vertrouwen dienovereenkomstig veranderen. + +--- + +## Veelgestelde vragen & antwoorden + +**Q: Wat als mijn afbeelding al recht is?** +A: Het scheef‑filter zal een bijna‑nul hoek detecteren en effectief een no‑op worden, dus je kunt het veilig ingeschakeld laten. + +**Q: Ondersteunt Aspose.OCR andere talen dan Engels?** +A: Ja—stel simpelweg `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (of een andere ondersteunde taal) in voordat je `Recognize` aanroept. + +**Q: Hoe ga ik om met multi‑page PDF’s?** +A: Converteer elke pagina naar een afbeelding (Aspose.PDF kan dat) en voer ze één voor één in dezelfde `OcrEngine`‑instantie. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/text-recognition/_index.md b/ocr/dutch/net/text-recognition/_index.md index e39716b5..fcb6f99c 100644 --- a/ocr/dutch/net/text-recognition/_index.md +++ b/ocr/dutch/net/text-recognition/_index.md @@ -55,9 +55,17 @@ Verbeter uw .NET-toepassingen met Aspose.OCR voor efficiënte beeldtekstherkenni Ontgrendel het potentieel van OCR in .NET met Aspose.OCR. Extraheer moeiteloos tekst uit PDF's. Download nu voor een naadloze integratie-ervaring. ### [Herken tabel in OCR-beeldherkenning](./recognize-table/) Ontgrendel het potentieel van Aspose.OCR voor .NET met onze uitgebreide gids over het herkennen van tabellen bij OCR-beeldherkenning. +### [c# OCR-tutorial: Tekst extraheren uit afbeelding met Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Leer hoe u met Aspose OCR tekst uit afbeeldingen haalt in een C#-applicatie. Volg de eenvoudige stap‑voor‑stap handleiding. +### [c# OCR-tutorial: Tekst extraheren uit afbeeldingen en exporteren naar JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Leer hoe u met Aspose OCR tekst uit afbeeldingen haalt en exporteert naar JSON. Volg de eenvoudige stap‑voor‑stap handleiding. +### [Hoe OCR-afbeelding in C# – Converteer JPG naar ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Leer hoe u met Aspose OCR een JPG-afbeelding omzet naar een ePub-bestand in C#. +### [Russische tekst herkennen met Aspose OCR C# – Volledige meer‑pagina PDF‑gids](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Leer hoe u Russische tekst in meer‑pagina PDF's herkent met Aspose OCR en C# in deze uitgebreide stap‑voor‑stap gids. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..178d4e3c --- /dev/null +++ b/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: c# ocr‑tutorial die laat zien hoe je tekst uit een afbeelding haalt, + OCR uitvoert op JPG‑bestanden met Aspose OCR. Leer hoe je een afbeelding laadt voor + OCR en nauwkeurige resultaten krijgt. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: nl +og_description: c# ocr‑tutorial die je stap voor stap begeleidt bij het extraheren + van tekst uit een afbeelding, het uitvoeren van OCR op JPG en het laden van afbeeldingen + voor OCR met Aspose. +og_title: c# ocr tutorial – Tekst extraheren uit afbeelding met Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# OCR‑tutorial: Tekst extraheren uit afbeelding met Aspose OCR' +url: /nl/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Tekst extraheren uit afbeelding met Aspose OCR + +Op zoek naar een **c# ocr tutorial** die echt werkt? In deze gids laten we je zien hoe je **tekst uit een afbeelding** kunt **extraheren** en **OCR op JPG**-bestanden kunt uitvoeren met de Aspose.OCR-bibliotheek. Of je nu een bonscanner, een documentarchiver of gewoon nieuwsgierig bent naar het lezen van tekst uit afbeeldingen, de onderstaande stappen brengen je van nul naar werkende code in enkele minuten. + +We behandelen alles wat je nodig hebt: het installeren van het pakket, het laden van een afbeelding voor OCR, het configureren van taalbronnen, het uitvoeren van de herkenningsengine en het afhandelen van de meest voorkomende valkuilen. Aan het einde heb je een zelfstandige console‑app die de herkende tekst naar de console print—geen externe services nodig. + +## Wat je nodig hebt + +- .NET 6.0 of later (de code werkt ook met .NET Framework 4.6+) +- Visual Studio 2022, VS Code, of elke C#‑editor die je verkiest +- Een afbeeldingsbestand dat Russische (Cyrillische) tekst bevat, bijv. `receipt_ru.jpg` +- Internetverbinding voor de eerste uitvoering (Aspose downloadt automatisch taalbronnen) + +Als je deze al hebt, geweldig—laten we beginnen. + +## Stap 1: Installeer Aspose.OCR en maak een nieuw project + +Allereerst voeg je het Aspose.OCR NuGet‑pakket toe aan je project. Open een terminal in je solution‑map en voer uit: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Gebruik de `--version`‑vlag om te vergrendelen op de nieuwste stabiele release, bijv. `Aspose.OCR 23.9.0`. + +Maak vervolgens een eenvoudig console‑project (sla dit over als je er al een hebt): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Nu heb je een schone basis waar je later de volledige voorbeeldcode kunt plakken. + +## Stap 2: Afbeelding laden voor OCR + +Het laden van de afbeelding is de eerste functionele stap in elke **c# ocr tutorial**. Aspose.OCR accepteert een bestandspad, een stream, of zelfs een `Bitmap`. Voor ons voorbeeld houden we het eenvoudig en laden we vanaf schijf: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Waarom dit belangrijk is:** Door de afbeelding expliciet te laden, geef je de engine een duidelijk doel, wat de nauwkeurigheid verbetert—vooral bij het verwerken van multi‑page PDF’s of invoer met gemengde formaten. + +## Stap 3: Taal configureren en bronnen automatisch downloaden + +Aspose.OCR wordt geleverd met taalpakketten die op aanvraag kunnen worden gedownload. Het inschakelen van automatisch downloaden zorgt ervoor dat de engine de Russische taalgegevens ophaalt bij de eerste uitvoering van de code. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Uitleg:** +> • `AutoDownloadResources = true` verwijdert de handmatige stap van het ophalen van `.dat`‑bestanden. +> • Het instellen van `Language` vertelt de engine welke tekenset te verwachten, wat de herkenningssnelheid en nauwkeurigheid drastisch verhoogt. + +## Stap 4: OCR uitvoeren en de herkende tekst ophalen + +Nu gebeurt het zware werk. De `Recognize`‑methode verwerkt de afbeelding en retourneert een `OcrResult`‑object dat de geëxtraheerde string bevat. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Wanneer je het programma uitvoert, zou je iets moeten zien als: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Wat je kunt verwachten:** De exacte output hangt af van de kwaliteit van de bronafbeelding, maar Aspose’s op neurale netwerken gebaseerde engine verwerkt doorgaans schone bonnen en afgedrukte formulieren met hoge nauwkeurigheid. + +## Volledig werkend voorbeeld + +Hieronder staat de **volledige, uitvoerbare code** die alle stappen combineert. Kopieer‑en‑plak deze in `Program.cs`, vervang `YOUR_DIRECTORY` door het daadwerkelijke mappad, en voer `dotnet run` uit. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Als je **tekst uit afbeelding**‑bestanden wilt extraheren die geen JPG zijn (PNG, BMP, TIFF), wijzig dan gewoon de bestandsextensie—Aspose ondersteunt ze allemaal. + +## Stap 5: Veelvoorkomende valkuilen & Pro‑tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Garbage characters** | Laag‑resolutie afbeelding of zware compressie | Gebruik een hogere‑kwaliteit bron, of pre‑process met `Bitmap` (bijv. contrast verhogen) | +| **Language not recognized** | Taalpakket niet gedownload | Zorg ervoor dat `AutoDownloadResources` `true` is en dat de machine internettoegang heeft bij de eerste uitvoering | +| **Null `ocrResult.Text`** | Afbeeldingspad onjuist of bestand ontbreekt | Controleer het pad, gebruik `File.Exists` vóór het laden | +| **Performance lag** | Grote batch afbeeldingen verwerkt sequentieel | Hergebruik één `OcrEngine`‑instantie voor meerdere oproepen | + +### Bonus: Meerdere bestanden lezen in een lus + +Als je **OCR op JPG**‑bestanden in een map moet uitvoeren, wikkel de logica dan in een `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +## Conclusie + +Je hebt zojuist een **c# ocr tutorial** voltooid die laat zien hoe je **tekst uit afbeelding** kunt **extraheren**, **OCR op JPG** kunt **uitvoeren**, en **afbeelding kunt laden voor OCR** met Aspose.OCR. Het voorbeeldprogramma demonstreert de volledige stroom—van het installeren van het NuGet‑pakket tot het afdrukken van de herkende Cyrillische tekst—zodat je het direct in elk .NET‑project kunt kopiëren. + +Klaar voor de volgende stap? Probeer `OcrLanguage.Russian` te vervangen door `OcrLanguage.English` om Engelse bonnen te herkennen, of experimenteer met de `OcrEngine.Settings`‑opties (bijv. `PageSegmentationMode`, `ImagePreprocessing`) om de nauwkeurigheid fijn af te stellen. Je kunt de output ook integreren in een database, PDF’s genereren, of invoeren in een vertaal‑API. + +Als je tegen problemen aanloopt, raadpleeg dan de Aspose.OCR‑documentatie of laat een reactie achter. Veel plezier met coderen, en moge je OCR‑resultaten altijd kristalhelder zijn! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..4c2d2cb8 --- /dev/null +++ b/ocr/dutch/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR‑tutorial die laat zien hoe je tekst extraheert, een afbeelding + laadt voor OCR en JSON naar een bestand schrijft met Aspose.OCR – stapsgewijze gids. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: nl +og_description: c# OCR-tutorial die je stap voor stap laat zien hoe je tekst uit afbeeldingen + kunt extraheren, een afbeelding kunt laden voor OCR, en JSON naar een bestand kunt + schrijven met Aspose.OCR. +og_title: c# OCR‑tutorial – Tekst extraheren en exporteren naar JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR-tutorial – Tekst uit afbeeldingen extraheren en exporteren naar JSON +url: /nl/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Tekst extraheren uit afbeeldingen en exporteren naar JSON + +Heb je je ooit afgevraagd hoe je tekst uit een gescande factuur kunt extraheren zonder uren te besteden aan het schrijven van aangepaste parsers? Je bent niet de enige. In deze **c# OCR tutorial** laten we je precies zien hoe je een afbeelding laadt voor OCR, de herkenningsengine uitvoert, en vervolgens **JSON naar bestand schrijft** zodat je de gegevens kunt doorvoeren naar downstream‑systemen. + +Stel je voor dat je een map met bonnen hebt, elk genaamd `receipt1.png`, `receipt2.png`, en je een snelle manier nodig hebt om ze om te zetten in doorzoekbare JSON‑records. Dat is het probleem dat we gaan oplossen, en aan het einde heb je een kant‑klaar console‑applicatie die precies dat doet. Geen extra afhankelijkheden buiten Aspose.OCR, en geen magie—alleen duidelijke, reproduceerbare stappen. + +> **Wat je zult leren** +> - Hoe je **image for OCR laadt** met Aspose.OCR. +> - De beste manier om **tekst te extraheren** en vertrouwensscores te krijgen. +> - Het OCR‑resultaat omzetten in een netjes gestructureerde **OCR image to JSON** payload. +> - Veilig **JSON naar bestand schrijven** en de output verifiëren. + +## Vereisten + +- .NET 6 SDK of later (de code werkt ook op .NET Core). +- Visual Studio 2022 of een editor naar keuze. +- Aspose.OCR NuGet‑pakket (`Install-Package Aspose.OCR`). +- Een afbeeldingsbestand (PNG, JPG, BMP) dat je wilt verwerken – voor de demo gebruiken we `invoice.png`. + +Als je een van deze mist, haal dan de SDK van de Microsoft‑site en voeg het NuGet‑pakket toe via de Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Nu de basis is gelegd, duiken we in de daadwerkelijke implementatie. + +## Stap 1: c# OCR tutorial – Initialiseer de OCR‑engine + +Voordat we **image for OCR kunnen laden**, hebben we een instantie van de engine nodig die het herkenningsproces aanstuurt. De `OcrEngine`‑klasse is lichtgewicht, maar het is goed om deze in een `using`‑block te plaatsen zodat bronnen direct worden vrijgegeven. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Als je van plan bent om veel afbeeldingen in één batch te verwerken, hergebruik dan dezelfde `OcrEngine`‑instantie in plaats van elke keer een nieuwe te maken. Dit vermindert geheugen‑churn en versnelt het proces. + +## Stap 2: Afbeelding laden voor OCR + +Nu **laden we daadwerkelijk de afbeelding voor OCR**. Aspose.OCR ondersteunt diverse formaten, zodat je een PNG, JPEG of zelfs een multi‑page TIFF kunt aanwijzen. De `OcrImage.FromFile`‑methode leest het bestand en maakt het klaar voor herkenning. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Waarom dit belangrijk is:** Het apart laden van de afbeelding laat je de afmetingen, DPI of zelfs een pre‑processing stap (bijv. binarisatie) inspecteren voordat je het naar de engine stuurt. Als de afbeelding corrupt is, zal `FromFile` een duidelijke uitzondering gooien, die je kunt opvangen en loggen. + +## Stap 3: Hoe tekst extraheren – Voer de herkenning uit + +Met de afbeelding in de hand kunnen we eindelijk **tekst extraheren**. De `Recognize`‑methode retourneert een `OcrResult`‑object dat niet alleen de platte tekst bevat, maar ook positionele data en vertrouwensscores voor elk woord. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Sommige PDF’s bevatten onzichtbare tekstlagen. Als je een PDF‑pagina als afbeelding invoert, ziet de engine mogelijk niets. Overweeg in dat geval eerst Aspose.PDF te gebruiken om de verborgen laag te extraheren, en alleen terug te vallen op OCR wanneer dat nodig is. + +## Stap 4: OCR image to JSON – Converteer het resultaat + +De `OcrResult`‑klasse biedt een handige `ToJson()`‑helper die de volledige resultaatsset – inclusief de omhullende box en confidence van elk woord – serialiseert naar een JSON‑string. Dit is de schoonste manier om **OCR image to JSON** te bereiken zonder een eigen serializer te schrijven. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Als je een aangepast schema wilt, kun je over `ocrResult.Words` itereren en je eigen object bouwen, maar voor de meeste scenario’s is de ingebouwde JSON voldoende en al goed gestructureerd. + +## Stap 5: JSON naar bestand schrijven + +Nu komt het laatste puzzelstukje: het JSON‑payload opslaan. De `File.WriteAllText`‑methode zorgt ervoor dat het bestand atomisch wordt aangemaakt (of overschreven). Zorg dat de doelmap bestaat, anders krijg je een `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* Als je UTF‑8 met BOM of een andere codering nodig hebt, gebruik dan de overload die een `Encoding`‑argument accepteert. + +## Stap 6: Controleer de output + +Een snelle `Console.WriteLine` vertelt ons dat het proces succesvol is afgerond. Je kunt het JSON‑bestand ook openen in een viewer om de structuur te bevestigen. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Verwachte JSON‑fragment + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +De JSON bevat de locatie van elk woord, wat handig is als je later tekst in een UI wilt markeren. + +## Volledig werkend voorbeeld + +Hieronder staat het complete, kant‑en‑klare programma. Vervang `YOUR_DIRECTORY` door het daadwerkelijke pad waar je afbeelding zich bevindt. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Voer het programma uit (`dotnet run` vanuit de projectmap) en je vindt `invoice.json` naast je originele PNG. + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|-------------------|-----------| +| **FileNotFoundException** bij het laden van de afbeelding | Typfout in pad of bestand ontbreekt | Gebruik `Path.Combine` en controleer `File.Exists` voordat je `FromFile` aanroept. | +| **Lage confidence‑scores** | Slechte beeldkwaliteit, lage DPI | Pre‑process met `ocrImage.AdjustContrast` of schaal de afbeelding op naar 300 DPI. | +| **JSON‑bestand leeg** | `ocrResult` retourneerde null (engine faalde) | Controleer of het afbeeldingsformaat wordt ondersteund en of de licentie (indien aanwezig) correct is toegepast. | +| **Prestatie‑knelpunt bij grote batches** | `OcrEngine` elke iteratie opnieuw aanmaken | Hergebruik één enkele `OcrEngine`‑instantie voor de hele batch en dispose pas aan het einde. | + +## Volgende stappen + +Nu je de **c# OCR tutorial** onder de knie hebt, kun je overwegen om: + +- **Batch‑verwerking** van een volledige map en de JSON‑bestanden te aggregeren in één database. +- **Integratie** van de output met Azure Cognitive Search voor doorzoekbare PDF’s. +- **Taalondersteuning toe te voegen** door `ocrEngine.Language = OcrLanguage.Spanish` in te stellen (of een andere ondersteunde taal). +- **Post‑processing** van de JSON om tabellen of sleutel‑waarde‑paren te extraheren met reguliere expressies. + +Al deze uitbreidingen bouwen voort op de kernconcepten die we hebben behandeld: afbeeldingen laden voor OCR, tekst extraheren, omzetten naar JSON, en die JSON naar schijf schrijven. + +### Conclusie + +In deze **c# OCR tutorial** hebben we elke stap doorlopen die nodig is om **image for OCR te laden**, **tekst te extraheren**, het resultaat te transformeren naar een **OCR image to JSON** payload, en uiteindelijk **JSON naar bestand te schrijven**. Het volledige code‑voorbeeld staat klaar om in elk .NET‑project te worden geplakt, en de toelichtingen geven je de context die je nodig hebt om de oplossing aan te passen aan real‑world scenario’s. + +Probeer het met je eigen set bonnen of facturen—pas de beeld‑pre‑processing aan, experimenteer met verschillende talen, en zie hoe de JSON‑output groeit. Als je ergens tegenaan loopt, raadpleeg dan de tabel met valkuilen of laat een commentaar achter. Veel programmeerplezier! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/dutch/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..5be9437b --- /dev/null +++ b/ocr/dutch/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Leer hoe je een afbeelding OCR‑t in C# en JPG naar ePub converteert met + Aspose OCR. Deze stapsgewijze gids laat ook zien hoe je tekst uit een afbeelding + kunt extraheren. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: nl +og_description: Hoe OCR je een afbeelding in C#? Volg deze gids om tekst uit een afbeelding + te extraheren en JPG naar ePub te converteren met Aspose OCR. +og_title: Hoe een afbeelding OCR'en in C# – Converteer JPG naar ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Hoe een afbeelding OCR'en in C# – Converteer JPG naar ePub +url: /nl/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe OCR op een afbeelding in C# – Converteer JPG naar ePub + +Heb je je ooit afgevraagd **hoe je OCR op een afbeelding** kunt uitvoeren direct vanuit een C# console‑applicatie? Je bent niet de enige. Veel ontwikkelaars lopen tegen een muur aan wanneer ze tekst uit een foto moeten halen en die tekst vervolgens in een leesbaar ePub‑boek willen verpakken. + +In deze tutorial lopen we stap voor stap door een volledig werkend voorbeeld dat **tekst uit een afbeelding haalt**, het resultaat opslaat als een ePub, en je laat zien hoe je **JPG naar ePub kunt converteren** zonder je IDE te verlaten. Geen poespas, alleen de code die je vandaag kunt kopiëren‑plakken en uitvoeren. + +## Wat je gaat leren + +- Hoe je de Aspose OCR‑engine instelt in een .NET‑project. +- De exacte stappen om **een afbeelding naar epub te converteren** met de `OcrSaveFormat.Epub`‑optie. +- Tips voor het omgaan met veelvoorkomende valkuilen zoals niet‑ondersteunde afbeeldingsformaten of ontbrekende lettertypen. +- Een volledige C#‑programmacode die je nu kunt compileren en uitvoeren. + +**Voorwaarden**: .NET 6 SDK (of een recente .NET‑versie), een geldig Aspose.OCR‑NuGet‑pakket, en een afbeeldingsbestand (`input.jpg`) dat je wilt verwerken. Als je nog nooit NuGet hebt gebruikt, open dan de Package Manager Console en voer `Install-Package Aspose.OCR` uit. + +Klaar? Laten we beginnen. + +## Stap 1 – Hoe OCR op een afbeelding en laad de bron + +Het eerste wat je nodig hebt is een OCR‑engine‑instantie en een bronafbeelding. Aspose OCR maakt dit eenvoudig: je maakt een `OcrEngine`, en laadt vervolgens een `OcrImage` vanaf de schijf. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Waarom dit belangrijk is** – De engine slechts één keer initialiseren houdt het geheugenverbruik laag, en de afbeelding vroeg laden laat je het bestandspad verifiëren voordat het zware OCR‑werk begint. + +## Stap 2 – Voer OCR uit en haal tekst uit de afbeelding + +Nu de afbeelding in het geheugen staat, vraag je de engine om de tekens te herkennen. De `Recognize`‑methode retourneert een `OcrResult`‑object dat de platte tekst, vertrouwensscores en zelfs lay‑outinformatie bevat. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro‑tip** – Als je alleen de tekst nodig hebt en niet het ePub, kun je hier stoppen. De eigenschap `ocrResult.Text` is een schone string die je naar elk ander systeem kunt doorsturen. + +## Stap 3 – Sla het resultaat op als een ePub‑boek (Converteer JPG naar ePub) + +Aspose OCR kan het OCR‑resultaat direct serialiseren naar verschillende formaten, inclusief ePub. Deze stap laat precies zien hoe je **JPG naar ePub kunt converteren** in één regel. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Wanneer je het programma uitvoert, zie je de geëxtraheerde tekst in de console en verschijnt er een nieuw bestand `book_page.epub` naast je bronafbeelding. Open het in elke ePub‑lezer (Calibre, Apple Books, enz.) en je vindt de OCR‑tekst netjes opgemaakt als een één‑pagina‑boek. + +### Verwachte output + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Als het ePub‑bestand correct opent, gefeliciteerd—je hebt zojuist een volledige **c# OCR‑voorbeeld** voltooid dat een JPEG omzet in een draagbaar ePub. + +## Stap 4 – Veelvoorkomende problemen bij het converteren van afbeelding naar ePub + +Zelfs met een degelijke bibliotheek kun je tegen een paar obstakels aanlopen. Hier is een snelle FAQ: + +| Probleem | Waarom het gebeurt | Hoe op te lossen | +|----------|--------------------|------------------| +| **Niet‑ondersteund afbeeldingsformaat** | Aspose OCR verwacht rasterformaten (JPG, PNG, BMP). | Converteer de afbeelding eerst naar JPG of PNG, bv. met `System.Drawing.Image`. | +| **Lege output** | Lage beeldkwaliteit of zware compressie. | Verhoog DPI, gebruik een helderdere scan, of pas beeldvoorbewerking toe (`ocrEngine.Preprocess`). | +| **Ontbrekende lettertypen in ePub** | De standaard ePub‑writer gebruikt systeemlettertypen die mogelijk niet zijn ingebed. | Stel `ocrEngine.Config.FontsDirectory` in op een map met de benodigde .ttf‑bestanden. | +| **Groot ePub‑bestand** | Hoge resolutie‑afbeeldingen worden als afzonderlijke pagina’s ingebed. | Gebruik `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Deze problemen vroeg aanpakken bespaart je later veel tijd met bug‑jagen. + +## Stap 5 – Het voorbeeld uitbreiden (Voorbij de basis) + +Nu je een werkende **conversiepijplijn van afbeelding naar epub** hebt, vraag je je misschien af wat je nog meer kunt doen. Hier zijn een paar ideeën om morgen uit te proberen: + +1. **Batchverwerking** – Loop door een map met JPG’s, genereer één ePub per afbeelding, of voeg ze samen tot een ePub met meerdere hoofdstukken. +2. **Taalselectie** – Stel `ocrEngine.Language = Language.English;` of een andere ondersteunde taal in om de nauwkeurigheid te verbeteren. +3. **Lay‑outbehoud** – Gebruik eerst `OcrSaveFormat.Html`, en wikkel de HTML vervolgens in een ePub voor rijkere opmaak. +4. **Cloud‑implementatie** – Verpak de code in een Azure Function of AWS Lambda om OCR‑naar‑ePub als webservice aan te bieden. + +Elk van deze uitbreidingen bouwt voort op de kern **hoe OCR op een afbeelding**‑logica die we net hebben behandeld. + +## Volledige werkende code (Klaar om te kopiëren‑plakken) + +Hieronder staat het volledige programma in één blok. Vervang `YOUR_DIRECTORY` door het daadwerkelijke pad naar je afbeeldingsbestand. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Onthoud** – Het `Aspose.OCR`‑NuGet‑pakket moet geïnstalleerd zijn, en de doel‑.NET‑runtime moet minimaal .NET 5 zijn voor optimale compatibiliteit. + +## Conclusie + +We hebben net **hoe OCR op een afbeelding**‑bestanden in C# uit te voeren en die scans om te zetten in nette ePub‑boeken behandeld—een **converteer JPG naar ePub**‑workflow die je in elk project kunt integreren. Door de bovenstaande stappen te volgen kun je **tekst uit afbeelding extraheren**, veelvoorkomende randgevallen afhandelen, en de oplossing uitbreiden naar batch‑taken of cloud‑services. + +Als je de volgende logische stap wilt zetten, probeer dan de ePub‑output te vervangen door een PDF (`OcrSaveFormat.Pdf`) of de OCR‑tekst te voeden aan een vertaal‑API. De mogelijkheden zijn eindeloos zodra je de basis onder de knie hebt. + +Heb je vragen over een specifiek afbeeldingsformaat, of wil je een voorbeeld van een ePub met meerdere pagina’s zien? Laat een reactie achter, en ik help je graag verder. Veel programmeerplezier, en geniet van het omzetten van foto’s naar boeken! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/dutch/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..d85db3a3 --- /dev/null +++ b/ocr/dutch/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-01-01 +description: Herken Russische tekst direct met Aspose OCR C#. Leer hoe je Chinese + tekst herkent, het aantal PDF‑pagina’s leest en PDF‑paginatekst converteert in één + tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: nl +og_description: herken Russische tekst snel met Aspose OCR C#. Deze tutorial behandelt + ook hoe je Chinese tekst herkent, het aantal PDF-pagina's leest en PDF-pagina-tekst + converteert. +og_title: Herken Russische tekst met Aspose OCR C# – Volledige gids +tags: +- Aspose OCR +- C# +- PDF processing +title: herken Russische tekst met Aspose OCR C# – Volledige meerpagina‑PDF‑gids +url: /nl/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# herken Russische tekst met Aspose OCR C# – Volledige Multi‑Page PDF Tutorial + +Heb je ooit **Russische tekst moeten herkennen** in een PDF die meerdere talen bevat, en je afgevraagd hoe je dat kunt doen zonder voor elke pagina een apart hulpmiddel te gebruiken? Je bent niet de enige. In veel real‑world projecten krijg je één PDF die Engels, Russisch en zelfs Chinees op verschillende pagina's bevat, en wil je toch één enkele, schone tekstoutput. + +In deze gids laten we je precies zien hoe je **Russische tekst kunt herkennen** (en andere talen) met behulp van **Aspose OCR C#**, terwijl we ook laten zien hoe je **pdf-pagina‑aantal kunt lezen**, **Chinese tekst kunt herkennen**, en **pdf-pagina‑tekst kunt converteren** naar een handige console‑dump. Geen externe services, geen verborgen stappen—alleen pure C#‑code die je kunt kopiëren‑plakken en uitvoeren. + +> **Wat je zult meenemen** +> * Een uitvoerbare C# console‑applicatie die een multi‑page PDF verwerkt. +> * Per‑pagina taalselectie (Russisch, Chinees, Engels). +> * Technieken om het paginacount van de PDF op te vragen en de tekst van elke pagina te extraheren. +> * Tips, valkuilen en uitbreidingen die je op je eigen projecten kunt toepassen. + +## Vereisten + +- .NET 6.0 of later (de code werkt ook op .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet‑pakket geïnstalleerd (`dotnet add package Aspose.OCR`). +- Een PDF‑bestand dat gemengde talen bevat; voor de demo verwijzen we naar `mixed_lang.pdf`. +- Basiskennis van C# console‑applicaties. + +Als je een van deze mist, haal dan de nieuwste Aspose OCR van NuGet en plaats je PDF ergens bereikbaar vanuit de projectmap. + +## Stap 1 – Initialiseer de Aspose OCR Engine + +Het allereerste wat je nodig hebt is een instantie van `OcrEngine`. Dit object bevat alle instellingen (zoals taal) en voert het zware werk uit. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Waarom dit belangrijk is:** +> De engine is herbruikbaar, zodat we geen geheugen verspillen door voor elke pagina een nieuwe instantie te maken. Het hergebruiken stelt ons ook in staat de taal dynamisch te wijzigen, wat essentieel is voor **Russische tekst herkennen** op één pagina en **Chinese tekst herkennen** op een andere. + +## Stap 2 – Laad de PDF en ontdek hoeveel pagina's het heeft + +Voordat we beginnen met herkennen, hebben we het PDF‑object en het paginacount nodig. Aspose OCR behandelt elke pagina als een `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** Als de PDF enorm is, wil je misschien eerst het aantal lezen en beslissen of je alle pagina's of slechts een deel wilt verwerken. + +## Stap 3 – Koppel elke pagina aan de gewenste taal + +Aspose OCR ondersteunt veel talen, maar je moet aangeven welke je voor elke pagina wilt gebruiken. Hieronder maken we een `Dictionary` waarbij de sleutel de nul‑gebaseerde paginanaam is. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Waarom dit cruciaal is:** +> Zonder deze map zou de OCR‑engine één standaardtaal voor elke pagina proberen, wat leidt tot onleesbare output voor Russische of Chinese tekst. Deze stap maakt **Russische tekst herkennen** en **Chinese tekst herkennen** correct mogelijk. + +## Stap 4 – Loop door alle pagina's, stel de taal in en herken de tekst + +Nu itereren we over elke pagina, wisselen we de taal op basis van onze map, en roepen we `Recognize` aan. Het resultaat wordt opgeslagen in `OcrResult`, waaruit we de platte tekst extraheren. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Verwachte console‑output + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Uitleg van de flow:** +> * De loop respecteert het **pdf-pagina‑aantal lezen** dat we eerder hebben afgedrukt. +> * Door `ocrEngine.Settings.Language` elke iteratie te wisselen, garanderen we nauwkeurige **Russische tekst herkennen** op pagina 2 en **Chinese tekst herkennen** op pagina 3. +> * De `Console.WriteLine`‑statements converteren effectief **pdf-pagina‑tekst** naar een mens‑leesbare string. + +## Stap 5 – Uitvoeren, verifiëren en aanpassen + +1. Bouw het project (`dotnet build`). +2. Voer het uit (`dotnet run`). +3. Vergelijk de console‑output met de originele PDF. + +Als je ontbrekende tekens opmerkt, overweeg dan: + +- **De OCR‑nauwkeurigheid verhogen** door `ocrEngine.Settings.DetectTextOrientation = true;` in te stellen. +- **Een aangepast taalpakket leveren** als de ingebouwde Russische of Chinese woordenboeken verouderd zijn. +- **DPI aanpassen** bij het laden van de PDF (`OcrImage.FromFile(path, 300)`), wat de herkenning bij scans met lage resolutie kan verbeteren. + +## Bonus: Randgevallen afhandelen + +### Wat als de taal van een pagina niet in de map staat? + +De code valt al terug op Engels, maar je kunt ook een fallback toevoegen die een waarschuwing logt: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Kunnen we PDF's verwerken met meer dan drie talen? + +Zeker. Breid `languageMap` uit met extra indexen en ondersteunde `OcrLanguage`‑waarden (bijv. `OcrLanguage.French`). De loop zal elk aantal pagina's aan kunnen. + +### Hoe exporteer je de resultaten naar een bestand in plaats van de console? + +Vervang de `Console.WriteLine`‑aanroepen door `File.AppendAllText("output.txt", …)` of gebruik een `StringBuilder` die je eenmaal na de loop wegschrijft. + +## Afbeeldingsillustratie + +![voorbeeld van Russische tekst herkennen](/images/recognize-russian-text.png "Screenshot die OCR-output voor Russische tekst toont") + +*De bovenstaande afbeelding toont de console‑output wanneer **Russische tekst herkennen** wordt uitgevoerd op een PDF met gemengde talen.* + +## Conclusie + +We hebben een compleet, end‑to‑end voorbeeld doorlopen dat laat zien hoe je **Russische tekst kunt herkennen** (en ook **Chinese tekst kunt herkennen**) uit een multi‑page PDF met behulp van **Aspose OCR C#**. Door hetinacount van de PDF te lezen, elke pagina aan de juiste taal te koppelen en door het document te loopen, kun je **pdf-pagina‑tekst** omzetten naar platte strings die klaar zijn voor opslag, indexering of verdere analyse. + +In het kort: + +- **Initialiseer** een enkele `OcrEngine`. +- **Laad** de PDF en **pdf-pagina‑aantal lezen**. +- **Koppel** pagina's aan talen (Russisch, Chinees, enz.). +- **Itereer**, stel `ocrEngine.Settings.Language` in, en **herken** elke pagina. +- **Output** of sla de geëxtraheerde tekst op. + +Voel je vrij dit patroon aan te passen voor grotere documenten, foutafhandeling toe te voegen, of de resultaten in een zoekindex te integreren. Het kernidee—per‑pagina taalselectie—blijft hetzelfde, en het is wat betrouwbare **Russische tekst herkennen** mogelijk maakt in PDF's met gemengde talen. + +Heb je een ander scenario, zoals het scannen van afbeeldingen in plaats van PDF's? Dezelfde engine werkt; vervang gewoon `OcrImage.FromFile` door `OcrImage.FromStream` of `FromBitmap`. Veel plezier met coderen, en moge je OCR altijd nauwkeurig zijn! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/ocr-configuration/_index.md b/ocr/english/net/ocr-configuration/_index.md index 317e0d4e..1ba85d45 100644 --- a/ocr/english/net/ocr-configuration/_index.md +++ b/ocr/english/net/ocr-configuration/_index.md @@ -39,10 +39,12 @@ Unlock the power of OCR image recognition in .NET with Aspose.OCR. Extract text Unlock powerful OCR capabilities with Aspose.OCR for .NET. Extract text from images seamlessly. ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Unlock the potential of Aspose.OCR for .NET. Effortlessly perform OCR image recognition with lists. Boost productivity and data extraction in your applications. +### [How to Apply License in Aspose OCR – Step‑by‑Step C# Guide](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Learn how to apply a license to Aspose OCR in C# with a clear step‑by‑step guide. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/english/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..a7ebe59e --- /dev/null +++ b/ocr/english/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-01-01 +description: How to apply license for Aspose OCR in C#. Learn how to read file, set + Aspose license, use MemoryStream and load license efficiently. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: en +og_description: How to apply license for Aspose OCR in C#. Follow this guide to read + the license file, set Aspose license, use MemoryStream and verify the setup. +og_title: How to Apply License in Aspose OCR – Complete C# Tutorial +tags: +- Aspose +- OCR +- C# +- Licensing +title: How to Apply License in Aspose OCR – Step‑by‑Step C# Guide +url: /net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Apply License in Aspose OCR – Complete C# Guide + +Ever wondered **how to apply license** for Aspose OCR without chasing vague docs? You’re not alone. Most developers hit the same snag: they can read the file, but they don’t know the right way to feed it into the library. In this tutorial we’ll walk through every detail—from loading the `.lic` file on disk to calling `SetLicense` with a `MemoryStream`. By the end you’ll have a working solution you can drop into any .NET project. + +We’ll also cover **how to read file** safely, the proper way to **set Aspose license**, and why using a **MemoryStream** is the cleanest approach. If you’re curious about **how to load license** in different environments, those tips are included as well. No external references required—just pure, copy‑and‑paste‑ready code. + +## Prerequisites + +- .NET 6.0 or later (the code works with .NET Core and .NET Framework alike) +- Aspose.OCR NuGet package installed (`Install-Package Aspose.OCR`) +- A valid `Aspose.OCR.lic` file placed somewhere your application can reach +- Basic familiarity with C# and Visual Studio (or any IDE you prefer) + +> **Pro tip:** Keep the license file outside of your source control folder to avoid accidental commits. + +## Step 1: How to Read File – Load the License Bytes + +The first thing we need is the raw byte array of the license file. Using `File.ReadAllBytes` is both simple and efficient, and it automatically throws a clear exception if the path is wrong. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Why this matters:** Reading the file directly into memory avoids any file‑handle leaks and gives us a clean byte array to work with later. It also makes the method reusable across console apps, web services, or Azure Functions. + +## Step 2: How to Use MemoryStream – Prepare the License Stream + +Aspose’s `License.SetLicense` overload expects a `Stream`. Wrapping the byte array in a `MemoryStream` is the idiomatic way to satisfy that requirement without touching the filesystem again. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Key insight:** `MemoryStream` is lightweight and disposes quickly. It also lets you reuse the same byte array for multiple libraries if you ever need to apply more than one Aspose product license. + +## Step 3: Set Aspose License – The Core of “how to apply license” + +Now that we have a `MemoryStream`, applying the license is a one‑liner. The `License` class lives in the `Aspose.OCR` namespace, so make sure you’ve added the proper `using` directive. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +If the license is invalid or expired, `SetLicense` will silently fail, and the library will operate in trial mode. To be absolutely sure, you can check a feature that is only available in the licensed version (e.g., OCR accuracy settings) or simply rely on the confirmation message we’ll print later. + +## Step 4: How to Load License – Putting It All Together + +Below is the complete, runnable console program that demonstrates **how to load license** from disk, use a `MemoryStream`, and verify that the license was applied successfully. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Expected Output + +``` +License applied successfully. You can now perform OCR operations. +``` + +If you see the message, the library is fully licensed and ready for production‑grade OCR tasks. + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when reading the license | Path is wrong or the file isn’t deployed with the app | Use an absolute path or embed the license as a resource (see “alternative loading” below) | +| **License not applied but no error** | `SetLicense` silently falls back to trial mode if the stream is empty or corrupted | Verify `licenseData.Length > 0` before creating the `MemoryStream` | +| **MemoryStream not disposed** | Forgetting `using` leads to unmanaged resources lingering | Always wrap the stream in a `using` block as shown | + +### Alternative: Embedding the License as an Embedded Resource + +If you prefer not to ship a separate `.lic` file, add it to your project, set **Build Action** to **Embedded Resource**, and read it like this: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Then call `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` and continue with the same `MemoryStream` approach. + +## Conclusion + +We’ve covered **how to apply license** for Aspose OCR from start to finish: reading the file, creating a `MemoryStream`, calling `SetLicense`, and confirming the activation. By following these steps you eliminate guesswork, avoid common errors, and ensure your OCR engine runs in full‑feature mode. + +Next, you might explore **how to read file** asynchronously for high‑throughput services, or dive into advanced OCR settings now that the license is correctly loaded. Either way, the pattern stays the same—read, stream, set, verify. + +Got questions about edge cases, such as loading the license in an ASP.NET Core environment or handling multiple Aspose product licenses? Drop a comment below, and happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/ocr-optimization/_index.md b/ocr/english/net/ocr-optimization/_index.md index a1ef63f0..00ca7cf8 100644 --- a/ocr/english/net/ocr-optimization/_index.md +++ b/ocr/english/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Explore Aspose.OCR for .NET. Boost OCR accuracy with preprocessing filters. Down Enhance OCR accuracy with Aspose.OCR for .NET. Correct spellings, customize dictionaries, and achieve error-free text recognition effortlessly. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Unlock the potential of Aspose.OCR for .NET. Effortlessly save multipage OCR results as documents with this comprehensive step-by-step guide. +### [How to Batch OCR in C# with Aspose OCR Engine](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Learn how to process multiple images efficiently using Aspose OCR Engine in C# for high-throughput OCR tasks. +### [preprocess image ocr in C# – Boost Accuracy with Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Boost OCR accuracy in C# by preprocessing images with Aspose OCR. Learn techniques to enhance recognition results efficiently. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/english/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..8fd0dd64 --- /dev/null +++ b/ocr/english/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: How to batch OCR using Aspose OCR Engine in C#. Learn to recognize text + from images and extract text from TIFF files with GPU acceleration. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: en +og_description: How to batch OCR in C# with Aspose OCR Engine. This guide shows you + how to recognize text from images and extract text from TIFF files efficiently. +og_title: How to Batch OCR in C# – Complete Aspose Guide +tags: +- OCR +- C# +- Aspose +- GPU +title: How to Batch OCR in C# with Aspose OCR Engine +url: /net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Batch OCR in C# with Aspose OCR Engine + +Ever wondered **how to batch OCR** when you have dozens of scanned documents sitting in a folder? You're not alone—many developers hit that wall when moving from single‑image recognition to processing an entire collection. The good news is that Aspose OCR makes it a piece of cake, whether you’re running on a CPU or taking advantage of GPU acceleration. + +In this tutorial we’ll walk through a complete, runnable example that **recognizes text from images** and even **extracts text from TIFF** files in bulk. No vague “see the docs” shortcuts—just a self‑contained solution you can copy‑paste and run today. + +## Prerequisites + +Before we dive in, make sure you have: + +* .NET 6.0 or later installed (the code targets .NET 6, but .NET 5 works as well). +* Aspose.OCR for .NET NuGet package (both CPU and GPU versions are available; install the one that matches your hardware). +* A folder with a few sample TIFF or PNG files you’d like to process. +* Visual Studio 2022 or any IDE you prefer. + +> **Pro tip:** If you plan to use the GPU version, verify that your graphics driver is up‑to‑date and that CUDA 11+ is installed. The engine will fall back to CPU automatically if it can’t find a compatible GPU. + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: Create a New Console App and Add Aspose.OCR + +Open a terminal (or the Package Manager Console in Visual Studio) and run: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +If you have a GPU‑enabled license, add the GPU package instead: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +That’s it—your project now references the OCR library we’ll use to **batch OCR**. + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: How to Batch OCR – Engine Initialization + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Why this matters:** By toggling `UseGpu`, you let Aspose decide the fastest path. If the GPU isn’t available, the engine silently switches back to CPU, so your batch job never crashes because of missing hardware. + +## Step 3 – Gather the Files You Want to Process + +### H2: Recognize Text from Images – Building the File List + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Edge case note:** If you have a mix of formats, change the search pattern to `"*.*"` and filter by extension inside the loop. This keeps the batch flexible. + +## Step 4 – Process Each Image and Show a Preview + +### H2: Extract Text from TIFF – Loop Through the Files + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**What you’ll see:** For each TIFF, the console prints something like: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +That preview confirms the batch succeeded without having to open every file manually. + +## Step 5 – Save Results (Optional but Handy) + +### H3: Persist OCR Output to Text Files + +If you need the full text for downstream processing, add this inside the `foreach` loop: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Now each TIFF gets a companion `.txt` file containing the complete OCR output—perfect for indexing, search, or feeding into a language model. + +## Step 6 – Run the Demo and Verify + +1. Build the project: `dotnet build`. +2. Execute: `dotnet run --project GpuBatchDemo.csproj`. + +You should see the preview lines printed to the console, and (if you added the optional step) a series of `.txt` files next to your source images. + +### H3: Common Pitfalls & How to Fix Them + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Image too dark or low DPI | Pre‑process images (increase contrast, upscale) or set `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Out‑of‑date driver | Update GPU driver, or set `UseGpu = false` to force CPU. | +| **Exception “File not found”** | Wrong path separator on Linux/macOS | Use `Path.Combine` or forward slashes (`/`). | + +## Step 7 – Scaling Up (Beyond a Few Files) + +When you move from a handful of TIFFs to thousands, consider: + +* **Parallel processing:** Wrap the `foreach` in `Parallel.ForEach` (make sure the engine instance is thread‑safe; otherwise create one per thread). +* **Chunked I/O:** Read images in batches to avoid exhausting RAM. +* **Logging:** Write progress to a log file; it helps resume after a crash. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Remember:** GPU memory is shared, so spawning too many parallel GPU jobs can actually slow you down. Test with a few threads first. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Running this program will **recognize text from images**, **extract text from TIFF**, and demonstrate **how to batch OCR** efficiently. + +--- + +## Conclusion + +You now have a solid, end‑to‑end example of **how to batch OCR** in C# using Aspose’s OCR engine. The tutorial covered everything from setting up the project, toggling GPU acceleration, building a file list, processing each image, and persisting results. Whether you’re extracting text from TIFF files or any other image format, the same pattern applies—just swap the file extensions. + +Ready for the next step? Try integrating the OCR output with a search index, feed the text into a large‑language model, or experiment with parallel processing to shave minutes off massive batches. The sky’s the limit, and you’ve got the foundation to build on. + +Got questions or want to share your own batch‑OCR tricks? Drop a comment below—happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/english/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..1a52dcf9 --- /dev/null +++ b/ocr/english/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-01-01 +description: preprocess image ocr to enhance accuracy. Learn how to recognize text + image, improve OCR accuracy, load image OCR and display OCR text using Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: en +og_description: preprocess image ocr to improve accuracy. This guide shows how to + recognize text image, load image OCR, apply filters, and display OCR text. +og_title: preprocess image ocr in C# – Boost Accuracy with Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: preprocess image ocr in C# – Boost Accuracy with Aspose OCR +url: /net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Ever wondered how to **preprocess image ocr** so the engine actually reads what’s on the page? You’re not alone—most developers hit a wall when a noisy, skewed scan refuses to cooperate. The good news is that a few smart preprocessing steps can turn a disaster‑zone image into clean, readable text. + +In this tutorial we’ll walk through a complete, ready‑to‑run example that **recognize text image** files, **improve OCR accuracy**, and finally **display OCR text** on the console. By the end you’ll know how to **load image OCR** assets, attach filters like skew correction and denoising, and get reliable results—all with Aspose.OCR for .NET. + +## What You’ll Learn + +- How to create an `OcrEngine` instance and configure preprocessing filters. +- Why skew correction and denoise filters matter for **improve OCR accuracy**. +- The exact code to **load image ocr** files and run recognition. +- How to **display OCR text** in a user‑friendly way. +- Tips, pitfalls, and optional tweaks you can apply in real‑world projects. + +### Prerequisites + +- .NET 6+ (or .NET Framework 4.7+) installed on your machine. +- A license for Aspose.OCR (the free trial works for this demo). +- Basic C# knowledge—no advanced tricks required. + +If any of those sound unfamiliar, just pause and install the missing pieces; the rest of the guide assumes they’re in place. + +--- + +## preprocess image ocr – Setting Up Filters + +The first thing you need to understand is **why preprocessing matters**. OCR engines are great at reading crisp, straight‑on text, but real‑world scans often suffer from rotation, blur, or background noise. By feeding a cleaned‑up image to the engine you dramatically raise the chances of a correct transcription. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**What’s happening here?** +- **Step 1** creates the engine—the heart of the Aspose OCR library. +- **Step 2** attaches two filters. The `SkewCorrectionFilter` rotates the image back to horizontal, while `DenoiseFilter` smooths out pixel‑level noise. +- **Step 3** is optional but handy; you can cap the maximum angle the engine will attempt to correct, preventing over‑rotation on already‑straight pages. +- **Step 4** is where you **load image OCR** data. Replace `YOUR_DIRECTORY/skewed_noisy.jpg` with the path to your test file. +- **Step 5** actually runs the OCR and produces an `OcrResult`. +- **Step 6** **display OCR text** on the console, giving you immediate feedback. + +> **Pro tip:** If you notice the output still contains garbled characters, try increasing the `MaxAngle` or adding a `ContrastFilter` before the denoise step. + +--- + +## recognize text image – Loading Your Files Correctly + +A common stumbling block is **load image ocr** with the wrong format or DPI. Aspose.OCR supports PNG, JPEG, TIFF, BMP, and even PDF‑based images. However, the engine works best with 300 DPI or higher for printed documents. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +If you’re dealing with a multi‑page TIFF, you can loop through each frame: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Higher resolution preserves the shape of each character, giving the recognizer more data points to work with. Lower DPI images often lead to merged or broken glyphs, which the engine will misinterpret. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +The default filter settings are a good starting point, but you can squeeze extra performance out of them. + +| Filter | Key Property | Typical Value | When to Adjust | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Images that are heavily tilted (up to 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Very noisy scans; increase to `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Low‑contrast screenshots. | + +Example of customizing both: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** If your image contains both handwritten notes and printed text, you might want to add a `BinarizationFilter` before denoising to separate foreground from background. + +--- + +## display OCR text – Formatting the Output + +Plain console output works for demos, but production code often needs cleaned‑up strings, line breaks, or even JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +If you need JSON for an API response: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Now you’ve **display OCR text** in a format that downstream services can consume. + +--- + +## Full Working Example – Put It All Together + +Below is the final, self‑contained program you can copy‑paste into a new console project. It includes optional filters, a high‑resolution image load, and clean output. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Expected console output (sample):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +If you run the program with a different file, the text and confidence will change accordingly. + +--- + +## Common Questions & Answers + +**Q: What if my image is already straight?** +A: The skew filter will detect a near‑zero angle and effectively become a no‑op, so you can safely keep it enabled. + +**Q: Does Aspose.OCR support languages other than English?** +A: Yes—simply set `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (or any supported language) before calling `Recognize`. + +**Q: How do I handle multi‑page PDFs?** +A: Convert each page to an image (Aspose.PDF can do that) and feed them one‑by‑one to the same `OcrEngine` instance. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/text-recognition/_index.md b/ocr/english/net/text-recognition/_index.md index b3bb5f05..aea62f3e 100644 --- a/ocr/english/net/text-recognition/_index.md +++ b/ocr/english/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Enhance your .NET applications with Aspose.OCR for efficient image text recognit Unlock the potential of OCR in .NET with Aspose.OCR. Extract text from PDFs effortlessly. Download now for a seamless integration experience. ### [Recognize Table in OCR Image Recognition](./recognize-table/) Unlock the potential of Aspose.OCR for .NET with our comprehensive guide on recognizing tables in OCR image recognition. +### [c# ocr tutorial: Extract Text from Image with Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Learn how to extract text from images using Aspose OCR in C#. Follow our step-by-step guide to integrate OCR capabilities into your .NET projects. +### [c# OCR tutorial – Extract Text from Images and Export to JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Learn how to extract text from images and export the results to JSON using Aspose OCR in C#. Follow our concise step-by-step guide. +### [How to OCR Image in C# – Convert JPG to ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Learn to OCR a JPG image in C# and convert the extracted text into an ePub ebook using Aspose OCR. +### [recognize russian text with Aspose OCR C# – Full Multi‑Page PDF Guide](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Learn how to recognize Russian text in multi‑page PDFs using Aspose OCR with C#. Follow our step-by-step guide for accurate extraction. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..efdcf411 --- /dev/null +++ b/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: c# ocr tutorial showing how to extract text from image, perform OCR on + JPG files using Aspose OCR. Learn to load image for OCR and get accurate results. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: en +og_description: c# ocr tutorial that walks you through extracting text from image, + performing OCR on JPG, and loading images for OCR using Aspose. +og_title: c# ocr tutorial – Extract Text from Image with Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# ocr tutorial: Extract Text from Image with Aspose OCR' +url: /net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Extract Text from Image with Aspose OCR + +Looking for a **c# ocr tutorial** that actually works? In this guide we'll show you how to **extract text from an image** and **perform OCR on JPG** files using the Aspose.OCR library. Whether you’re building a receipt scanner, a document archiver, or just curious about reading text from pictures, the steps below will get you from zero to working code in minutes. + +We'll cover everything you need: installing the package, loading an image for OCR, configuring language resources, running the recognition engine, and handling the most common pitfalls. By the end you’ll have a self‑contained console app that prints the recognized text to the console—no external services required. + +## What You’ll Need + +- .NET 6.0 or later (the code works with .NET Framework 4.6+ as well) +- Visual Studio 2022, VS Code, or any C# editor you prefer +- An image file that contains Russian (Cyrillic) text, e.g., `receipt_ru.jpg` +- Internet connection for the first run (Aspose will auto‑download language resources) + +If you already have these, great—let’s dive in. + +## Step 1: Install Aspose.OCR and Create a New Project + +First things first, add the Aspose.OCR NuGet package to your project. Open a terminal in your solution folder and run: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Use the `--version` flag to lock to the latest stable release, e.g., `Aspose.OCR 23.9.0`. + +Next, create a simple console project (skip this if you already have one): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Now you have a clean slate where you can paste the full sample code later. + +## Step 2: Load Image for OCR + +Loading the image is the first functional step in any **c# ocr tutorial**. Aspose.OCR accepts a file path, a stream, or even a `Bitmap`. For our example we’ll keep it straightforward and load from disk: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** By explicitly loading the image, you give the engine a clear target, which improves accuracy—especially when dealing with multi‑page PDFs or mixed‑format inputs. + +## Step 3: Configure Language and Auto‑Download Resources + +Aspose.OCR ships with language packs that can be downloaded on demand. Enabling auto‑download ensures the engine grabs the Russian language data the first time you run the code. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` removes the manual step of fetching `.dat` files. +> • Setting `Language` tells the engine which character set to expect, dramatically boosting recognition speed and accuracy. + +## Step 4: Run OCR and Retrieve the Recognized Text + +Now the heavy lifting happens. The `Recognize` method processes the image and returns an `OcrResult` object containing the extracted string. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +When you execute the program, you should see something like: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** The exact output depends on the quality of the source image, but Aspose’s neural‑network‑based engine typically handles clean receipts and printed forms with high fidelity. + +## Complete Working Example + +Below is the **full, runnable code** that combines all the steps. Copy‑paste it into `Program.cs`, replace `YOUR_DIRECTORY` with the actual folder path, and hit `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** If you need to **extract text from image** files other than JPG (PNG, BMP, TIFF), just change the file extension—Aspose handles them all. + +## Step 5: Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Garbage characters** | Low‑resolution image or heavy compression | Use a higher‑quality source, or pre‑process with `Bitmap` (e.g., increase contrast) | +| **Language not recognized** | Language pack not downloaded | Ensure `AutoDownloadResources` is `true` and the machine has internet access on first run | +| **Null `ocrResult.Text`** | Image path incorrect or file missing | Verify the path, use `File.Exists` before loading | +| **Performance lag** | Large batch of images processed sequentially | Reuse a single `OcrEngine` instance across multiple calls | + +### Bonus: Reading Multiple Files in a Loop + +If you need to **perform OCR on JPG** files in a folder, wrap the logic in a `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +This pattern scales nicely for receipt‑processing pipelines. + +## Conclusion + +You’ve just completed a **c# ocr tutorial** that shows how to **extract text from image**, **perform OCR on JPG**, and **load image for OCR** using Aspose.OCR. The sample program demonstrates the entire flow—from installing the NuGet package to printing the recognized Cyrillic text—so you can copy it into any .NET project right away. + +Ready for the next step? Try swapping `OcrLanguage.Russian` with `OcrLanguage.English` to recognize English receipts, or experiment with the `OcrEngine.Settings` options (e.g., `PageSegmentationMode`, `ImagePreprocessing`) to fine‑tune accuracy. You can also integrate the output into a database, generate PDFs, or feed it into a translation API. + +If you hit any snags, check the Aspose.OCR documentation or drop a comment below. Happy coding, and may your OCR results always be crystal‑clear! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..716666d5 --- /dev/null +++ b/ocr/english/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR tutorial showing how to extract text, load image for OCR, and + write JSON to file using Aspose.OCR – step‑by‑step guide. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: en +og_description: c# OCR tutorial that walks you through how to extract text from images, + load image for OCR, and write JSON to file using Aspose.OCR. +og_title: c# OCR tutorial – Extract Text and Export to JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR tutorial – Extract Text from Images and Export to JSON +url: /net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Extract Text from Images and Export to JSON + +Ever wondered how to extract text from a scanned invoice without spending hours writing custom parsers? You're not alone. In this **c# OCR tutorial** we’ll show you exactly how to load an image for OCR, run the recognition engine, and then **write JSON to file** so you can feed the data into downstream systems. + +Imagine you have a folder of receipts, each named `receipt1.png`, `receipt2.png`, and you need a quick way to turn them into searchable JSON records. That's the problem we’ll solve, and by the end you’ll have a ready‑to‑run console app that does just that. No extra dependencies beyond Aspose.OCR, and no magic—just clear, reproducible steps. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Prerequisites + +- .NET 6 SDK or later (the code works on .NET Core as well). +- Visual Studio 2022 or any editor you prefer. +- Aspose.OCR NuGet package (`Install-Package Aspose.OCR`). +- An image file (PNG, JPG, BMP) you’d like to process – for demo we’ll use `invoice.png`. + +If you’re missing any of these, grab the SDK from Microsoft’s site and add the NuGet package via the Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Now that the groundwork is set, let’s dive into the actual implementation. + +## Step 1: c# OCR tutorial – Initialize the OCR Engine + +Before we can **load image for OCR**, we need an instance of the engine that will drive the recognition process. The `OcrEngine` class is lightweight, but it’s good practice to wrap it in a `using` block so resources are released promptly. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* If you plan to process many images in a batch, reuse the same `OcrEngine` instance instead of creating a new one each time. It reduces memory churn and speeds things up. + +## Step 2: Load image for OCR + +Now we actually **load image for OCR**. Aspose.OCR supports a variety of formats, so you can point it at a PNG, JPEG, or even a multi‑page TIFF. The `OcrImage.FromFile` method reads the file and prepares it for recognition. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Loading the image separately lets you inspect its dimensions, DPI, or even pre‑process it (e.g., binarization) before sending it to the engine. If the image is corrupted, `FromFile` will throw a clear exception, which you can catch and log. + +## Step 3: How to extract text – Run the recognition + +With the image in hand, we can finally **how to extract text** from it. The `Recognize` method returns an `OcrResult` object that contains not only the plain text but also positional data and confidence scores for each word. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Some PDFs contain invisible text layers. If you feed a PDF page rendered as an image, the engine may see nothing. In those cases, consider using Aspose.PDF to extract the hidden layer first, then fall back to OCR only when needed. + +## Step 4: OCR image to JSON – Convert the result + +The `OcrResult` class offers a convenient `ToJson()` helper that serializes the entire result set—including each word’s bounding box and confidence—into a JSON string. This is the cleanest way to achieve **OCR image to JSON** without writing your own serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +If you prefer a custom schema, you can iterate over `ocrResult.Words` and build your own object, but for most scenarios the built‑in JSON is sufficient and already well‑structured. + +## Step 5: Write JSON to file + +Now comes the final piece of the puzzle: persisting the JSON payload. The `File.WriteAllText` method ensures the file is created (or overwritten) atomically. Be sure the target directory exists, otherwise you’ll hit a `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* If you need UTF‑8 with BOM or a different encoding, use the overload that accepts an `Encoding` argument. + +## Step 6: Verify the output + +A quick `Console.WriteLine` tells us the process completed successfully. You can also open the JSON file in a viewer to confirm the structure. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +The JSON includes each word’s location, which is handy if you later want to highlight text in a UI. + +## Full Working Example + +Below is the complete, copy‑and‑paste‑ready program. Replace `YOUR_DIRECTORY` with the actual path where your image resides. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Run the program (`dotnet run` from the project folder) and you’ll find `invoice.json` alongside your original PNG. + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | Path typo or missing file | Use `Path.Combine` and check `File.Exists` before calling `FromFile`. | +| **Low confidence scores** | Poor image quality, low DPI | Pre‑process with `ocrImage.AdjustContrast` or upscale the image to 300 DPI. | +| **JSON file empty** | `ocrResult` returned null (engine failed) | Verify that the image format is supported and that the license (if any) is correctly applied. | +| **Performance bottleneck on large batches** | Re‑creating `OcrEngine` each iteration | Reuse a single `OcrEngine` instance across the batch, disposing only at the end. | + +## Next Steps + +Now that you’ve mastered the **c# OCR tutorial**, you might want to: + +- **Batch process** an entire folder and aggregate the JSON files into a single database. +- **Integrate** the output with Azure Cognitive Search for searchable PDFs. +- **Add language support** by setting `ocrEngine.Language = OcrLanguage.Spanish` (or any supported language). +- **Post‑process** the JSON to extract tables or key‑value pairs using regular expressions. + +Each of these extensions builds on the core concepts we covered: loading images for OCR, extracting text, converting to JSON, and writing that JSON to disk. + +--- + +### Conclusion + +In this **c# OCR tutorial** we walked through every step required to **load image for OCR**, **how to extract text**, transform the result into an **OCR image to JSON** payload, and finally **write JSON to file**. The complete code example is ready to drop into any .NET project, and the explanations give you the context you need to adapt the solution to real‑world scenarios. + +Give it a try with your own set of receipts or invoices—tweak the image preprocessing, experiment with different languages, and watch the JSON output grow. If you hit any snags, revisit the pitfalls table or drop a comment below. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/english/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..5fad1bf5 --- /dev/null +++ b/ocr/english/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: Learn how to OCR image in C# and convert JPG to ePub using Aspose OCR. + This step‑by‑step guide also shows how to extract text from image. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: en +og_description: How to OCR image in C#? Follow this guide to extract text from image + and convert JPG to ePub with Aspose OCR. +og_title: How to OCR Image in C# – Convert JPG to ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: How to OCR Image in C# – Convert JPG to ePub +url: /net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to OCR Image in C# – Convert JPG to ePub + +Ever wondered **how to OCR image** files directly from a C# console app? You're not the only one. Many developers hit a wall when they need to pull text out of a photograph and then package that text into a readable ePub book. + +In this tutorial we’ll walk through a complete, runnable example that **extracts text from image**, saves the result as an ePub, and shows you how to **convert JPG to ePub** without leaving your IDE. No fluff, just the code you can copy‑paste and run today. + +## What You’ll Learn + +- How to set up the Aspose OCR engine in a .NET project. +- The exact steps to **convert image to epub** using the `OcrSaveFormat.Epub` option. +- Tips for handling common pitfalls like unsupported image formats or missing fonts. +- A full C# program you can compile and execute right now. + +**Prerequisites**: .NET 6 SDK (or any recent .NET version), a valid Aspose.OCR NuGet package, and an image file (`input.jpg`) you want to process. If you’ve never used NuGet before, just open the Package Manager Console and run `Install-Package Aspose.OCR`. + +Ready? Let’s dive in. + +## Step 1 – How to OCR Image and Load the Source + +The first thing you need is an OCR engine instance and a source image. Aspose OCR makes this straightforward: you create an `OcrEngine`, then feed it an `OcrImage` loaded from disk. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Why this matters** – Initializing the engine only once keeps memory usage low, and loading the image early lets you verify the file path before the heavy OCR work begins. + +## Step 2 – Run OCR and Extract Text from Image + +Now that the image is in memory, ask the engine to recognize the characters. The `Recognize` method returns an `OcrResult` object that contains the plain text, confidence scores, and even layout information. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro tip** – If you only need the text and not the ePub, you can stop here. The `ocrResult.Text` property is a clean string you can pipe into any other system. + +## Step 3 – Save the Result as an ePub Book (Convert JPG to ePub) + +Aspose OCR can directly serialize the OCR result into several formats, including ePub. This step shows exactly how to **convert JPG to ePub** in a single line. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +When you run the program, you’ll see the extracted text printed to the console, and a new `book_page.epub` file appear next to your source image. Open it in any ePub reader (Calibre, Apple Books, etc.) and you’ll find the OCR text nicely formatted as a single-page book. + +### Expected Output + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +If the ePub opens correctly, congratulations—you’ve just completed a full **c# OCR example** that turns a JPEG into a portable ePub. + +## Step 4 – Common Issues When Converting Image to ePub + +Even with a solid library, you might bump into a few hurdles. Here’s a quick FAQ: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **Unsupported image format** | Aspose OCR expects raster formats (JPG, PNG, BMP). | Convert the image to JPG or PNG first, e.g., with `System.Drawing.Image`. | +| **Blank output** | Low image quality or heavy compression. | Increase DPI, use a clearer scan, or apply image preprocessing (`ocrEngine.Preprocess`). | +| **Missing fonts in ePub** | The default ePub writer uses system fonts that may not be embedded. | Set `ocrEngine.Config.FontsDirectory` to a folder with the required .ttf files. | +| **Large ePub file** | High‑resolution images are embedded as separate pages. | Use `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Addressing these early saves you from chasing bugs later. + +## Step 5 – Extending the Example (Beyond the Basics) + +Now that you have a working **convert image to epub** pipeline, you might wonder what else you can do. Here are a few ideas you can try tomorrow: + +1. **Batch processing** – Loop through a folder of JPGs, generate one ePub per image, or merge them into a multi‑chapter ePub. +2. **Language selection** – Set `ocrEngine.Language = Language.English;` or any supported language to improve accuracy. +3. **Layout preservation** – Use `OcrSaveFormat.Html` first, then wrap the HTML in an ePub for richer formatting. +4. **Cloud deployment** – Wrap the code in an Azure Function or AWS Lambda to offer OCR‑to‑ePub as a web service. + +Each of these extensions builds on the core **how to OCR image** logic we just covered. + +## Full Working Code (Copy‑Paste Ready) + +Below is the entire program in one block. Replace `YOUR_DIRECTORY` with the actual path to your image file. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Remember** – The `Aspose.OCR` NuGet package must be installed, and the target .NET runtime should be at least .NET 5 for best compatibility. + +## Conclusion + +We’ve just covered **how to OCR image** files in C# and turned those scans into clean ePub books—essentially a **convert JPG to ePub** workflow you can drop into any project. By following the steps above you’ll be able to **extract text from image**, handle common edge cases, and extend the solution to batch jobs or cloud services. + +If you’re curious about the next logical step, try swapping the ePub output for a PDF (`OcrSaveFormat.Pdf`) or feeding the OCR text into a translation API. The sky’s the limit once you’ve mastered the basics. + +Got questions about a particular image format, or want to see a multi‑page ePub example? Drop a comment, and I’ll be happy to help. Happy coding, and enjoy turning pictures into books! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/english/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..5c5a1e1d --- /dev/null +++ b/ocr/english/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-01-01 +description: recognize russian text instantly using Aspose OCR C#. Learn to recognize + chinese text, read pdf page count, and convert pdf page text in one tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: en +og_description: recognize russian text quickly using Aspose OCR C#. This tutorial + also covers how to recognize chinese text, read pdf page count, and convert pdf + page text. +og_title: recognize russian text with Aspose OCR C# – Complete Guide +tags: +- Aspose OCR +- C# +- PDF processing +title: recognize russian text with Aspose OCR C# – Full Multi‑Page PDF Guide +url: /net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# recognize russian text with Aspose OCR C# – Complete Multi‑Page PDF Tutorial + +Ever needed to **recognize russian text** in a PDF that mixes languages, and wondered how to do it without pulling out a separate tool for each page? You're not alone. In many real‑world projects you’ll get a single PDF that contains English, Russian, and even Chinese on different pages, and you still want a single, clean text output. + +In this guide we’ll show you exactly how to **recognize russian text** (and other languages) using **Aspose OCR C#**, while also demonstrating how to **read pdf page count**, **recognize chinese text**, and **convert pdf page text** into a handy console dump. No external services, no hidden steps—just pure C# code that you can copy‑paste and run. + +> **What you’ll walk away with** +> * A runnable C# console app that processes a multi‑page PDF. +> * Per‑page language selection (Russian, Chinese, English). +> * Techniques to query the PDF’s page count and extract each page’s text. +> * Tips, pitfalls, and extensions you can apply to your own projects. + +--- + +## Prerequisites + +- .NET 6.0 or later (the code also works on .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet package installed (`dotnet add package Aspose.OCR`). +- A PDF file that contains mixed languages; for the demo we’ll refer to `mixed_lang.pdf`. +- Basic familiarity with C# console applications. + +If you’re missing any of these, grab the latest Aspose OCR from NuGet and place your PDF somewhere reachable from the project folder. + +--- + +## Step 1 – Initialize the Aspose OCR Engine + +The very first thing you need is an instance of `OcrEngine`. This object holds all settings (like language) and performs the heavy lifting. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> The engine is reusable, so we don’t waste memory by creating a new instance for every page. Re‑using it also lets us change the language on the fly, which is essential for **recognize russian text** on one page and **recognize chinese text** on another. + +--- + +## Step 2 – Load the PDF and Find Out How Many Pages It Has + +Before we start recognizing, we need the PDF object and its page count. Aspose OCR treats each page as an `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** If the PDF is huge, you might want to read the count first and decide whether to process all pages or just a subset. + +--- + +## Step 3 – Map Each Page to Its Desired Language + +Aspose OCR supports many languages, but you have to tell it which one to use for each page. Below we create a `Dictionary` where the key is the zero‑based page index. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Why this is crucial:** +> Without this map, the OCR engine would try a single default language for every page, resulting in garbled output for Russian or Chinese text. This step directly enables **recognize russian text** and **recognize chinese text** correctly. + +--- + +## Step 4 – Loop Through All Pages, Set Language, and Recognize Text + +Now we iterate over each page, switch the language based on our map, and call `Recognize`. The result is stored in `OcrResult`, from which we extract the plain text. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Expected Console Output + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explanation of the flow:** +> * The loop respects the **read pdf page count** we printed earlier. +> * By swapping `ocrEngine.Settings.Language` each iteration, we guarantee accurate **recognize russian text** on page 2 and **recognize chinese text** on page 3. +> * The `Console.WriteLine` statements effectively **convert pdf page text** into a human‑readable string. + +--- + +## Step 5 – Run, Verify, and Tweak + +1. Build the project (`dotnet build`). +2. Run it (`dotnet run`). +3. Compare the console output with the original PDF. + +If you notice missing characters, consider: + +- **Increasing OCR accuracy** by setting `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Providing a custom language pack** if the built‑in Russian or Chinese dictionaries are outdated. +- **Adjusting DPI** when loading the PDF (`OcrImage.FromFile(path, 300)`), which can improve recognition on low‑resolution scans. + +--- + +## Bonus: Handling Edge Cases + +### What if a page’s language isn’t in the map? + +The code already falls back to English, but you can also add a fallback that logs a warning: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Can we process PDFs with more than three languages? + +Absolutely. Extend `languageMap` with additional indices and supported `OcrLanguage` values (e.g., `OcrLanguage.French`). The loop will handle any number of pages. + +### How to export the results to a file instead of the console? + +Replace the `Console.WriteLine` calls with `File.AppendAllText("output.txt", …)` or use a `StringBuilder` that you write out once after the loop. + +--- + +## Image Illustration + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*The image above demonstrates the console output when **recognize russian text** is performed on a mixed‑language PDF.* + +--- + +## Conclusion + +We’ve walked through a complete, end‑to‑end example that shows how to **recognize russian text** (and also **recognize chinese text**) from a multi‑page PDF using **Aspose OCR C#**. By reading the PDF’s page count, mapping each page to its proper language, and looping through the document, you can **convert pdf page text** into plain strings ready for storage, indexing, or further analysis. + +In short: + +- **Initialize** a single `OcrEngine`. +- **Load** the PDF and **read pdf page count**. +- **Map** pages to languages (Russian, Chinese, etc.). +- **Iterate**, set `ocrEngine.Settings.Language`, and **recognize** each page. +- **Output** or save the extracted text. + +Feel free to adapt this pattern to larger documents, add error handling, or plug the results into a search index. The core idea—per‑page language selection—remains the same, and it’s what makes reliable **recognize russian text** possible in mixed‑language PDFs. + +Got a different scenario, like scanning images instead of PDFs? The same engine works; just replace `OcrImage.FromFile` with `OcrImage.FromStream` or `FromBitmap`. Happy coding, and may your OCR be ever accurate! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/ocr-configuration/_index.md b/ocr/french/net/ocr-configuration/_index.md index 277556a4..58479588 100644 --- a/ocr/french/net/ocr-configuration/_index.md +++ b/ocr/french/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Libérez la puissance de la reconnaissance d’images OCR dans .NET avec Aspose. Débloquez de puissantes capacités OCR avec Aspose.OCR pour .NET. Extrayez le texte des images de manière transparente. ### [OCROOpération avec liste dans la reconnaissance d'images OCR](./ocr-operation-with-list/) Libérez le potentiel d’Aspose.OCR pour .NET. Effectuez sans effort la reconnaissance d’images OCR avec des listes. Boostez la productivité et l’extraction de données dans vos applications. +### [Comment appliquer une licence dans Aspose OCR – Guide pas à pas C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Apprenez à appliquer votre licence Aspose OCR dans une application C# étape par étape. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/french/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..12a8e1a6 --- /dev/null +++ b/ocr/french/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Comment appliquer la licence pour Aspose OCR en C#. Apprenez à lire le + fichier, définir la licence Aspose, utiliser MemoryStream et charger la licence + efficacement. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: fr +og_description: Comment appliquer la licence pour Aspose OCR en C#. Suivez ce guide + pour lire le fichier de licence, définir la licence Aspose, utiliser MemoryStream + et vérifier la configuration. +og_title: Comment appliquer une licence dans Aspose OCR – Tutoriel complet C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Comment appliquer la licence dans Aspose OCR – Guide C# étape par étape +url: /fr/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment appliquer une licence dans Aspose OCR – Guide complet C# + +Vous vous êtes déjà demandé **comment appliquer une licence** pour Aspose OCR sans courir après une documentation vague ? Vous n'êtes pas seul. La plupart des développeurs rencontrent le même problème : ils peuvent lire le fichier, mais ne savent pas comment le fournir correctement à la bibliothèque. Dans ce tutoriel, nous passerons en revue chaque détail — du chargement du fichier `.lic` sur le disque à l'appel de `SetLicense` avec un `MemoryStream`. À la fin, vous disposerez d’une solution fonctionnelle que vous pourrez intégrer à n’importe quel projet .NET. + +Nous aborderons également **comment lire un fichier** en toute sécurité, la bonne façon de **définir la licence Aspose**, et pourquoi l’utilisation d’un **MemoryStream** est l’approche la plus propre. Si vous êtes curieux de savoir **comment charger une licence** dans différents environnements, ces conseils sont également inclus. Aucun référentiel externe requis — juste du code pur, prêt à copier‑coller. + +## Prérequis + +- .NET 6.0 ou ultérieur (le code fonctionne aussi bien avec .NET Core qu’avec .NET Framework) +- Package NuGet Aspose.OCR installé (`Install-Package Aspose.OCR`) +- Un fichier `Aspose.OCR.lic` valide placé quelque part où votre application peut y accéder +- Une connaissance de base du C# et de Visual Studio (ou de tout IDE de votre choix) + +> **Astuce pro :** Conservez le fichier de licence en dehors du dossier de contrôle de source pour éviter les commits accidentels. + +## Étape 1 : Comment lire le fichier – Charger les octets de la licence + +La première chose dont nous avons besoin est le tableau d’octets brut du fichier de licence. Utiliser `File.ReadAllBytes` est à la fois simple et efficace, et il génère automatiquement une exception claire si le chemin est incorrect. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Pourquoi c’est important :** Lire le fichier directement en mémoire évite les fuites de descripteurs de fichiers et nous fournit un tableau d’octets propre à utiliser ultérieurement. Cela rend également la méthode réutilisable dans les applications console, les services web ou les Azure Functions. + +## Étape 2 : Comment utiliser MemoryStream – Préparer le flux de licence + +La surcharge `License.SetLicense` d’Aspose attend un `Stream`. Envelopper le tableau d’octets dans un `MemoryStream` est la façon idiomatique de satisfaire cette exigence sans toucher à nouveau au système de fichiers. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Point clé :** `MemoryStream` est léger et se libère rapidement. Il vous permet également de réutiliser le même tableau d’octets pour plusieurs bibliothèques si vous devez appliquer plus d’une licence de produit Aspose. + +## Étape 3 : Définir la licence Aspose – Le cœur du « comment appliquer une licence » + +Maintenant que nous disposons d’un `MemoryStream`, appliquer la licence se résume à une seule ligne. La classe `License` se trouve dans l’espace de noms `Aspose.OCR`, assurez‑vous donc d’avoir ajouté la directive `using` appropriée. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Si la licence est invalide ou expirée, `SetLicense` échouera silencieusement et la bibliothèque fonctionnera en mode d’essai. Pour être absolument certain, vous pouvez vérifier une fonctionnalité disponible uniquement dans la version sous licence (par ex., les paramètres de précision OCR) ou simplement vous fier au message de confirmation que nous afficherons plus tard. + +## Étape 4 : Comment charger la licence – Tout assembler + +Ci-dessous se trouve le programme console complet et exécutable qui montre **comment charger une licence** depuis le disque, utiliser un `MemoryStream` et vérifier que la licence a été appliquée avec succès. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Sortie attendue + +``` +License applied successfully. You can now perform OCR operations. +``` + +Si vous voyez le message, la bibliothèque est entièrement licenciée et prête pour des tâches OCR de niveau production. + +## Pièges courants et comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **FileNotFoundException** lors de la lecture de la licence | Le chemin est incorrect ou le fichier n’est pas déployé avec l’application | Utilisez un chemin absolu ou intégrez la licence comme ressource (voir « chargement alternatif » ci‑dessous) | +| **Licence non appliquée mais aucune erreur** | `SetLicense` revient silencieusement en mode d’essai si le flux est vide ou corrompu | Vérifiez que `licenseData.Length > 0` avant de créer le `MemoryStream` | +| **MemoryStream non libéré** | Oublier le `using` entraîne la persistance de ressources non gérées | Enveloppez toujours le flux dans un bloc `using` comme indiqué | + +### Alternative : Intégrer la licence comme ressource incorporée + +Si vous préférez ne pas distribuer un fichier `.lic` séparé, ajoutez‑le à votre projet, définissez **Build Action** sur **Embedded Resource**, et lisez‑le ainsi : + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Ensuite appelez `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` et poursuivez avec la même approche `MemoryStream`. + +## Conclusion + +Nous avons couvert **comment appliquer une licence** pour Aspose OCR du début à la fin : lecture du fichier, création d’un `MemoryStream`, appel de `SetLicense` et confirmation de l’activation. En suivant ces étapes, vous éliminez les approximations, évitez les erreurs courantes et garantissez que votre moteur OCR fonctionne en mode complet. + +Ensuite, vous pourriez explorer **comment lire un fichier** de façon asynchrone pour des services à haut débit, ou plonger dans les paramètres OCR avancés maintenant que la licence est correctement chargée. Dans tous les cas, le schéma reste le même — lire, diffuser, définir, vérifier. + +Des questions sur des cas particuliers, comme le chargement de la licence dans un environnement ASP.NET Core ou la gestion de plusieurs licences de produits Aspose ? Laissez un commentaire ci‑dessous, et bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/ocr-optimization/_index.md b/ocr/french/net/ocr-optimization/_index.md index 1b836390..5c0ee968 100644 --- a/ocr/french/net/ocr-optimization/_index.md +++ b/ocr/french/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ Explorez Aspose.OCR pour .NET. Améliorez la précision de l'OCR avec des filtre Améliorez la précision de l'OCR avec Aspose.OCR pour .NET. Corrigez l’orthographe, personnalisez les dictionnaires et obtenez une reconnaissance de texte sans erreur sans effort. ### [Enregistrer le résultat multipage en tant que document dans la reconnaissance d'image OCR](./save-multipage-result-as-document/) Libérez le potentiel d’Aspose.OCR pour .NET. Enregistrez sans effort les résultats OCR de plusieurs pages sous forme de documents grâce à ce guide complet étape par étape. +### [Prétraiter l'image OCR en C# – Améliorer la précision avec Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +### [Comment effectuer une OCR par lots en C# avec le moteur OCR d'Aspose](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Apprenez à traiter plusieurs images en une seule opération OCR en C# avec le moteur Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/french/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..b469c156 --- /dev/null +++ b/ocr/french/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-01-01 +description: Comment effectuer une reconnaissance OCR par lots avec le moteur OCR + Aspose en C#. Apprenez à reconnaître le texte à partir d’images et à extraire le + texte des fichiers TIFF avec l’accélération GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: fr +og_description: Comment réaliser une reconnaissance OCR par lots en C# avec le moteur + Aspose OCR. Ce guide vous montre comment reconnaître du texte à partir d'images + et extraire du texte de fichiers TIFF de manière efficace. +og_title: Comment réaliser une OCR par lots en C# – Guide complet d’Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Comment faire de l'OCR par lots en C# avec le moteur OCR d'Aspose +url: /fr/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment effectuer une OCR par lots en C# avec le moteur Aspose OCR + +Vous êtes-vous déjà demandé **comment faire de l'OCR par lots** lorsque des dizaines de documents numérisés sont stockés dans un dossier ? Vous n'êtes pas seul — de nombreux développeurs rencontrent ce problème lorsqu'ils passent de la reconnaissance d'une seule image à celle d'une collection entière. La bonne nouvelle, c’est qu’Aspose OCR rend cela très simple, que vous utilisiez un CPU ou que vous profitiez de l’accélération GPU. + +Dans ce tutoriel, nous allons parcourir un exemple complet et exécutable qui **reconnaît du texte à partir d’images** et même **extrait du texte de fichiers TIFF** en masse. Pas de raccourcis « voir la documentation », juste une solution autonome que vous pouvez copier‑coller et exécuter dès aujourd’hui. + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +* .NET 6.0 ou version ultérieure installé (le code cible .NET 6, mais .NET 5 fonctionne également). +* Le package NuGet Aspose.OCR pour .NET (les versions CPU et GPU sont disponibles ; installez celle qui correspond à votre matériel). +* Un dossier contenant quelques fichiers TIFF ou PNG d’exemple que vous souhaitez traiter. +* Visual Studio 2022 ou tout autre IDE de votre choix. + +> **Astuce :** Si vous prévoyez d’utiliser la version GPU, vérifiez que votre pilote graphique est à jour et que CUDA 11+ est installé. Le moteur reviendra automatiquement au CPU s’il ne trouve pas de GPU compatible. + +## Étape 1 – Configurer le projet et installer Aspose.OCR + +### H2: Créez une nouvelle application console et ajoutez Aspose.OCR + +Ouvrez un terminal (ou la console du Gestionnaire de packages dans Visual Studio) et exécutez : + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Si vous disposez d’une licence compatible GPU, ajoutez le package GPU à la place : + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +C’est tout — votre projet référence maintenant la bibliothèque OCR que nous utiliserons pour **l’OCR par lots**. + +## Étape 2 – Initialiser le moteur OCR (CPU ou GPU) + +### H2: Comment faire de l'OCR par lots – Initialisation du moteur + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Pourquoi c’est important :** En basculant `UseGpu`, vous laissez Aspose choisir le chemin le plus rapide. Si le GPU n’est pas disponible, le moteur bascule silencieusement vers le CPU, de sorte que votre tâche par lots ne plante jamais à cause d’un matériel manquant. + +## Étape 3 – Rassembler les fichiers à traiter + +### H2: Reconnaître du texte à partir d’images – Construction de la liste de fichiers + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Note sur les cas limites :** Si vous avez un mélange de formats, changez le motif de recherche en `"*.*"` et filtrez par extension à l’intérieur de la boucle. Cela garde le lot flexible. + +## Étape 4 – Traiter chaque image et afficher un aperçu + +### H2: Extraire du texte de TIFF – Boucle sur les fichiers + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Ce que vous verrez :** Pour chaque TIFF, la console affiche quelque chose comme : + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Cet aperçu confirme que le lot a réussi sans avoir à ouvrir chaque fichier manuellement. + +## Étape 5 – Enregistrer les résultats (Facultatif mais pratique) + +### H3: Persister la sortie OCR dans des fichiers texte + +Si vous avez besoin du texte complet pour un traitement en aval, ajoutez ceci à l’intérieur de la boucle `foreach` : + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Chaque TIFF obtient maintenant un fichier compagnon `.txt` contenant la sortie OCR complète — parfait pour l’indexation, la recherche ou l’alimentation d’un modèle de langage. + +## Étape 6 – Exécuter la démo et vérifier + +1. Compilez le projet : `dotnet build`. +2. Exécutez : `dotnet run --project GpuBatchDemo.csproj`. + +Vous devriez voir les lignes d’aperçu affichées dans la console, et (si vous avez ajouté l’étape facultative) une série de fichiers `.txt` à côté de vos images sources. + +### H3: Pièges courants & comment les résoudre + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Image trop sombre ou DPI faible | Pré‑traitez les images (augmentez le contraste, upscale) ou définissez `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Pilote obsolète | Mettez à jour le pilote GPU, ou définissez `UseGpu = false` pour forcer le CPU. | +| **Exception “File not found”** | Séparateur de chemin incorrect sous Linux/macOS | Utilisez `Path.Combine` ou des barres obliques (`/`). | + +## Étape 7 – Mise à l’échelle (au‑delà de quelques fichiers) + +Lorsque vous passez de quelques TIFF à des milliers, pensez à : + +* **Traitement parallèle :** Enveloppez le `foreach` dans `Parallel.ForEach` (assurez‑vous que l’instance du moteur est thread‑safe ; sinon créez‑en une par thread). +* **I/O par lots :** Lisez les images par lots pour éviter d’épuiser la RAM. +* **Journalisation :** Écrivez la progression dans un fichier log ; cela aide à reprendre après un plantage. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Rappel :** La mémoire GPU est partagée, donc lancer trop de jobs GPU parallèles peut en fait ralentir le processus. Testez d’abord avec quelques threads. + +## Exemple complet fonctionnel (prêt à copier‑coller) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Exécuter ce programme **reconnaîtra du texte à partir d’images**, **extraira du texte de TIFF**, et démontrera **comment faire de l’OCR par lots** de manière efficace. + +--- + +## Conclusion + +Vous disposez maintenant d’un exemple complet, de bout en bout, de **comment faire de l’OCR par lots** en C# avec le moteur OCR d’Aspose. Le tutoriel a couvert tout, depuis la configuration du projet, le basculement de l’accélération GPU, la construction de la liste de fichiers, le traitement de chaque image, jusqu’à la persistance des résultats. Que vous extrayiez du texte de fichiers TIFF ou de tout autre format d’image, le même schéma s’applique — il suffit de changer les extensions de fichiers. + +Prêt pour l’étape suivante ? Essayez d’intégrer la sortie OCR à un index de recherche, d’alimenter le texte dans un grand modèle de langage, ou expérimentez le traitement parallèle pour gagner des minutes sur des lots massifs. Le ciel est la limite, et vous avez les bases pour construire votre solution. + +Des questions ou envie de partager vos propres astuces d’OCR par lots ? Laissez un commentaire ci‑dessous—bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/french/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..f19a6ab6 --- /dev/null +++ b/ocr/french/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Prétraitez l'image OCR pour améliorer la précision. Apprenez à reconnaître + le texte d’une image, à améliorer la précision de l’OCR, à charger l’image OCR et + à afficher le texte OCR à l’aide d’Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: fr +og_description: Prétraiter l'OCR d'image pour améliorer la précision. Ce guide montre + comment reconnaître le texte d'une image, charger l'OCR d'image, appliquer des filtres + et afficher le texte OCR. +og_title: Prétraiter l'image OCR en C# – Améliorer la précision avec Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Prétraiter l'OCR d'image en C# – Augmenter la précision avec Aspose OCR +url: /fr/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Vous êtes-vous déjà demandé comment **prétraiter l’OCR d’image** afin que le moteur lise réellement ce qui se trouve sur la page ? Vous n’êtes pas seul — la plupart des développeurs se heurtent à un mur lorsqu’un scan bruyant et incliné refuse de coopérer. La bonne nouvelle, c’est que quelques étapes de prétraitement intelligentes peuvent transformer une image en zone de désastre en texte propre et lisible. + +Dans ce tutoriel, nous parcourrons un exemple complet, prêt à l’emploi, qui **reconnaît des fichiers image texte**, **améliore la précision de l’OCR**, et enfin **affiche le texte OCR** dans la console. À la fin, vous saurez comment **charger des actifs d’image OCR**, appliquer des filtres comme la correction d’inclinaison et le débruitage, et obtenir des résultats fiables — le tout avec Aspose.OCR pour .NET. + +## What You’ll Learn + +- Comment créer une instance `OcrEngine` et configurer les filtres de prétraitement. +- Pourquoi les filtres de correction d’inclinaison et de débruitage sont essentiels pour **improve OCR accuracy**. +- Le code exact pour **load image ocr** des fichiers et lancer la reconnaissance. +- Comment **display OCR text** de manière conviviale. +- Astuces, pièges et ajustements optionnels que vous pouvez appliquer dans des projets réels. + +### Prerequisites + +- .NET 6+ (ou .NET Framework 4.7+) installé sur votre machine. +- Une licence pour Aspose.OCR (l’essai gratuit suffit pour cette démo). +- Connaissances de base en C# — aucun tour avancé requis. + +Si l’un de ces points vous est inconnu, faites une pause et installez les éléments manquants ; le reste du guide part du principe qu’ils sont en place. + +--- + +## preprocess image ocr – Setting Up Filters + +La première chose à comprendre est **why preprocessing matters**. Les moteurs OCR excellent à lire du texte net et droit, mais les scans du monde réel souffrent souvent de rotation, de flou ou de bruit de fond. En fournissant une image nettoyée au moteur, vous augmentez considérablement les chances d’une transcription correcte. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Que se passe-t-il ici ?** +- **Étape 1** crée le moteur — le cœur de la bibliothèque Aspose OCR. +- **Étape 2** attache deux filtres. Le `SkewCorrectionFilter` fait pivoter l’image pour la rendre horizontale, tandis que le `DenoiseFilter` lisse le bruit au niveau des pixels. +- **Étape 3** est optionnelle mais pratique ; vous pouvez limiter l’angle maximal que le moteur tentera de corriger, évitant ainsi une sur‑rotation sur des pages déjà droites. +- **Étape 4** est l’endroit où vous **load image OCR** les données. Remplacez `YOUR_DIRECTORY/skewed_noisy.jpg` par le chemin de votre fichier de test. +- **Étape 5** exécute réellement l’OCR et produit un `OcrResult`. +- **Étape 6** **display OCR text** dans la console, vous donnant un retour immédiat. + +> **Pro tip** : Si vous remarquez que la sortie contient encore des caractères illisibles, essayez d’augmenter le `MaxAngle` ou d’ajouter un `ContrastFilter` avant l’étape de débruitage. + +--- + +## recognize text image – Loading Your Files Correctly + +Un obstacle fréquent est **load image ocr** avec le mauvais format ou DPI. Aspose.OCR prend en charge PNG, JPEG, TIFF, BMP, et même les images basées sur PDF. Cependant, le moteur fonctionne mieux avec 300 DPI ou plus pour les documents imprimés. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Si vous travaillez avec un TIFF multi‑pages, vous pouvez parcourir chaque trame : + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Pourquoi cela importe‑t‑il pour improve OCR accuracy ?** Une résolution plus élevée préserve la forme de chaque caractère, offrant au reconnaisseur davantage de points de données. Les images à DPI faible entraînent souvent des glyphes fusionnés ou cassés, que le moteur interprète mal. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +Les paramètres de filtre par défaut constituent un bon point de départ, mais vous pouvez en extraire davantage de performances. + +| Filter | Key Property | Typical Value | When to Adjust | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Images fortement inclinées (jusqu’à 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Scans très bruyants ; augmenter à `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Captures d’écran à faible contraste. | + +Exemple de personnalisation des deux : + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Cas limite** : Si votre image contient à la fois des notes manuscrites et du texte imprimé, vous pourriez ajouter un `BinarizationFilter` avant le débruitage pour séparer le premier plan de l’arrière‑plan. + +--- + +## display OCR text – Formatting the Output + +Une sortie console simple suffit pour les démos, mais le code de production nécessite souvent des chaînes nettoyées, des sauts de ligne, voire du JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Si vous avez besoin de JSON pour une réponse d’API : + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Vous avez maintenant **display OCR text** dans un format que les services en aval peuvent consommer. + +--- + +## Full Working Example – Put It All Together + +Voici le programme final, autonome, que vous pouvez copier‑coller dans un nouveau projet console. Il inclut des filtres optionnels, le chargement d’une image haute résolution, et une sortie propre. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Sortie console attendue (exemple) :** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Si vous exécutez le programme avec un fichier différent, le texte et le niveau de confiance changeront en conséquence. + +--- + +## Common Questions & Answers + +**Q : Et si mon image est déjà droite ?** +R : Le filtre d’inclinaison détectera un angle proche de zéro et deviendra effectivement un no‑op, vous pouvez donc le laisser activé en toute sécurité. + +**Q : Aspose.OCR prend‑il en charge des langues autres que l’anglais ?** +R : Oui—il suffit de définir `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (ou toute langue prise en charge) avant d’appeler `Recognize`. + +**Q : Comment gérer les PDF multi‑pages ?** +R : Convertissez chaque page en image (Aspose.PDF peut le faire) et alimentez‑les une à une dans la même instance `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/text-recognition/_index.md b/ocr/french/net/text-recognition/_index.md index 1b27348f..2edc87d9 100644 --- a/ocr/french/net/text-recognition/_index.md +++ b/ocr/french/net/text-recognition/_index.md @@ -55,9 +55,17 @@ Améliorez vos applications .NET avec Aspose.OCR pour une reconnaissance efficac Libérez le potentiel de l’OCR dans .NET avec Aspose.OCR. Extrayez le texte des PDF sans effort. Téléchargez-le maintenant pour une expérience d'intégration transparente. ### [Reconnaître la table dans la reconnaissance d'images OCR](./recognize-table/) Libérez le potentiel d'Aspose.OCR pour .NET avec notre guide complet sur la reconnaissance des tableaux dans la reconnaissance d'images OCR. +### [Tutoriel C# OCR : Extraire du texte d'une image avec Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Apprenez à extraire du texte d'images en utilisant Aspose OCR avec C# dans vos applications .NET. +### [Tutoriel C# OCR : Extraire du texte d'images et exporter au format JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Apprenez à extraire du texte d'images et à le sauvegarder au format JSON avec Aspose OCR en C#. +### [Comment faire de l'OCR d'une image en C# – Convertir JPG en ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +### [Reconnaître du texte russe avec Aspose OCR C# – Guide complet PDF multi‑pages](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Apprenez à extraire du texte russe à partir de PDF multi‑pages avec Aspose OCR en C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..dd90e411 --- /dev/null +++ b/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-01-01 +description: Tutoriel C# OCR montrant comment extraire du texte d’une image, effectuer + l’OCR sur des fichiers JPG à l’aide d’Aspose OCR. Apprenez à charger une image pour + l’OCR et obtenir des résultats précis. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: fr +og_description: Tutoriel C# OCR qui vous guide à travers l'extraction de texte à partir + d'une image, la réalisation d'OCR sur un JPG et le chargement d'images pour l'OCR + à l'aide d'Aspose. +og_title: c# tutoriel OCR – Extraire le texte d’une image avec Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'C# tutoriel OCR : Extraire du texte d’une image avec Aspose OCR' +url: /fr/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tutoriel c# OCR – Extraire du texte d'une image avec Aspose OCR + +Vous cherchez un **c# ocr tutorial** qui fonctionne réellement ? Dans ce guide, nous vous montrerons comment **extraire du texte d'une image** et **effectuer de l'OCR sur des fichiers JPG** à l'aide de la bibliothèque Aspose.OCR. Que vous construisiez un scanner de reçus, un archiviste de documents, ou que vous soyez simplement curieux de lire du texte à partir d'images, les étapes ci‑dessous vous feront passer de zéro à du code fonctionnel en quelques minutes. + +Nous couvrirons tout ce dont vous avez besoin : installer le package, charger une image pour l'OCR, configurer les ressources linguistiques, exécuter le moteur de reconnaissance et gérer les problèmes les plus courants. À la fin, vous disposerez d’une application console autonome qui affiche le texte reconnu dans la console — aucune service externe requis. + +## Ce dont vous avez besoin + +- .NET 6.0 ou ultérieur (le code fonctionne également avec .NET Framework 4.6+) +- Visual Studio 2022, VS Code, ou tout éditeur C# de votre choix +- Un fichier image contenant du texte russe (cyrillique), par ex., `receipt_ru.jpg` +- Connexion Internet pour la première exécution (Aspose téléchargera automatiquement les ressources linguistiques) + +Si vous avez déjà tout cela, super — plongeons‑nous dedans. + +## Étape 1 : Installer Aspose.OCR et créer un nouveau projet + +Tout d’abord, ajoutez le package NuGet Aspose.OCR à votre projet. Ouvrez un terminal dans le dossier de votre solution et exécutez : + +```bash +dotnet add package Aspose.OCR +``` + +**Astuce :** Utilisez le drapeau `--version` pour verrouiller la dernière version stable, par ex., `Aspose.OCR 23.9.0`. + +Ensuite, créez un projet console simple (ignorez cette étape si vous en avez déjà un) : + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Vous avez maintenant une base vierge où vous pourrez coller le code complet plus tard. + +## Étape 2 : Charger l'image pour l'OCR + +Charger l'image est la première étape fonctionnelle dans tout **c# ocr tutorial**. Aspose.OCR accepte un chemin de fichier, un flux, ou même un `Bitmap`. Pour notre exemple, nous resterons simples et chargerons depuis le disque : + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +**Pourquoi c’est important :** En chargeant explicitement l'image, vous fournissez au moteur une cible claire, ce qui améliore la précision — surtout lorsqu’il s’agit de PDF multi‑pages ou d’entrées à formats mixtes. + +## Étape 3 : Configurer la langue et le téléchargement automatique des ressources + +Aspose.OCR est fourni avec des packs de langues qui peuvent être téléchargés à la demande. Activer le téléchargement automatique garantit que le moteur récupère les données de langue russe lors de la première exécution du code. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +Explication : +- `AutoDownloadResources = true` supprime l’étape manuelle de récupération des fichiers `.dat`. +- Définir `Language` indique au moteur quel jeu de caractères attendre, augmentant considérablement la vitesse et la précision de la reconnaissance. + +## Étape 4 : Exécuter l'OCR et récupérer le texte reconnu + +C’est maintenant le moment du travail intensif. La méthode `Recognize` traite l'image et renvoie un objet `OcrResult` contenant la chaîne extraite. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Lorsque vous exécutez le programme, vous devriez voir quelque chose comme : + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +**À quoi s’attendre :** Le résultat exact dépend de la qualité de l'image source, mais le moteur basé sur les réseaux neuronaux d’Aspose gère généralement les reçus propres et les formulaires imprimés avec une grande fidélité. + +## Exemple complet fonctionnel + +Voici le **code complet et exécutable** qui combine toutes les étapes. Copiez‑collez‑le dans `Program.cs`, remplacez `YOUR_DIRECTORY` par le chemin réel du dossier, puis lancez `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Astuce :** Si vous devez **extraire du texte d'une image** d'autres formats que JPG (PNG, BMP, TIFF), il suffit de changer l’extension du fichier — Aspose les gère tous. + +## Étape 5 : Pièges courants et astuces pro + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **Caractères parasites** | Image basse résolution ou compression forte | Utilisez une source de meilleure qualité, ou pré‑traitez avec `Bitmap` (par ex., augmenter le contraste) | +| **Langue non reconnue** | Pack de langue non téléchargé | Assurez‑vous que `AutoDownloadResources` est `true` et que la machine a accès à Internet lors de la première exécution | +| **`ocrResult.Text` nul** | Chemin d'image incorrect ou fichier manquant | Vérifiez le chemin, utilisez `File.Exists` avant le chargement | +| **Lenteur de performance** | Grand lot d'images traité séquentiellement | Réutilisez une seule instance de `OcrEngine` pour plusieurs appels | + +### Bonus : Lire plusieurs fichiers dans une boucle + +Si vous devez **effectuer de l'OCR sur des fichiers JPG** dans un dossier, encapsulez la logique dans un `foreach` : + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Ce modèle s’adapte bien aux pipelines de traitement de reçus. + +## Conclusion + +Vous venez de terminer un **c# ocr tutorial** qui montre comment **extraire du texte d'une image**, **effectuer de l'OCR sur des JPG**, et **charger une image pour l'OCR** en utilisant Aspose.OCR. Le programme d’exemple démontre le flux complet — de l’installation du package NuGet à l’affichage du texte cyrillique reconnu — afin que vous puissiez le copier dans n’importe quel projet .NET immédiatement. + +Prêt pour l’étape suivante ? Essayez de remplacer `OcrLanguage.Russian` par `OcrLanguage.English` pour reconnaître des reçus en anglais, ou expérimentez les options de `OcrEngine.Settings` (par ex., `PageSegmentationMode`, `ImagePreprocessing`) pour affiner la précision. Vous pouvez également intégrer la sortie dans une base de données, générer des PDF, ou la transmettre à une API de traduction. + +Si vous rencontrez des problèmes, consultez la documentation d’Aspose.OCR ou laissez un commentaire ci‑dessous. Bon codage, et que vos résultats d’OCR soient toujours d’une clarté cristalline ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..84bb8427 --- /dev/null +++ b/ocr/french/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-01-01 +description: Tutoriel C# OCR montrant comment extraire du texte, charger une image + pour l'OCR et écrire du JSON dans un fichier en utilisant Aspose.OCR – guide étape + par étape. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: fr +og_description: Tutoriel C# OCR qui vous guide pour extraire du texte d’images, charger + une image pour l’OCR et écrire du JSON dans un fichier en utilisant Aspose.OCR. +og_title: Tutoriel OCR C# – Extraire le texte et exporter en JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Tutoriel OCR en C# – Extraire du texte d'images et exporter en JSON +url: /fr/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tutoriel c# OCR – Extraire du texte d'images et exporter en JSON + +Vous vous êtes déjà demandé comment extraire du texte d'une facture numérisée sans passer des heures à écrire des analyseurs personnalisés ? Vous n'êtes pas seul. Dans ce **c# OCR tutorial** nous vous montrerons exactement comment charger une image pour l'OCR, exécuter le moteur de reconnaissance, puis **écrire le JSON dans un fichier** afin que vous puissiez alimenter les systèmes en aval. + +Imaginez que vous avez un dossier de reçus, chacun nommé `receipt1.png`, `receipt2.png`, et que vous avez besoin d'une méthode rapide pour les transformer en enregistrements JSON interrogeables. C'est le problème que nous allons résoudre, et à la fin vous disposerez d'une application console prête à l'emploi qui fait exactement cela. Aucune dépendance supplémentaire au-delà d'Aspose.OCR, et aucune magie — juste des étapes claires et reproductibles. + +> **Ce que vous apprendrez** +> - Comment **charger une image pour l'OCR** en utilisant Aspose.OCR. +> - La meilleure façon d'**extraire du texte** et d'obtenir les scores de confiance. +> - Convertir le résultat OCR en une charge utile **OCR image to JSON** bien structurée. +> - **Écrire le JSON dans un fichier** en toute sécurité et vérifier la sortie. + +## Prérequis + +- .NET 6 SDK ou version ultérieure (le code fonctionne également sur .NET Core). +- Visual Studio 2022 ou tout éditeur de votre choix. +- Package NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Un fichier image (PNG, JPG, BMP) que vous souhaitez traiter – pour la démo nous utiliserons `invoice.png`. + +Si vous n'avez pas l'un d'eux, téléchargez le SDK depuis le site de Microsoft et ajoutez le package NuGet via la console du gestionnaire de packages : + +```powershell +Install-Package Aspose.OCR +``` + +Maintenant que les bases sont posées, plongeons dans l'implémentation réelle. + +## Étape 1 : c# OCR tutorial – Initialiser le moteur OCR + +Avant de pouvoir **charger une image pour l'OCR**, nous avons besoin d'une instance du moteur qui pilotera le processus de reconnaissance. La classe `OcrEngine` est légère, mais il est recommandé de l'encapsuler dans un bloc `using` afin que les ressources soient libérées rapidement. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Astuce :* Si vous prévoyez de traiter de nombreuses images en lot, réutilisez la même instance `OcrEngine` au lieu d'en créer une nouvelle à chaque fois. Cela réduit la consommation de mémoire et accélère le traitement. + +## Étape 2 : Charger une image pour l'OCR + +Nous allons maintenant réellement **charger une image pour l'OCR**. Aspose.OCR prend en charge une variété de formats, vous pouvez donc le pointer vers un PNG, JPEG ou même un TIFF multi‑pages. La méthode `OcrImage.FromFile` lit le fichier et le prépare pour la reconnaissance. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Pourquoi c'est important :** Charger l'image séparément vous permet d'inspecter ses dimensions, DPI, ou même de la pré‑traiter (par ex., binarisation) avant de l'envoyer au moteur. Si l'image est corrompue, `FromFile` lèvera une exception claire, que vous pouvez attraper et consigner. + +## Étape 3 : Comment extraire du texte – Exécuter la reconnaissance + +Avec l'image en main, nous pouvons enfin **extraire du texte**. La méthode `Recognize` renvoie un objet `OcrResult` qui contient non seulement le texte brut mais aussi les données de position et les scores de confiance pour chaque mot. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Cas particulier :* Certains PDF contiennent des calques de texte invisibles. Si vous alimentez une page PDF rendue en image, le moteur peut ne rien voir. Dans ces cas, envisagez d'utiliser Aspose.PDF pour extraire le calque caché d'abord, puis de recourir à l'OCR uniquement si nécessaire. + +## Étape 4 : OCR image to JSON – Convertir le résultat + +La classe `OcrResult` propose une fonction d'aide pratique `ToJson()` qui sérialise l'ensemble du résultat — y compris la boîte englobante et la confiance de chaque mot — en une chaîne JSON. C'est la façon la plus propre d'obtenir **OCR image to JSON** sans écrire votre propre sérialiseur. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Si vous préférez un schéma personnalisé, vous pouvez parcourir `ocrResult.Words` et construire votre propre objet, mais pour la plupart des scénarios le JSON intégré est suffisant et déjà bien structuré. + +## Étape 5 : Écrire le JSON dans un fichier + +Voici la dernière pièce du puzzle : persister la charge utile JSON. La méthode `File.WriteAllText` garantit que le fichier est créé (ou écrasé) de manière atomique. Assurez‑vous que le répertoire cible existe, sinon vous rencontrerez une `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Conseil :* Si vous avez besoin de UTF‑8 avec BOM ou d'un autre encodage, utilisez la surcharge qui accepte un argument `Encoding`. + +## Étape 6 : Vérifier la sortie + +Un simple `Console.WriteLine` nous indique que le processus s'est terminé avec succès. Vous pouvez également ouvrir le fichier JSON dans un visualiseur pour confirmer la structure. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Extrait JSON attendu + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +Le JSON inclut la position de chaque mot, ce qui est pratique si vous souhaitez plus tard mettre en surbrillance le texte dans une interface. + +## Exemple complet fonctionnel + +Ci-dessous le programme complet, prêt à copier‑coller. Remplacez `YOUR_DIRECTORY` par le chemin réel où se trouve votre image. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Exécutez le programme (`dotnet run` depuis le dossier du projet) et vous trouverez `invoice.json` à côté de votre PNG original. + +## Pièges courants et comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **FileNotFoundException** lors du chargement de l'image | Erreur de frappe dans le chemin ou fichier manquant | Utilisez `Path.Combine` et vérifiez `File.Exists` avant d'appeler `FromFile`. | +| **Scores de confiance faibles** | Qualité d'image médiocre, DPI faible | Pré‑traitez avec `ocrImage.AdjustContrast` ou augmentez la résolution de l'image à 300 DPI. | +| **Fichier JSON vide** | `ocrResult` a renvoyé null (échec du moteur) | Vérifiez que le format de l'image est supporté et que la licence (le cas échéant) est correctement appliquée. | +| **Goulot d'étranglement de performance sur de gros lots** | Re‑création de `OcrEngine` à chaque itération | Réutilisez une seule instance `OcrEngine` pendant le lot, en la libérant uniquement à la fin. | + +## Prochaines étapes + +Maintenant que vous avez maîtrisé le **c# OCR tutorial**, vous pourriez vouloir : + +- **Batch process** un dossier complet et agréger les fichiers JSON dans une base de données unique. +- **Integrate** la sortie avec Azure Cognitive Search pour des PDF interrogeables. +- **Add language support** en définissant `ocrEngine.Language = OcrLanguage.Spanish` (ou toute langue supportée). +- **Post‑process** le JSON pour extraire des tableaux ou des paires clé‑valeur à l'aide d'expressions régulières. + +Chacune de ces extensions s'appuie sur les concepts de base que nous avons couverts : charger des images pour l'OCR, extraire du texte, convertir en JSON et écrire ce JSON sur le disque. + +### Conclusion + +Dans ce **c# OCR tutorial** nous avons parcouru chaque étape nécessaire pour **charger une image pour l'OCR**, **extraire du texte**, transformer le résultat en une charge utile **OCR image to JSON**, et enfin **écrire le JSON dans un fichier**. L'exemple de code complet est prêt à être intégré dans n'importe quel projet .NET, et les explications vous donnent le contexte nécessaire pour adapter la solution à des scénarios réels. + +Essayez-le avec votre propre jeu de reçus ou factures — ajustez le pré‑traitement des images, expérimentez avec différentes langues, et observez la croissance du JSON produit. Si vous rencontrez des problèmes, consultez à nouveau le tableau des pièges ou laissez un commentaire ci‑dessous. Bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/french/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..2f7d7d4a --- /dev/null +++ b/ocr/french/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Apprenez à effectuer la reconnaissance optique de caractères (OCR) d’une + image en C# et à convertir un JPG en ePub avec Aspose OCR. Ce guide étape par étape + montre également comment extraire le texte d’une image. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: fr +og_description: Comment faire de l'OCR d'une image en C# ? Suivez ce guide pour extraire + le texte d’une image et convertir un JPG en ePub avec Aspose OCR. +og_title: Comment faire de l'OCR d'une image en C# – Convertir un JPG en ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Comment faire de l'OCR d'une image en C# – Convertir JPG en ePub +url: /fr/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment faire de l'OCR d'image en C# – Convertir JPG en ePub + +Vous vous êtes déjà demandé **comment faire de l'OCR d'image** directement depuis une application console C# ? Vous n'êtes pas seul. De nombreux développeurs se heurtent à un mur lorsqu'ils doivent extraire du texte d'une photographie puis le transformer en un livre ePub lisible. + +Dans ce tutoriel, nous parcourrons un exemple complet et exécutable qui **extrait le texte d'une image**, enregistre le résultat sous forme d'ePub, et vous montre comment **convertir JPG en ePub** sans quitter votre IDE. Pas de blabla, juste le code que vous pouvez copier‑coller et exécuter dès aujourd'hui. + +## Ce que vous allez apprendre + +- Comment configurer le moteur Aspose OCR dans un projet .NET. +- Les étapes exactes pour **convertir image en epub** en utilisant l'option `OcrSaveFormat.Epub`. +- Des astuces pour gérer les pièges courants comme les formats d'image non pris en charge ou les polices manquantes. +- Un programme C# complet que vous pouvez compiler et exécuter immédiatement. + +**Prérequis** : .NET 6 SDK (ou toute version .NET récente), un package NuGet valide Aspose.OCR, et un fichier image (`input.jpg`) que vous souhaitez traiter. Si vous n’avez jamais utilisé NuGet, ouvrez simplement la console du gestionnaire de packages et exécutez `Install-Package Aspose.OCR`. + +Prêt ? C’est parti. + +## Étape 1 – Comment faire de l'OCR d'image et charger la source + +La première chose dont vous avez besoin est une instance du moteur OCR et une image source. Aspose OCR rend cela simple : vous créez un `OcrEngine`, puis vous lui fournissez un `OcrImage` chargé depuis le disque. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Pourquoi c’est important** – Initialiser le moteur une seule fois maintient une faible consommation de mémoire, et charger l'image dès le départ vous permet de vérifier le chemin du fichier avant que le travail lourd d'OCR ne commence. + +## Étape 2 – Exécuter l'OCR et extraire le texte de l'image + +Maintenant que l'image est en mémoire, demandez au moteur de reconnaître les caractères. La méthode `Recognize` renvoie un objet `OcrResult` qui contient le texte brut, les scores de confiance, et même des informations de mise en page. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Astuce pro** – Si vous n’avez besoin que du texte et pas de l’ePub, vous pouvez vous arrêter ici. La propriété `ocrResult.Text` est une chaîne propre que vous pouvez acheminer vers n’importe quel autre système. + +## Étape 3 – Enregistrer le résultat sous forme de livre ePub (Convertir JPG en ePub) + +Aspose OCR peut directement sérialiser le résultat OCR dans plusieurs formats, dont ePub. Cette étape montre exactement comment **convertir JPG en ePub** en une seule ligne. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Lorsque vous exécutez le programme, le texte extrait s’affiche dans la console, et un nouveau fichier `book_page.epub` apparaît à côté de votre image source. Ouvrez‑le avec n’importe quel lecteur ePub (Calibre, Apple Books, etc.) et vous verrez le texte OCR joliment formaté comme un livre d’une seule page. + +### Résultat attendu + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Si l’ePub s’ouvre correctement, félicitations — vous venez de terminer un **exemple OCR C#** complet qui transforme un JPEG en un ePub portable. + +## Étape 4 – Problèmes courants lors de la conversion d'image en ePub + +Même avec une bibliothèque solide, vous pouvez rencontrer quelques obstacles. Voici une FAQ rapide : + +| Problème | Pourquoi cela se produit | Comment résoudre | +|----------|---------------------------|-------------------| +| **Format d'image non pris en charge** | Aspose OCR attend des formats raster (JPG, PNG, BMP). | Convertissez l'image en JPG ou PNG d'abord, par ex. avec `System.Drawing.Image`. | +| **Sortie vide** | Qualité d'image faible ou compression élevée. | Augmentez le DPI, utilisez un scan plus net, ou appliquez un pré‑traitement (`ocrEngine.Preprocess`). | +| **Polices manquantes dans l’ePub** | L’écrivain ePub par défaut utilise les polices système qui peuvent ne pas être incorporées. | Définissez `ocrEngine.Config.FontsDirectory` vers un dossier contenant les fichiers .ttf requis. | +| **Fichier ePub volumineux** | Les images haute résolution sont incorporées comme pages séparées. | Utilisez `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Résoudre ces points dès le départ vous évite de courir après des bugs plus tard. + +## Étape 5 – Étendre l'exemple (au‑delà des bases) + +Maintenant que vous avez un pipeline **convertir image en epub** fonctionnel, vous vous demandez peut‑être ce que vous pouvez faire d’autre. Voici quelques idées à essayer demain : + +1. **Traitement par lots** – Parcourez un dossier de JPG, générez un ePub par image, ou fusionnez‑les en un ePub multi‑chapitres. +2. **Sélection de langue** – Définissez `ocrEngine.Language = Language.English;` ou toute langue prise en charge pour améliorer la précision. +3. **Préservation de la mise en page** – Utilisez d’abord `OcrSaveFormat.Html`, puis encapsulez le HTML dans un ePub pour un formatage plus riche. +4. **Déploiement cloud** – Enveloppez le code dans une Azure Function ou AWS Lambda pour offrir un service OCR‑vers‑ePub via le web. + +Chacune de ces extensions s’appuie sur la logique de base **comment faire de l'OCR d'image** que nous venons de couvrir. + +## Code complet fonctionnel (prêt à copier‑coller) + +Voici le programme entier en un seul bloc. Remplacez `YOUR_DIRECTORY` par le chemin réel de votre fichier image. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Rappel** – Le package NuGet `Aspose.OCR` doit être installé, et le runtime .NET cible doit être au moins .NET 5 pour une compatibilité optimale. + +## Conclusion + +Nous venons de couvrir **comment faire de l'OCR d'image** en C# et de transformer ces numérisations en livres ePub propres — essentiellement un workflow **convertir JPG en ePub** que vous pouvez intégrer à n’importe quel projet. En suivant les étapes ci‑dessus, vous pourrez **extraire le texte d'une image**, gérer les cas limites courants, et étendre la solution aux traitements par lots ou aux services cloud. + +Si vous êtes curieux de la prochaine étape logique, essayez de remplacer la sortie ePub par un PDF (`OcrSaveFormat.Pdf`) ou d’alimenter le texte OCR dans une API de traduction. Le ciel est la limite une fois que vous maîtrisez les bases. + +Des questions sur un format d'image particulier, ou envie de voir un exemple d’ePub multi‑pages ? Laissez un commentaire, et je me ferai un plaisir d’aider. Bon codage, et profitez de la transformation de vos images en livres ! + +![exemple de OCR d'image](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/french/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..70cee6a9 --- /dev/null +++ b/ocr/french/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-01-01 +description: Reconnaître le texte russe instantanément avec Aspose OCR C#. Apprenez + à reconnaître le texte chinois, lire le nombre de pages PDF et convertir le texte + des pages PDF en un seul tutoriel. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: fr +og_description: Reconnaître rapidement le texte russe avec Aspose OCR C#. Ce tutoriel + couvre également comment reconnaître le texte chinois, lire le nombre de pages PDF + et convertir le texte des pages PDF. +og_title: Reconnaître le texte russe avec Aspose OCR C# – Guide complet +tags: +- Aspose OCR +- C# +- PDF processing +title: Reconnaître le texte russe avec Aspose OCR C# – Guide complet PDF multi‑pages +url: /fr/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconnaître le texte russe avec Aspose OCR C# – Tutoriel complet PDF multi‑pages + +Vous avez déjà eu besoin de **reconnaître le texte russe** dans un PDF qui mélange des langues, et vous vous êtes demandé comment le faire sans sortir un outil séparé pour chaque page ? Vous n'êtes pas seul. Dans de nombreux projets réels, vous recevrez un seul PDF contenant de l'anglais, du russe et même du chinois sur différentes pages, et vous souhaitez tout de même obtenir une sortie texte unique et propre. + +Dans ce guide, nous vous montrerons exactement comment **reconnaître le texte russe** (et d'autres langues) en utilisant **Aspose OCR C#**, tout en démontrant comment **lire le nombre de pages du PDF**, **reconnaître le texte chinois**, et **convertir le texte d’une page PDF** en un dump pratique de la console. Aucun service externe, aucune étape cachée—juste du code C# pur que vous pouvez copier‑coller et exécuter. + +> **Ce que vous en retirerez** +> * Une application console C# exécutable qui traite un PDF multi‑pages. +> * Sélection de la langue par page (russe, chinois, anglais). +> * Techniques pour interroger le nombre de pages du PDF et extraire le texte de chaque page. +> * Astuces, pièges et extensions que vous pouvez appliquer à vos propres projets. + +--- + +## Prérequis + +- .NET 6.0 ou ultérieur (le code fonctionne également sur .NET Framework 4.7+). +- Package NuGet **Aspose.OCR for .NET** installé (`dotnet add package Aspose.OCR`). +- Un fichier PDF contenant des langues mixtes ; pour la démonstration nous ferons référence à `mixed_lang.pdf`. +- Familiarité de base avec les applications console C#. + +Si l'un de ces éléments vous manque, récupérez la dernière version d'Aspose OCR depuis NuGet et placez votre PDF à un endroit accessible depuis le dossier du projet. + +## Étape 1 – Initialiser le moteur Aspose OCR + +La toute première chose dont vous avez besoin est une instance de `OcrEngine`. Cet objet contient tous les paramètres (comme la langue) et effectue le travail lourd. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Pourquoi c’est important :** +> Le moteur est réutilisable, ainsi nous ne gaspillons pas de mémoire en créant une nouvelle instance pour chaque page. Le réutiliser nous permet également de changer la langue à la volée, ce qui est essentiel pour **reconnaître le texte russe** sur une page et **reconnaître le texte chinois** sur une autre. + +--- + +## Étape 2 – Charger le PDF et déterminer le nombre de pages qu’il contient + +Avant de commencer la reconnaissance, nous avons besoin de l'objet PDF et de son nombre de pages. Aspose OCR traite chaque page comme un `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Conseil :** Si le PDF est volumineux, vous pourriez vouloir lire le nombre de pages d'abord et décider de traiter toutes les pages ou seulement un sous‑ensemble. + +--- + +## Étape 3 – Associer chaque page à la langue souhaitée + +Aspose OCR prend en charge de nombreuses langues, mais vous devez lui indiquer laquelle utiliser pour chaque page. Ci-dessous nous créons un `Dictionary` où la clé est l’indice de page basé sur zéro. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Pourquoi c’est crucial :** +> Sans cette correspondance, le moteur OCR essaierait une langue par défaut unique pour chaque page, ce qui entraînerait une sortie illisible pour le texte russe ou chinois. Cette étape permet directement de **reconnaître le texte russe** et **reconnaître le texte chinois** correctement. + +--- + +## Étape 4 – Parcourir toutes les pages, définir la langue et reconnaître le texte + +Nous parcourons maintenant chaque page, changeons la langue en fonction de notre correspondance, et appelons `Recognize`. Le résultat est stocké dans `OcrResult`, dont nous extrayons le texte brut. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Sortie console attendue + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explication du flux :** +> * La boucle respecte le **nombre de pages du PDF lu** que nous avons affiché précédemment. +> * En échangeant `ocrEngine.Settings.Language` à chaque itération, nous garantissons une reconnaissance précise du **texte russe** à la page 2 et du **texte chinois** à la page 3. +> * Les instructions `Console.WriteLine` convertissent efficacement le **texte d’une page PDF** en une chaîne lisible par l’homme. + +--- + +## Étape 5 – Exécuter, vérifier et ajuster + +1. Compilez le projet (`dotnet build`). +2. Exécutez‑le (`dotnet run`). +3. Comparez la sortie console avec le PDF original. + +Si vous remarquez des caractères manquants, envisagez : + +- **Augmenter la précision de l’OCR** en définissant `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Fournir un pack de langue personnalisé** si les dictionnaires intégrés pour le russe ou le chinois sont obsolètes. +- **Ajuster le DPI** lors du chargement du PDF (`OcrImage.FromFile(path, 300)`), ce qui peut améliorer la reconnaissance sur des scans à basse résolution. + +--- + +## Bonus : Gestion des cas limites + +### Et si la langue d’une page n’est pas dans la correspondance ? + +Le code déjà revient à l'anglais, mais vous pouvez aussi ajouter un repli qui consigne un avertissement : + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Peut‑on traiter des PDF avec plus de trois langues ? + +Absolument. Étendez `languageMap` avec des indices supplémentaires et des valeurs `OcrLanguage` prises en charge (par ex., `OcrLanguage.French`). La boucle gérera n’importe quel nombre de pages. + +### Comment exporter les résultats vers un fichier au lieu de la console ? + +Remplacez les appels `Console.WriteLine` par `File.AppendAllText("output.txt", …)` ou utilisez un `StringBuilder` que vous écrivez une fois après la boucle. + +--- + +## Illustration d’image + +![exemple de reconnaissance de texte russe](/images/recognize-russian-text.png "Capture d’écran montrant la sortie OCR pour le texte russe") + +*L’image ci‑dessus montre la sortie console lorsque **reconnaître le texte russe** est effectué sur un PDF multilingue.* + +--- + +## Conclusion + +Nous avons parcouru un exemple complet, de bout en bout, qui montre comment **reconnaître le texte russe** (et également **reconnaître le texte chinois**) à partir d’un PDF multi‑pages en utilisant **Aspose OCR C#**. En lisant le nombre de pages du PDF, en associant chaque page à la langue appropriée, et en parcourant le document, vous pouvez **convertir le texte d’une page PDF** en chaînes simples prêtes à être stockées, indexées ou analysées davantage. + +En bref : + +- **Initialiser** un seul `OcrEngine`. +- **Charger** le PDF et **lire le nombre de pages du PDF**. +- **Associer** les pages aux langues (russe, chinois, etc.). +- **Itérer**, définir `ocrEngine.Settings.Language`, et **reconnaître** chaque page. +- **Afficher** ou enregistrer le texte extrait. + +N’hésitez pas à adapter ce modèle à des documents plus volumineux, ajouter une gestion des erreurs, ou brancher les résultats dans un index de recherche. L’idée principale—la sélection de la langue par page—reste la même, et c’est ce qui rend possible une **reconnaissance fiable du texte russe** dans des PDF multilingues. + +Vous avez un scénario différent, comme scanner des images au lieu de PDF ? Le même moteur fonctionne ; il suffit de remplacer `OcrImage.FromFile` par `OcrImage.FromStream` ou `FromBitmap`. Bon codage, et que votre OCR soit toujours précis ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/ocr-configuration/_index.md b/ocr/german/net/ocr-configuration/_index.md index cd1f09d6..cb234d75 100644 --- a/ocr/german/net/ocr-configuration/_index.md +++ b/ocr/german/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ Nutzen Sie mit Aspose.OCR die Leistungsfähigkeit der OCR-Bilderkennung in .NET. Nutzen Sie leistungsstarke OCR-Funktionen mit Aspose.OCR für .NET. Extrahieren Sie nahtlos Text aus Bildern. ### [OCROperation mit Liste in der OCR-Bilderkennung](./ocr-operation-with-list/) Nutzen Sie das Potenzial von Aspose.OCR für .NET. Führen Sie mühelos eine OCR-Bilderkennung mit Listen durch. Steigern Sie die Produktivität und Datenextraktion in Ihren Anwendungen. +### [So wenden Sie die Lizenz in Aspose OCR an – Schritt‑für‑Schritt C#‑Leitfaden](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Erfahren Sie, wie Sie die Lizenz in Aspose OCR für .NET aktivieren und Ihre Anwendung freischalten. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/german/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..de62dcd9 --- /dev/null +++ b/ocr/german/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Wie man die Lizenz für Aspose OCR in C# anwendet. Erfahren Sie, wie Sie + die Datei lesen, die Aspose‑Lizenz setzen, MemoryStream verwenden und die Lizenz + effizient laden. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: de +og_description: Wie man die Lizenz für Aspose OCR in C# anwendet. Folgen Sie dieser + Anleitung, um die Lizenzdatei zu lesen, die Aspose‑Lizenz zu setzen, MemoryStream + zu verwenden und die Einrichtung zu überprüfen. +og_title: Wie man eine Lizenz in Aspose OCR anwendet – vollständiges C#‑Tutorial +tags: +- Aspose +- OCR +- C# +- Licensing +title: Wie man die Lizenz in Aspose OCR anwendet – Schritt‑für‑Schritt C#‑Leitfaden +url: /de/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man eine Lizenz in Aspose OCR anwendet – Vollständiger C#‑Leitfaden + +Haben Sie sich jemals gefragt, **wie man eine Lizenz** für Aspose OCR anwendet, ohne vage Dokumentationen zu jagen? Sie sind nicht allein. Die meisten Entwickler stoßen auf dasselbe Problem: Sie können die Datei lesen, wissen aber nicht, wie sie korrekt in die Bibliothek eingespeist wird. In diesem Tutorial gehen wir jedes Detail durch – vom Laden der `.lic`‑Datei von der Festplatte bis zum Aufruf von `SetLicense` mit einem `MemoryStream`. Am Ende haben Sie eine funktionierende Lösung, die Sie in jedes .NET‑Projekt einbinden können. + +Wir behandeln außerdem **wie man Datei liest** sicher, die richtige Vorgehensweise zum **Setzen der Aspose‑Lizenz** und warum die Verwendung eines **MemoryStream** der sauberste Ansatz ist. Wenn Sie neugierig sind, **wie man Lizenz lädt** in verschiedenen Umgebungen, sind diese Tipps ebenfalls enthalten. Keine externen Referenzen nötig – nur reiner, copy‑and‑paste‑fertiger Code. + +## Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert sowohl mit .NET Core als auch mit .NET Framework) +- Aspose.OCR NuGet‑Paket installiert (`Install-Package Aspose.OCR`) +- Eine gültige `Aspose.OCR.lic`‑Datei, die an einem Ort liegt, den Ihre Anwendung erreichen kann +- Grundlegende Kenntnisse in C# und Visual Studio (oder einer anderen bevorzugten IDE) + +> **Pro‑Tipp:** Bewahren Sie die Lizenzdatei außerhalb Ihres Quellcode‑Verzeichnisses auf, um versehentliche Commits zu vermeiden. + +## Schritt 1: Wie man Datei liest – Lizenz‑Bytes laden + +Das Erste, was wir benötigen, ist das rohe Byte‑Array der Lizenzdatei. Die Verwendung von `File.ReadAllBytes` ist sowohl einfach als auch effizient und wirft automatisch eine klare Ausnahme, wenn der Pfad falsch ist. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Warum das wichtig ist:** Das direkte Einlesen der Datei in den Speicher verhindert Dateihandle‑Lecks und liefert uns ein sauberes Byte‑Array, das wir später verwenden können. Außerdem macht es die Methode wiederverwendbar für Konsolen‑Apps, Web‑Services oder Azure Functions. + +## Schritt 2: Wie man MemoryStream verwendet – Lizenz‑Stream vorbereiten + +Asposes `License.SetLicense`‑Überladung erwartet einen `Stream`. Das Einwickeln des Byte‑Arrays in einen `MemoryStream` ist die idiomatische Art, diese Anforderung zu erfüllen, ohne erneut das Dateisystem zu berühren. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Wichtige Erkenntnis:** `MemoryStream` ist leichtgewichtig und wird schnell freigegeben. Er ermöglicht zudem die Wiederverwendung desselben Byte‑Arrays für mehrere Bibliotheken, falls Sie jemals mehr als eine Aspose‑Produktlizenz anwenden müssen. + +## Schritt 3: Aspose‑Lizenz setzen – Der Kern von „wie man Lizenz anwendet“ + +Jetzt, wo wir einen `MemoryStream` haben, ist das Anwenden der Lizenz ein Einzeiler. Die `License`‑Klasse befindet sich im Namespace `Aspose.OCR`, also stellen Sie sicher, dass Sie die passende `using`‑Direktive hinzugefügt haben. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Ist die Lizenz ungültig oder abgelaufen, schlägt `SetLicense` stillschweigend fehl und die Bibliothek arbeitet im Testmodus. Um ganz sicher zu gehen, können Sie ein Feature prüfen, das nur in der lizenzierten Version verfügbar ist (z. B. OCR‑Genauigkeitseinstellungen) oder einfach die Bestätigungsnachricht abwarten, die wir später ausgeben. + +## Schritt 4: Wie man Lizenz lädt – Alles zusammenführen + +Unten finden Sie das komplette, ausführbare Konsolenprogramm, das demonstriert, **wie man Lizenz** von der Festplatte lädt, einen `MemoryStream` verwendet und verifiziert, dass die Lizenz erfolgreich angewendet wurde. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Erwartete Ausgabe + +``` +License applied successfully. You can now perform OCR operations. +``` + +Wenn Sie die Meldung sehen, ist die Bibliothek vollständig lizenziert und bereit für produktionsreife OCR‑Aufgaben. + +## Häufige Stolperfallen & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **FileNotFoundException** beim Lesen der Lizenz | Pfad ist falsch oder die Datei wurde nicht mit der Anwendung bereitgestellt | Verwenden Sie einen absoluten Pfad oder betten Sie die Lizenz als Ressource ein (siehe „alternative loading“ unten) | +| **Lizenz nicht angewendet, aber kein Fehler** | `SetLicense` fällt stillschweigend in den Testmodus zurück, wenn der Stream leer oder beschädigt ist | Überprüfen Sie `licenseData.Length > 0`, bevor Sie den `MemoryStream` erstellen | +| **MemoryStream nicht freigegeben** | Vergessenes `using` lässt unmanaged Ressourcen liegen | Immer den Stream in einem `using`‑Block einbetten, wie gezeigt | + +### Alternative: Lizenz als eingebettete Ressource einbetten + +Wenn Sie keine separate `.lic`‑Datei ausliefern möchten, fügen Sie sie Ihrem Projekt hinzu, setzen **Build Action** auf **Embedded Resource** und lesen Sie sie so ein: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Rufen Sie anschließend `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` auf und fahren Sie mit demselben `MemoryStream`‑Ansatz fort. + +## Fazit + +Wir haben **wie man Lizenz** für Aspose OCR von Anfang bis Ende behandelt: Datei lesen, `MemoryStream` erstellen, `SetLicense` aufrufen und die Aktivierung bestätigen. Durch Befolgen dieser Schritte eliminieren Sie Rätselraten, vermeiden häufige Fehler und stellen sicher, dass Ihre OCR‑Engine im Voll‑Feature‑Modus läuft. + +Als nächstes könnten Sie **wie man Datei** asynchron für hochdurchsatzfähige Services liest oder sich in erweiterte OCR‑Einstellungen vertiefen, jetzt wo die Lizenz korrekt geladen ist. In jedem Fall bleibt das Muster gleich – lesen, streamen, setzen, verifizieren. + +Haben Sie Fragen zu Sonderfällen, etwa dem Laden der Lizenz in einer ASP.NET Core‑Umgebung oder dem Umgang mit mehreren Aspose‑Produktlizenzen? Hinterlassen Sie einen Kommentar unten, und happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/ocr-optimization/_index.md b/ocr/german/net/ocr-optimization/_index.md index 8e29c120..32d15c60 100644 --- a/ocr/german/net/ocr-optimization/_index.md +++ b/ocr/german/net/ocr-optimization/_index.md @@ -30,6 +30,10 @@ Maximieren Sie die OCR-Genauigkeit mit Aspose.OCR für .NET-Tutorials. Führen S Verbessern Sie die OCR-Genauigkeit mit Aspose.OCR für .NET, indem Sie es erkunden[Vorverarbeitungsfilter](./preprocessing-filters-for-image/)Laden Sie es jetzt herunter und erfahren Sie, wie Sie Ihre Bilder vor der Erkennung verfeinern. Dieses Tutorial gewährleistet eine nahtlose Integration und steigert die Genauigkeit und Effizienz. +## Bildvorverarbeitung für OCR in C# – Genauigkeit mit Aspose OCR steigern + + Erfahren Sie, wie Sie Bildvorverarbeitungsfilter in C# anwenden, um die OCR-Genauigkeit mit Aspose OCR zu erhöhen. + ## Ergebniskorrektur mit Rechtschreibprüfung in der OCR-Bilderkennung Erzielen Sie eine beispiellose OCR-Genauigkeit mit[Aspose.OCR für .NET](./result-correction-with-spell-checking/). Unser Tutorial zur Ergebniskorrektur mit Rechtschreibprüfung ermöglicht es Ihnen, Wörterbücher anzupassen, Rechtschreibungen zu korrigieren und eine fehlerfreie Texterkennung mühelos sicherzustellen. Tauchen Sie mit Aspose.OCR in eine Welt der Präzision ein. @@ -46,13 +50,17 @@ Entdecken Sie die nahtlose OCR-Integration mit Aspose.OCR für .NET. Erkennen Si Nutzen Sie das Potenzial von Aspose.OCR für .NET mit unserem umfassenden Leitfaden. Erfahren Sie Schritt für Schritt, wie Sie Rechtecke für die Bilderkennung vorbereiten. Erweitern Sie Ihre .NET-Anwendungen durch nahtlose OCR-Integration. ### [Vorverarbeitungsfilter für Bilder in der OCR-Bilderkennung](./preprocessing-filters-for-image/) Entdecken Sie Aspose.OCR für .NET. Steigern Sie die OCR-Genauigkeit mit Vorverarbeitungsfiltern. Jetzt herunterladen für eine nahtlose Integration. +### [Bildvorverarbeitung für OCR in C# – Genauigkeit mit Aspose OCR steigern](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Erfahren Sie, wie Sie Bildvorverarbeitungsfilter in C# anwenden, um die OCR-Genauigkeit mit Aspose OCR zu erhöhen. ### [Ergebniskorrektur mit Rechtschreibprüfung in der OCR-Bilderkennung](./result-correction-with-spell-checking/) Verbessern Sie die OCR-Genauigkeit mit Aspose.OCR für .NET. Korrigieren Sie die Rechtschreibung, passen Sie Wörterbücher an und erreichen Sie mühelos eine fehlerfreie Texterkennung. ### [Mehrseitiges Ergebnis als Dokument in der OCR-Bilderkennung speichern](./save-multipage-result-as-document/) Nutzen Sie das Potenzial von Aspose.OCR für .NET. Mit dieser umfassenden Schritt-für-Schritt-Anleitung können Sie mehrseitige OCR-Ergebnisse mühelos als Dokumente speichern. +### [Wie man Batch-OCR in C# mit der Aspose OCR Engine durchführt](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Erfahren Sie, wie Sie mehrere Bilder in C# stapelweise mit der Aspose OCR Engine verarbeiten. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/german/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..cef46b07 --- /dev/null +++ b/ocr/german/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-01-01 +description: Wie man OCR stapelweise mit der Aspose OCR Engine in C# verwendet. Erfahren + Sie, wie Sie Text aus Bildern erkennen und Text aus TIFF‑Dateien mit GPU‑Beschleunigung + extrahieren. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: de +og_description: Wie man OCR stapelweise in C# mit der Aspose OCR Engine durchführt. + Dieser Leitfaden zeigt Ihnen, wie Sie Text aus Bildern erkennen und Text effizient + aus TIFF‑Dateien extrahieren. +og_title: Wie man OCR in C# stapelweise ausführt – Vollständiger Aspose-Leitfaden +tags: +- OCR +- C# +- Aspose +- GPU +title: Wie man OCR stapelweise in C# mit der Aspose OCR‑Engine durchführt +url: /de/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Batch-OCR in C# mit Aspose OCR Engine durchführt + +Haben Sie sich jemals gefragt, **wie man Batch-OCR** durchführt, wenn Dutzende gescannter Dokumente in einem Ordner liegen? Sie sind nicht allein – viele Entwickler stoßen an diese Hürde, wenn sie von der Erkennung einzelner Bilder zur Verarbeitung einer gesamten Sammlung übergehen. Die gute Nachricht: Aspose OCR macht das zum Kinderspiel, egal ob Sie auf einer CPU laufen oder die GPU‑Beschleunigung nutzen. + +In diesem Tutorial führen wir Sie durch ein komplettes, ausführbares Beispiel, das **Text aus Bildern erkennt** und sogar **Text aus TIFF**‑Dateien massenhaft **extrahiert**. Keine vagen „siehe die Docs“-Abkürzungen – nur eine eigenständige Lösung, die Sie heute kopieren‑einfügen und ausführen können. + +## Voraussetzungen + +Bevor wir starten, stellen Sie sicher, dass Sie Folgendes haben: + +* .NET 6.0 oder höher installiert (der Code zielt auf .NET 6 ab, aber .NET 5 funktioniert ebenfalls). +* Aspose.OCR für .NET NuGet‑Paket (sowohl CPU‑ als auch GPU‑Versionen sind verfügbar; installieren Sie diejenige, die zu Ihrer Hardware passt). +* Einen Ordner mit ein paar Beispiel‑TIFF‑ oder PNG‑Dateien, die Sie verarbeiten möchten. +* Visual Studio 2022 oder eine andere IDE Ihrer Wahl. + +> **Pro‑Tipp:** Wenn Sie die GPU‑Version verwenden möchten, vergewissern Sie sich, dass Ihr Grafikkartentreiber aktuell ist und CUDA 11+ installiert ist. Die Engine wechselt automatisch zur CPU, falls keine kompatible GPU gefunden wird. + +## Schritt 1 – Projekt einrichten und Aspose.OCR installieren + +### H2: Erstelle eine neue Konsolenanwendung und füge Aspose.OCR hinzu + +Öffnen Sie ein Terminal (oder die Package Manager Console in Visual Studio) und führen Sie aus: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Falls Sie eine GPU‑aktivierte Lizenz besitzen, fügen Sie stattdessen das GPU‑Paket hinzu: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Das war’s – Ihr Projekt referenziert nun die OCR‑Bibliothek, die wir für **Batch-OCR** verwenden werden. + +## Schritt 2 – OCR‑Engine initialisieren (CPU oder GPU) + +### H2: Wie man Batch-OCR – Engine‑Initialisierung + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Warum das wichtig ist:** Durch das Umschalten von `UseGpu` lässt Sie Aspose den schnellsten Pfad wählen. Wenn die GPU nicht verfügbar ist, wechselt die Engine stillschweigend zurück zur CPU, sodass Ihr Batch‑Job nie wegen fehlender Hardware abstürzt. + +## Schritt 3 – Dateien sammeln, die Sie verarbeiten möchten + +### H2: Text aus Bildern erkennen – Dateiliste erstellen + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Hinweis zu Randfällen:** Wenn Sie ein Mischformat haben, ändern Sie das Suchmuster zu `"*.*"` und filtern Sie nach Erweiterung innerhalb der Schleife. So bleibt das Batch flexibel. + +## Schritt 4 – Jede Datei verarbeiten und eine Vorschau anzeigen + +### H2: Text aus TIFF extrahieren – Durch die Dateien iterieren + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Was Sie sehen werden:** Für jedes TIFF gibt die Konsole etwas aus wie: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Diese Vorschau bestätigt, dass das Batch erfolgreich war, ohne jede Datei manuell öffnen zu müssen. + +## Schritt 5 – Ergebnisse speichern (optional, aber praktisch) + +### H3: OCR‑Ausgabe in Textdateien persistieren + +Wenn Sie den vollständigen Text für nachgelagerte Verarbeitung benötigen, fügen Sie dies innerhalb der `foreach`‑Schleife ein: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Jetzt erhält jedes TIFF eine Begleit‑`.txt`‑Datei mit dem kompletten OCR‑Ergebnis – ideal für Indexierung, Suche oder die Weitergabe an ein Sprachmodell. + +## Schritt 6 – Demo ausführen und prüfen + +1. Projekt bauen: `dotnet build`. +2. Ausführen: `dotnet run --project GpuBatchDemo.csproj`. + +Sie sollten die Vorschauzeilen in der Konsole sehen und (falls Sie den optionalen Schritt hinzugefügt haben) eine Reihe von `.txt`‑Dateien neben Ihren Quellbildern. + +### H3: Häufige Stolperfallen & Lösungen + +| Symptom | Wahrscheinliche Ursache | Lösung | +|---------|--------------------------|--------| +| **Leeres `ocrResult.Text`** | Bild zu dunkel oder niedrige DPI | Bilder vorverarbeiten (Kontrast erhöhen, hochskalieren) oder `ocrEngine.Settings.PreprocessImage = true` setzen. | +| **GPU‑Fehler „CUDA driver version is insufficient“** | Veralteter Treiber | GPU‑Treiber aktualisieren oder `UseGpu = false` setzen, um die CPU zu erzwingen. | +| **Ausnahme „File not found“** | Falscher Pfadtrenner unter Linux/macOS | `Path.Combine` verwenden oder Vorwärtsschrägstriche (`/`) nutzen. | + +## Schritt 7 – Skalieren (über ein paar Dateien hinaus) + +Wenn Sie von einigen Dutzend TIFFs zu Tausenden wechseln, denken Sie an: + +* **Parallelverarbeitung:** Die `foreach`‑Schleife in `Parallel.ForEach` einbetten (sicherstellen, dass die Engine‑Instanz thread‑sicher ist; andernfalls pro Thread eine eigene Instanz erstellen). +* **Chunked I/O:** Bilder in Batches einlesen, um RAM‑Engpässe zu vermeiden. +* **Logging:** Fortschritt in eine Log‑Datei schreiben; das erleichtert das Wiederaufnehmen nach einem Absturz. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Denken Sie daran:** GPU‑Speicher wird geteilt, sodass das Starten zu vieler paralleler GPU‑Jobs Sie tatsächlich verlangsamen kann. Testen Sie zuerst mit wenigen Threads. + +## Vollständiges, lauffähiges Beispiel (Copy‑Paste‑bereit) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Das Ausführen dieses Programms **erkennt Text aus Bildern**, **extrahiert Text aus TIFF** und demonstriert **wie man Batch-OCR** effizient durchführt. + +--- + +## Fazit + +Sie besitzen nun ein solides End‑zu‑End‑Beispiel, **wie man Batch-OCR** in C# mit Asposes OCR‑Engine realisiert. Das Tutorial behandelte alles von der Projekt‑Einrichtung, über das Umschalten der GPU‑Beschleunigung, das Erstellen einer Dateiliste, das Verarbeiten jedes Bildes bis hin zum Persistieren der Ergebnisse. Egal, ob Sie Text aus TIFF‑Dateien oder einem anderen Bildformat extrahieren – das gleiche Muster gilt, Sie müssen nur die Dateierweiterungen anpassen. + +Bereit für den nächsten Schritt? Integrieren Sie die OCR‑Ausgabe in einen Suchindex, speisen Sie den Text in ein Large‑Language‑Model ein oder experimentieren Sie mit Parallelverarbeitung, um Minuten bei massiven Batches zu sparen. Der Himmel ist die Grenze, und Sie haben das Fundament, darauf aufzubauen. + +Fragen oder eigene Batch‑OCR‑Tricks? Hinterlassen Sie unten einen Kommentar – happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/german/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..ced273f5 --- /dev/null +++ b/ocr/german/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,261 @@ +--- +category: general +date: 2026-01-01 +description: Bild-OCR vorverarbeiten, um die Genauigkeit zu verbessern. Erfahren Sie, + wie Sie Text in Bildern erkennen, die OCR‑Genauigkeit steigern, Bild‑OCR laden und + OCR‑Text mit Aspose OCR anzeigen. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: de +og_description: Bild-OCR vorverarbeiten, um die Genauigkeit zu verbessern. Dieser + Leitfaden zeigt, wie man Textbilder erkennt, Bild-OCR lädt, Filter anwendet und + OCR-Text anzeigt. +og_title: Bild-OCR in C# vorverarbeiten – Genauigkeit mit Aspose OCR steigern +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Bild-OCR in C# vorverarbeiten – Genauigkeit mit Aspose OCR steigern +url: /de/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Genauigkeit mit Aspose OCR steigern + +Haben Sie sich jemals gefragt, wie man **preprocess image ocr** durchführt, damit die Engine tatsächlich liest, was auf der Seite steht? Sie sind nicht allein – die meisten Entwickler stoßen an eine Wand, wenn ein verrauschter, schiefer Scan nicht mitarbeiten will. Die gute Nachricht ist, dass ein paar clevere Vorverarbeitungsschritte ein Bild aus der Katastrophenzone in sauberen, lesbaren Text verwandeln können. + +In diesem Tutorial führen wir Sie durch ein komplettes, sofort ausführbares Beispiel, das **recognize text image** Dateien erkennt, **improve OCR accuracy** verbessert und schließlich **display OCR text** in der Konsole ausgibt. Am Ende wissen Sie, wie man **load image OCR** Assets lädt, Filter wie Schrägkorrektur und Rauschunterdrückung anwendet und zuverlässige Ergebnisse erhält – alles mit Aspose.OCR für .NET. + +## Was Sie lernen werden + +- Wie man eine `OcrEngine`‑Instanz erstellt und Vorverarbeitungsfilter konfiguriert. +- Warum Schrägkorrektur‑ und Rauschunterdrückungsfilter für **improve OCR accuracy** wichtig sind. +- Der genaue Code, um **load image ocr** Dateien zu laden und die Erkennung auszuführen. +- Wie man **display OCR text** benutzerfreundlich darstellt. +- Tipps, Fallstricke und optionale Anpassungen, die Sie in realen Projekten anwenden können. + +### Voraussetzungen + +- .NET 6+ (oder .NET Framework 4.7+) auf Ihrem Rechner installiert. +- Eine Lizenz für Aspose.OCR (die kostenlose Testversion funktioniert für diese Demo). +- Grundkenntnisse in C# – keine fortgeschrittenen Tricks nötig. + +Wenn Ihnen einer dieser Punkte unbekannt ist, pausieren Sie kurz und installieren Sie die fehlenden Komponenten; der Rest der Anleitung geht davon aus, dass sie vorhanden sind. + +--- + +## preprocess image ocr – Filter einrichten + +Das Erste, das Sie verstehen müssen, ist **why preprocessing matters**. OCR‑Engines lesen kristallklaren, geraden Text hervorragend, aber reale Scans leiden häufig unter Rotation, Unschärfe oder Hintergrundrauschen. Wenn Sie ein aufgeräumtes Bild an die Engine übergeben, erhöhen Sie die Chancen auf eine korrekte Transkription dramatisch. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Was passiert hier?** +- **Step 1** erstellt die Engine – das Herz der Aspose OCR‑Bibliothek. +- **Step 2** fügt zwei Filter hinzu. Der `SkewCorrectionFilter` dreht das Bild wieder horizontal, während `DenoiseFilter` Pixel‑Rauschen glättet. +- **Step 3** ist optional, aber praktisch; Sie können den maximalen Winkel begrenzen, den die Engine zu korrigieren versucht, um Über‑Rotation bei bereits geraden Seiten zu verhindern. +- **Step 4** ist der Punkt, an dem Sie **load image OCR** Daten laden. Ersetzen Sie `YOUR_DIRECTORY/skewed_noisy.jpg` durch den Pfad zu Ihrer Testdatei. +- **Step 5** führt das OCR tatsächlich aus und erzeugt ein `OcrResult`. +- **Step 6** **display OCR text** in der Konsole, sodass Sie sofortiges Feedback erhalten. + +> **Pro‑Tipp:** Wenn Sie feststellen, dass die Ausgabe noch verzerrte Zeichen enthält, versuchen Sie, `MaxAngle` zu erhöhen oder vor dem Denoise‑Schritt einen `ContrastFilter` hinzuzufügen. + +--- + +## recognize text image – Laden Ihrer Dateien korrekt + +Ein häufiges Stolperstein ist **load image ocr** mit dem falschen Format oder DPI. Aspose.OCR unterstützt PNG, JPEG, TIFF, BMP und sogar PDF‑basierte Bilder. Die Engine arbeitet jedoch am besten mit 300 DPI oder höher bei gedruckten Dokumenten. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Wenn Sie mit einem mehrseitigen TIFF arbeiten, können Sie jede Seite durchlaufen: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Warum ist das wichtig für improve OCR accuracy?** Höhere Auflösung bewahrt die Form jedes Zeichens und liefert dem Erkenner mehr Datenpunkte. Bilder mit niedriger DPI führen häufig zu zusammengeflossenen oder gebrochenen Glyphen, die die Engine falsch interpretiert. + +## improve OCR accuracy – Anpassen der Filterparameter + +Die Standard‑Filtereinstellungen sind ein guter Ausgangspunkt, aber Sie können noch zusätzliche Leistung herausholen. + +| Filter | Schlüss​eleigenschaft | Typischer Wert | Wann anpassen | +|--------|----------------------|----------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (Grad) | Bilder, die stark geneigt sind (bis zu 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Sehr verrauschte Scans; erhöhen Sie auf `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Screenshots mit geringem Kontrast. | + +Beispiel für die Anpassung beider Filter: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Sonderfall:** Enthält Ihr Bild sowohl handschriftliche Notizen als auch gedruckten Text, sollten Sie vor dem Denoising einen `BinarizationFilter` hinzufügen, um Vorder‑ und Hintergrund zu trennen. + +## display OCR text – Ausgabe formatieren + +Einfacher Konsolenausgabe reicht für Demos, aber Produktionscode benötigt oft bereinigte Zeichenketten, Zeilenumbrüche oder sogar JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Falls Sie JSON für eine API‑Antwort benötigen: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Jetzt haben Sie **display OCR text** in einem Format, das nachgelagerte Dienste konsumieren können. + +## Vollständiges Beispiel – Alles zusammenführen + +Unten finden Sie das finale, eigenständige Programm, das Sie in ein neues Konsolenprojekt kopieren‑und‑einfügen können. Es enthält optionale Filter, das Laden eines hochauflösenden Bildes und eine saubere Ausgabe. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Erwartete Konsolenausgabe (Beispiel):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Wenn Sie das Programm mit einer anderen Datei ausführen, ändern sich Text und Vertrauenswert entsprechend. + +## Häufige Fragen & Antworten + +**Q: Was ist, wenn mein Bild bereits gerade ist?** +A: Der Schrägkorrektur‑Filter erkennt einen nahezu Null‑Winkel und wird praktisch zu einem No‑Op, sodass Sie ihn sicher aktiviert lassen können. + +**Q: Unterstützt Aspose.OCR andere Sprachen als Englisch?** +A: Ja – setzen Sie einfach `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (oder eine andere unterstützte Sprache), bevor Sie `Recognize` aufrufen. + +**Q: Wie gehe ich mit mehrseitigen PDFs um?** +A: Konvertieren Sie jede Seite in ein Bild (Aspose.PDF kann das) und übergeben Sie sie nacheinander an dieselbe `OcrEngine`‑Instanz. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/text-recognition/_index.md b/ocr/german/net/text-recognition/_index.md index 164bd821..f6694a96 100644 --- a/ocr/german/net/text-recognition/_index.md +++ b/ocr/german/net/text-recognition/_index.md @@ -41,7 +41,15 @@ Nutzen Sie das Potenzial von OCR in .NET mit Aspose.OCR. Extrahieren Sie mühelo Navigieren Sie mit Aspose.OCR für .NET durch die Komplexität der Tabellenerkennung bei der OCR-Bilderkennung. Unser umfassender Leitfaden ermöglicht es Ihnen, das volle Potenzial von Aspose.OCR auszuschöpfen und eine genaue und effiziente Tabellenerkennung in Ihren Anwendungen sicherzustellen. Werten Sie Ihre Projekte mit der branchenführenden OCR-Lösung auf. -Sind Sie bereit, Ihre .NET-Anwendungen zu revolutionieren? Tauchen Sie ein in unsere Tutorials zur Texterkennung und nutzen Sie die Leistungsfähigkeit von Aspose.OCR für eine genaue und effiziente Texterkennung in Bildern. Laden Sie es jetzt herunter und begeben Sie sich auf eine Reise mit erweiterten OCR-Funktionen. +### [Wie man ein Bild in C# OCR‑t – JPG in ePub konvertieren](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# ein JPG‑Bild OCR‑verarbeiten und das Ergebnis als ePub‑Datei exportieren. + +### [c# OCR-Tutorial: Text aus Bild extrahieren mit Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Lernen Sie, wie Sie mit Aspose OCR Text aus Bildern in C# extrahieren und in Ihre Anwendung integrieren. + +### [c# OCR-Tutorial: Text aus Bildern extrahieren und als JSON exportieren](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Erfahren Sie, wie Sie mit Aspose OCR Text aus Bildern extrahieren und das Ergebnis im JSON-Format ausgeben. + ## Tutorials zur Texterkennung ### [Erhalten Sie Auswahlmöglichkeiten für erkannte Zeichen bei der OCR-Bilderkennung](./get-choices-for-recognized-characters/) Erweitern Sie Ihre .NET-Anwendungen mit Aspose.OCR für eine genaue Zeichenerkennung. Befolgen Sie unsere Schritt-für-Schritt-Anleitung, um Auswahlmöglichkeiten für erkannte Zeichen bei der Bilderkennung abzurufen. @@ -55,9 +63,16 @@ Erweitern Sie Ihre .NET-Anwendungen mit Aspose.OCR für eine effiziente Bildtext Nutzen Sie das Potenzial von OCR in .NET mit Aspose.OCR. Extrahieren Sie mühelos Text aus PDFs. Laden Sie es jetzt herunter und genießen Sie eine nahtlose Integration. ### [Tabelle in der OCR-Bilderkennung erkennen](./recognize-table/) Nutzen Sie das Potenzial von Aspose.OCR für .NET mit unserem umfassenden Leitfaden zum Erkennen von Tabellen in der OCR-Bilderkennung. +### [c# OCR-Tutorial: Text aus Bild extrahieren mit Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Lernen Sie, wie Sie mit Aspose OCR Text aus Bildern in C# extrahieren und in Ihre Anwendung integrieren. +### [c# OCR-Tutorial: Text aus Bildern extrahieren und als JSON exportieren](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Erfahren Sie, wie Sie mit Aspose OCR Text aus Bildern extrahieren und das Ergebnis im JSON-Format ausgeben. +### [Russischen Text mit Aspose OCR C# erkennen – Vollständige Anleitung für mehrseitige PDFs](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Erfahren Sie, wie Sie mehrseitige PDFs mit russischem Text mithilfe von Aspose OCR in C# verarbeiten und extrahieren. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..cafc219b --- /dev/null +++ b/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-01-01 +description: C#‑OCR‑Tutorial, das zeigt, wie man Text aus einem Bild extrahiert und + OCR auf JPG‑Dateien mit Aspose OCR durchführt. Lernen Sie, wie man ein Bild für + OCR lädt und genaue Ergebnisse erhält. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: de +og_description: C#‑OCR‑Tutorial, das Sie Schritt für Schritt durch das Extrahieren + von Text aus Bildern, das Durchführen von OCR auf JPGs und das Laden von Bildern + für OCR mit Aspose führt. +og_title: c# OCR‑Tutorial – Text aus Bild mit Aspose OCR extrahieren +tags: +- OCR +- C# +- Aspose +title: 'c# OCR‑Tutorial: Text aus Bild mit Aspose OCR extrahieren' +url: /de/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Text aus Bild extrahieren mit Aspose OCR + +Suchen Sie ein **c# ocr tutorial**, das wirklich funktioniert? In diesem Leitfaden zeigen wir Ihnen, wie Sie **Text aus einem Bild extrahieren** und **OCR auf JPG**‑Dateien mit der Aspose.OCR‑Bibliothek durchführen. Egal, ob Sie einen Belegscanner, ein Dokumentenarchivsystem bauen oder einfach nur neugierig sind, wie man Text aus Bildern liest – die nachfolgenden Schritte bringen Sie in wenigen Minuten von Null zu funktionierendem Code. + +Wir decken alles ab, was Sie benötigen: Installation des Pakets, Laden eines Bildes für OCR, Konfiguration von Sprachressourcen, Ausführen der Erkennungsengine und Umgang mit den häufigsten Fallstricken. Am Ende haben Sie eine eigenständige Konsolenanwendung, die den erkannten Text in die Konsole ausgibt – ohne externe Dienste. + +## Was Sie benötigen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.6+) +- Visual Studio 2022, VS Code oder jeder andere C#‑Editor Ihrer Wahl +- Eine Bilddatei, die russischen (kyrillischen) Text enthält, z. B. `receipt_ru.jpg` +- Internetverbindung für den ersten Durchlauf (Aspose lädt Sprachressourcen automatisch herunter) + +Wenn Sie das bereits haben, großartig – lassen Sie uns loslegen. + +## Schritt 1: Aspose.OCR installieren und ein neues Projekt erstellen + +Zuerst fügen Sie das Aspose.OCR‑NuGet‑Paket zu Ihrem Projekt hinzu. Öffnen Sie ein Terminal im Ordner Ihrer Lösung und führen Sie aus: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro‑Tipp:** Verwenden Sie das `--version`‑Flag, um auf die neueste stabile Version festzulegen, z. B. `Aspose.OCR 23.9.0`. + +Erstellen Sie anschließend ein einfaches Konsolenprojekt (überspringen Sie diesen Schritt, wenn Sie bereits eines haben): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Jetzt haben Sie eine leere Basis, in die Sie später den vollständigen Beispielcode einfügen können. + +## Schritt 2: Bild für OCR laden + +Das Laden des Bildes ist der erste funktionale Schritt in jedem **c# ocr tutorial**. Aspose.OCR akzeptiert einen Dateipfad, einen Stream oder sogar ein `Bitmap`. Für unser Beispiel halten wir es einfach und laden das Bild von der Festplatte: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> Warum das wichtig ist: Durch das explizite Laden des Bildes geben Sie der Engine ein klares Ziel, was die Genauigkeit verbessert – insbesondere bei mehrseitigen PDFs oder gemischten Eingabeformaten. + +## Schritt 3: Sprache konfigurieren und automatische Ressourcendownloads aktivieren + +Aspose.OCR wird mit Sprachpaketen geliefert, die bei Bedarf heruntergeladen werden können. Das Aktivieren des automatischen Downloads stellt sicher, dass die Engine beim ersten Ausführen des Codes die russischen Sprachdaten abruft. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Erklärung:** +> • `AutoDownloadResources = true` entfernt den manuellen Schritt, `.dat`‑Dateien zu holen. +> • Das Setzen von `Language` teilt der Engine mit, welchen Zeichensatz sie erwarten soll, was die Erkennungs‑Geschwindigkeit und -Genauigkeit erheblich steigert. + +## Schritt 4: OCR ausführen und den erkannten Text abrufen + +Jetzt wird die eigentliche Arbeit erledigt. Die Methode `Recognize` verarbeitet das Bild und gibt ein `OcrResult`‑Objekt zurück, das die extrahierte Zeichenkette enthält. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Wenn Sie das Programm ausführen, sollten Sie etwa Folgendes sehen: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> Was Sie erwarten können: Die genaue Ausgabe hängt von der Qualität des Quellbildes ab, aber Asposes auf neuronalen Netzen basierende Engine verarbeitet in der Regel saubere Belege und gedruckte Formulare mit hoher Treue. + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie den **vollständigen, ausführbaren Code**, der alle Schritte kombiniert. Kopieren Sie ihn in `Program.cs`, ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Ordnerpfad und führen Sie `dotnet run` aus. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> Tipp: Wenn Sie **Text aus Bild**‑Dateien außer JPG (PNG, BMP, TIFF) extrahieren müssen, ändern Sie einfach die Dateierweiterung – Aspose unterstützt sie alle. + +## Schritt 5: Häufige Fallstricke & Pro‑Tipps + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **Fehlerhafte Zeichen** | Bild mit niedriger Auflösung oder starke Kompression | Verwenden Sie eine höherwertige Quelle oder führen Sie eine Vorverarbeitung mit `Bitmap` durch (z. B. Kontrast erhöhen) | +| **Sprache nicht erkannt** | Sprachpaket nicht heruntergeladen | Stellen Sie sicher, dass `AutoDownloadResources` auf `true` gesetzt ist und die Maschine beim ersten Lauf Internetzugriff hat | +| **Null `ocrResult.Text`** | Bildpfad ist falsch oder Datei fehlt | Überprüfen Sie den Pfad, verwenden Sie `File.Exists` vor dem Laden | +| **Leistungsengpass** | Große Menge an Bildern wird sequenziell verarbeitet | Verwenden Sie eine einzelne `OcrEngine`‑Instanz für mehrere Aufrufe wieder | + +### Bonus: Mehrere Dateien in einer Schleife lesen + +Wenn Sie **OCR auf JPG**‑Dateien in einem Ordner durchführen müssen, kapseln Sie die Logik in einem `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Dieses Muster skaliert gut für Beleg‑Verarbeitungspipelines. + +## Fazit + +Sie haben gerade ein **c# ocr tutorial** abgeschlossen, das zeigt, wie man **Text aus Bild extrahiert**, **OCR auf JPG** durchführt und **Bild für OCR lädt** mit Aspose.OCR. Das Beispielprogramm demonstriert den gesamten Ablauf – von der Installation des NuGet‑Pakets bis zum Ausgeben des erkannten kyrillischen Textes – sodass Sie es sofort in jedes .NET‑Projekt übernehmen können. + +Bereit für den nächsten Schritt? Versuchen Sie, `OcrLanguage.Russian` durch `OcrLanguage.English` zu ersetzen, um englische Belege zu erkennen, oder experimentieren Sie mit den Optionen von `OcrEngine.Settings` (z. B. `PageSegmentationMode`, `ImagePreprocessing`), um die Genauigkeit fein abzustimmen. Sie können die Ausgabe auch in eine Datenbank integrieren, PDFs erzeugen oder sie an eine Übersetzungs‑API weiterleiten. + +Wenn Sie auf Probleme stoßen, prüfen Sie die Aspose.OCR‑Dokumentation oder hinterlassen Sie einen Kommentar unten. Viel Spaß beim Programmieren, und möge Ihr OCR‑Ergebnis stets kristallklar sein! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..f4cb1246 --- /dev/null +++ b/ocr/german/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-01-01 +description: C# OCR‑Tutorial, das zeigt, wie man Text extrahiert, ein Bild für OCR + lädt und JSON mit Aspose.OCR in eine Datei schreibt – Schritt‑für‑Schritt‑Anleitung. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: de +og_description: C#‑OCR‑Tutorial, das Sie Schritt für Schritt durch das Extrahieren + von Text aus Bildern, das Laden von Bildern für OCR und das Schreiben von JSON in + eine Datei mit Aspose.OCR führt. +og_title: c# OCR‑Tutorial – Text extrahieren und als JSON exportieren +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR‑Tutorial – Text aus Bildern extrahieren und in JSON exportieren +url: /de/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR‑Tutorial – Text aus Bildern extrahieren und in JSON exportieren + +Haben Sie sich jemals gefragt, wie man Text aus einer gescannten Rechnung extrahiert, ohne Stunden damit zu verbringen, eigene Parser zu schreiben? Sie sind nicht allein. In diesem **c# OCR tutorial** zeigen wir Ihnen genau, wie Sie ein Bild für OCR laden, die Erkennungs‑Engine ausführen und dann **JSON in Datei schreiben**, damit Sie die Daten in nachgelagerte Systeme einspeisen können. + +Stellen Sie sich vor, Sie haben einen Ordner mit Belegen, jeder benannt `receipt1.png`, `receipt2.png`, und Sie benötigen eine schnelle Möglichkeit, sie in durchsuchbare JSON‑Datensätze zu verwandeln. Das ist das Problem, das wir lösen werden, und am Ende haben Sie eine einsatzbereite Konsolen‑App, die genau das tut. Keine zusätzlichen Abhängigkeiten außer Aspose.OCR und keine Magie – nur klare, reproduzierbare Schritte. + +> **Was Sie lernen werden** +> - Wie man **Bild für OCR laden** mit Aspose.OCR verwendet. +> - Der beste Weg, **Text zu extrahieren** und Konfidenzwerte zu erhalten. +> - Konvertierung des OCR‑Ergebnisses in ein gut strukturiertes **OCR image to JSON**‑Payload. +> - Sicheres **Schreiben von JSON in Datei** und Überprüfung der Ausgabe. + +## Voraussetzungen + +- .NET 6 SDK oder neuer (der Code funktioniert auch mit .NET Core). +- Visual Studio 2022 oder ein beliebiger Editor Ihrer Wahl. +- Aspose.OCR NuGet‑Paket (`Install-Package Aspose.OCR`). +- Eine Bilddatei (PNG, JPG, BMP), die Sie verarbeiten möchten – für die Demo verwenden wir `invoice.png`. + +Falls Ihnen etwas davon fehlt, holen Sie sich das SDK von der Microsoft‑Website und fügen Sie das NuGet‑Paket über die Package‑Manager‑Konsole hinzu: + +```powershell +Install-Package Aspose.OCR +``` + +Jetzt, da die Grundlagen gelegt sind, tauchen wir in die eigentliche Implementierung ein. + +## Schritt 1: c# OCR‑Tutorial – OCR‑Engine initialisieren + +Bevor wir **Bild für OCR laden** können, benötigen wir eine Instanz der Engine, die den Erkennungsprozess steuert. Die Klasse `OcrEngine` ist leichtgewichtig, aber es ist gute Praxis, sie in einem `using`‑Block zu kapseln, damit Ressourcen sofort freigegeben werden. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro‑Tipp:* Wenn Sie viele Bilder stapelweise verarbeiten wollen, verwenden Sie dieselbe `OcrEngine`‑Instanz wieder, anstatt jedes Mal eine neue zu erstellen. Das reduziert den Speicherverbrauch und beschleunigt den Vorgang. + +## Schritt 2: Bild für OCR laden + +Jetzt **laden wir das Bild für OCR**. Aspose.OCR unterstützt verschiedene Formate, sodass Sie es auf ein PNG, JPEG oder sogar ein mehrseitiges TIFF zeigen können. Die Methode `OcrImage.FromFile` liest die Datei und bereitet sie für die Erkennung vor. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Warum das wichtig ist:** Das separate Laden des Bildes ermöglicht es Ihnen, seine Abmessungen, DPI oder sogar eine Vorverarbeitung (z. B. Binarisierung) zu prüfen, bevor Sie es an die Engine senden. Wenn das Bild beschädigt ist, wirft `FromFile` eine klare Ausnahme, die Sie abfangen und protokollieren können. + +## Schritt 3: Text extrahieren – Erkennung ausführen + +Mit dem Bild in der Hand können wir endlich **Text extrahieren**. Die Methode `Recognize` gibt ein `OcrResult`‑Objekt zurück, das nicht nur den Klartext, sondern auch Positionsdaten und Konfidenzwerte für jedes Wort enthält. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Sonderfall:* Einige PDFs enthalten unsichtbare Textebenen. Wenn Sie eine PDF‑Seite, die als Bild gerendert wurde, einspeisen, sieht die Engine möglicherweise nichts. In solchen Fällen sollten Sie zuerst Aspose.PDF verwenden, um die verborgene Ebene zu extrahieren, und erst bei Bedarf auf OCR zurückgreifen. + +## Schritt 4: OCR‑Bild zu JSON – Ergebnis konvertieren + +Die Klasse `OcrResult` bietet einen praktischen `ToJson()`‑Helper, der das gesamte Ergebnis‑Set – einschließlich des Begrenzungsrahmens und der Konfidenz jedes Wortes – in einen JSON‑String serialisiert. Das ist der sauberste Weg, **OCR image to JSON** zu erreichen, ohne einen eigenen Serializer zu schreiben. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Wenn Sie ein benutzerdefiniertes Schema bevorzugen, können Sie über `ocrResult.Words` iterieren und Ihr eigenes Objekt erstellen, aber für die meisten Szenarien ist das integrierte JSON ausreichend und bereits gut strukturiert. + +## Schritt 5: JSON in Datei schreiben + +Jetzt kommt das letzte Puzzleteil: das Persistieren des JSON‑Payloads. Die Methode `File.WriteAllText` stellt sicher, dass die Datei atomisch erstellt (oder überschrieben) wird. Achten Sie darauf, dass das Zielverzeichnis existiert, sonst erhalten Sie eine `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tipp:* Wenn Sie UTF‑8 mit BOM oder eine andere Kodierung benötigen, verwenden Sie die Überladung, die ein `Encoding`‑Argument akzeptiert. + +## Schritt 6: Ausgabe überprüfen + +Ein kurzer `Console.WriteLine` zeigt uns, dass der Prozess erfolgreich abgeschlossen wurde. Sie können die JSON‑Datei auch in einem Viewer öffnen, um die Struktur zu bestätigen. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Erwarteter JSON‑Auszug + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +Das JSON enthält den Standort jedes Wortes, was praktisch ist, wenn Sie später Text in einer Benutzeroberfläche hervorheben möchten. + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie das vollständige, copy‑and‑paste‑bereite Programm. Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Pfad, in dem sich Ihr Bild befindet. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Führen Sie das Programm aus (`dotnet run` im Projektordner) und Sie finden `invoice.json` neben Ihrem ursprünglichen PNG. + +## Häufige Fallstricke & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|-------|----------------|-----| +| **FileNotFoundException** beim Laden des Bildes | Pfad‑Tippfehler oder fehlende Datei | Verwenden Sie `Path.Combine` und prüfen Sie `File.Exists` bevor Sie `FromFile` aufrufen. | +| **Niedrige Konfidenzwerte** | Schlechte Bildqualität, niedrige DPI | Vorverarbeitung mit `ocrImage.AdjustContrast` oder das Bild auf 300 DPI hochskalieren. | +| **JSON‑Datei leer** | `ocrResult` gab null zurück (Engine fehlgeschlagen) | Verifizieren Sie, dass das Bildformat unterstützt wird und dass die Lizenz (falls vorhanden) korrekt angewendet wurde. | +| **Leistungsengpass bei großen Stapeln** | Erneutes Erstellen von `OcrEngine` bei jeder Iteration | Verwenden Sie eine einzige `OcrEngine`‑Instanz für den gesamten Stapel und entsorgen Sie sie erst am Ende. | + +## Nächste Schritte + +Jetzt, da Sie das **c# OCR tutorial** gemeistert haben, möchten Sie vielleicht: + +- **Batch process** einen gesamten Ordner und die JSON‑Dateien zu einer einzigen Datenbank aggregieren. +- **Integrate** die Ausgabe mit Azure Cognitive Search für durchsuchbare PDFs. +- **Add language support** indem Sie `ocrEngine.Language = OcrLanguage.Spanish` setzen (oder jede unterstützte Sprache). +- **Post‑process** das JSON, um Tabellen oder Schlüssel‑Wert‑Paare mit regulären Ausdrücken zu extrahieren. + +Jede dieser Erweiterungen baut auf den Kernkonzepten auf, die wir behandelt haben: Bilder für OCR laden, Text extrahieren, in JSON konvertieren und dieses JSON auf die Festplatte schreiben. + +--- + +### Fazit + +In diesem **c# OCR tutorial** haben wir jeden Schritt durchgegangen, der nötig ist, um **Bild für OCR zu laden**, **Text zu extrahieren**, das Ergebnis in ein **OCR image to JSON**‑Payload zu transformieren und schließlich **JSON in Datei zu schreiben**. Das vollständige Code‑Beispiel kann in jedes .NET‑Projekt übernommen werden, und die Erklärungen geben Ihnen den Kontext, den Sie benötigen, um die Lösung an reale Szenarien anzupassen. + +Probieren Sie es mit Ihren eigenen Belegen oder Rechnungen aus – passen Sie die Bildvorverarbeitung an, experimentieren Sie mit verschiedenen Sprachen und beobachten Sie, wie die JSON‑Ausgabe wächst. Wenn Sie auf Probleme stoßen, schauen Sie erneut in die Tabelle der Fallstricke oder hinterlassen Sie unten einen Kommentar. Viel Spaß beim Coden! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/german/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..0c503713 --- /dev/null +++ b/ocr/german/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Erfahren Sie, wie Sie Bilder in C# mit Aspose OCR erkennen und JPG in + ePub konvertieren. Diese Schritt‑für‑Schritt‑Anleitung zeigt außerdem, wie Sie Text + aus einem Bild extrahieren. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: de +og_description: Wie man ein Bild in C# OCR verarbeitet? Folgen Sie dieser Anleitung, + um Text aus einem Bild zu extrahieren und JPG mit Aspose OCR in ePub zu konvertieren. +og_title: Wie man ein Bild in C# OCRt – JPG in ePub konvertieren +tags: +- Aspose OCR +- C# +- ePub conversion +title: Wie man ein Bild in C# OCRt – JPG in ePub konvertieren +url: /de/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man ein Bild in C# OCR‑t – JPG in ePub konvertieren + +Haben Sie sich jemals gefragt, **wie man Bilddateien** direkt aus einer C#‑Konsolenanwendung OCR‑t? Sie sind nicht allein. Viele Entwickler stoßen an ihre Grenzen, wenn sie Text aus einem Foto extrahieren und diesen Text dann in ein lesbares ePub‑Buch verpacken müssen. + +In diesem Tutorial führen wir Sie durch ein vollständiges, ausführbares Beispiel, das **Text aus einem Bild extrahiert**, das Ergebnis als ePub speichert und Ihnen zeigt, wie Sie **JPG in ePub** konvertieren können, ohne Ihre IDE zu verlassen. Kein Schnickschnack, nur der Code, den Sie heute kopieren‑und‑einfügen und ausführen können. + +## Was Sie lernen werden + +- Wie man die Aspose OCR‑Engine in einem .NET‑Projekt einrichtet. +- Die genauen Schritte, um **Bild in ePub zu konvertieren** mit der Option `OcrSaveFormat.Epub`. +- Tipps zum Umgang mit häufigen Fallstricken wie nicht unterstützten Bildformaten oder fehlenden Schriftarten. +- Ein komplettes C#‑Programm, das Sie jetzt kompilieren und ausführen können. + +**Voraussetzungen**: .NET 6 SDK (oder eine aktuelle .NET‑Version), ein gültiges Aspose.OCR‑NuGet‑Paket und eine Bilddatei (`input.jpg`), die Sie verarbeiten möchten. Wenn Sie noch nie NuGet verwendet haben, öffnen Sie einfach die Package Manager Console und führen Sie `Install-Package Aspose.OCR` aus. + +Bereit? Dann tauchen wir ein. + +## Schritt 1 – Bild OCR‑en und Quelle laden + +Das Erste, was Sie benötigen, ist eine OCR‑Engine‑Instanz und ein Quellbild. Aspose OCR macht das unkompliziert: Sie erstellen ein `OcrEngine` und übergeben ihm ein von der Festplatte geladenes `OcrImage`. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Warum das wichtig ist** – Die Engine nur einmal zu initialisieren hält den Speicherverbrauch niedrig, und das frühe Laden des Bildes ermöglicht es Ihnen, den Dateipfad zu überprüfen, bevor die aufwändige OCR‑Arbeit beginnt. + +## Schritt 2 – OCR ausführen und Text aus dem Bild extrahieren + +Jetzt, wo das Bild im Speicher ist, lassen Sie die Engine die Zeichen erkennen. Die Methode `Recognize` gibt ein `OcrResult`‑Objekt zurück, das den Klartext, Vertrauenswerte und sogar Layout‑Informationen enthält. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro‑Tipp** – Wenn Sie nur den Text und nicht das ePub benötigen, können Sie hier stoppen. Die Eigenschaft `ocrResult.Text` ist ein sauberer String, den Sie in jedes andere System weiterleiten können. + +## Schritt 3 – Ergebnis als ePub‑Buch speichern (JPG in ePub konvertieren) + +Aspose OCR kann das OCR‑Ergebnis direkt in mehrere Formate serialisieren, einschließlich ePub. Dieser Schritt zeigt genau, wie man **JPG in ePub** in einer einzigen Zeile **konvertiert**. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Wenn Sie das Programm ausführen, wird der extrahierte Text in der Konsole ausgegeben und eine neue Datei `book_page.epub` neben Ihrem Quellbild erstellt. Öffnen Sie sie in einem beliebigen ePub‑Reader (Calibre, Apple Books usw.) und Sie finden den OCR‑Text schön formatiert als Einzelseiten‑Buch. + +### Erwartete Ausgabe + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Wenn das ePub korrekt geöffnet wird, herzlichen Glückwunsch — Sie haben gerade ein vollständiges **c# OCR‑Beispiel** abgeschlossen, das ein JPEG in ein tragbares ePub umwandelt. + +## Schritt 4 – Häufige Probleme beim Konvertieren von Bild zu ePub + +Selbst mit einer soliden Bibliothek können Sie auf einige Hürden stoßen. Hier ist ein kurzer FAQ: + +| Problem | Warum es passiert | Wie zu beheben | +|-------|----------------|------------| +| **Nicht unterstütztes Bildformat** | Aspose OCR erwartet Rasterformate (JPG, PNG, BMP). | Konvertieren Sie das Bild zuerst in JPG oder PNG, z. B. mit `System.Drawing.Image`. | +| **Leere Ausgabe** | Niedrige Bildqualität oder starke Kompression. | Erhöhen Sie DPI, verwenden Sie einen klareren Scan oder wenden Sie Bildvorverarbeitung an (`ocrEngine.Preprocess`). | +| **Fehlende Schriftarten im ePub** | Der Standard‑ePub‑Writer verwendet Systemschriftarten, die möglicherweise nicht eingebettet sind. | Setzen Sie `ocrEngine.Config.FontsDirectory` auf einen Ordner mit den erforderlichen .ttf‑Dateien. | +| **Große ePub‑Datei** | Hochauflösende Bilder werden als separate Seiten eingebettet. | Verwenden Sie `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Wenn Sie diese Probleme frühzeitig angehen, sparen Sie sich späteres Fehlersuchen. + +## Schritt 5 – Beispiel erweitern (über die Grundlagen hinaus) + +Jetzt, wo Sie eine funktionierende **Bild‑zu‑ePub‑Pipeline** haben, fragen Sie sich vielleicht, was Sie noch tun können. Hier sind ein paar Ideen, die Sie morgen ausprobieren können: + +1. **Batch‑Verarbeitung** – Durchlaufen Sie einen Ordner mit JPGs, erzeugen Sie ein ePub pro Bild oder fügen Sie sie zu einem mehr‑kapiteligen ePub zusammen. +2. **Sprachauswahl** – Setzen Sie `ocrEngine.Language = Language.English;` oder eine andere unterstützte Sprache, um die Genauigkeit zu verbessern. +3. **Layout‑Erhaltung** – Verwenden Sie zuerst `OcrSaveFormat.Html` und betten Sie das HTML dann in ein ePub ein für reichere Formatierung. +4. **Cloud‑Bereitstellung** – Verpacken Sie den Code in einer Azure Function oder AWS Lambda, um OCR‑zu‑ePub als Web‑Service anzubieten. + +Jede dieser Erweiterungen baut auf der Kern‑**wie man Bild OCR‑t**‑Logik auf, die wir gerade behandelt haben. + +## Vollständiger funktionierender Code (Kopieren‑und‑Einfügen bereit) + +Unten finden Sie das gesamte Programm in einem Block. Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Pfad zu Ihrer Bilddatei. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Denken Sie daran** – Das `Aspose.OCR`‑NuGet‑Paket muss installiert sein, und die Ziel‑.NET‑Runtime sollte mindestens .NET 5 für beste Kompatibilität sein. + +## Fazit + +Wir haben gerade **wie man Bilddateien** in C# OCR‑t und diese Scans in saubere ePub‑Bücher umgewandelt — im Wesentlichen ein **JPG‑zu‑ePub**‑Workflow, den Sie in jedes Projekt einbinden können. Wenn Sie die obigen Schritte befolgen, können Sie **Text aus Bild extrahieren**, gängige Randfälle behandeln und die Lösung auf Batch‑Jobs oder Cloud‑Dienste erweitern. + +Wenn Sie neugierig auf den nächsten logischen Schritt sind, probieren Sie, die ePub‑Ausgabe durch ein PDF (`OcrSaveFormat.Pdf`) zu ersetzen oder den OCR‑Text an eine Übersetzungs‑API zu übergeben. Der Himmel ist die Grenze, sobald Sie die Grundlagen beherrscht haben. + +Haben Sie Fragen zu einem bestimmten Bildformat oder möchten Sie ein Mehrseiten‑ePub‑Beispiel sehen? Hinterlassen Sie einen Kommentar, und ich helfe Ihnen gerne weiter. Viel Spaß beim Coden und beim Verwandeln von Bildern in Bücher! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/german/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..2a460649 --- /dev/null +++ b/ocr/german/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-01-01 +description: Erkennen Sie russischen Text sofort mit Aspose OCR C#. Lernen Sie, chinesischen + Text zu erkennen, die PDF‑Seitenanzahl auszulesen und den Text einer PDF‑Seite in + einem einzigen Tutorial zu konvertieren. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: de +og_description: Erkennen Sie russischen Text schnell mit Aspose OCR C#. Dieses Tutorial + behandelt auch, wie man chinesischen Text erkennt, die Seitenzahl von PDFs liest + und den Text von PDF‑Seiten konvertiert. +og_title: Russischen Text mit Aspose OCR C# erkennen – Vollständige Anleitung +tags: +- Aspose OCR +- C# +- PDF processing +title: Russischen Text mit Aspose OCR C# erkennen – Vollständige Anleitung für mehrseitige + PDFs +url: /de/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# russischen Text mit Aspose OCR C# erkennen – Komplettes Multi‑Page‑PDF‑Tutorial + +Haben Sie jemals **russischen Text** in einem PDF erkennen müssen, das mehrere Sprachen mischt, und sich gefragt, wie das geht, ohne für jede Seite ein separates Tool zu verwenden? Sie sind nicht allein. In vielen realen Projekten erhalten Sie ein einziges PDF, das Englisch, Russisch und sogar Chinesisch auf verschiedenen Seiten enthält, und Sie wollen trotzdem eine einheitliche, saubere Textausgabe. + +In diesem Leitfaden zeigen wir Ihnen genau, wie Sie **russischen Text** (und andere Sprachen) mit **Aspose OCR C#** erkennen, und gleichzeitig demonstrieren wir, wie Sie **die PDF‑Seitenzahl auslesen**, **chinesischen Text erkennen** und **PDF‑Seiten‑Text** in eine praktische Konsolenausgabe umwandeln. Keine externen Dienste, keine versteckten Schritte – nur reiner C#‑Code, den Sie kopieren, einfügen und ausführen können. + +> **Was Sie am Ende haben** +> * Eine lauffähige C#‑Konsolen‑App, die ein mehrseitiges PDF verarbeitet. +> * Pro‑Seite‑Sprachauswahl (Russisch, Chinesisch, Englisch). +> * Techniken, um die Seitenzahl des PDFs abzufragen und den Text jeder Seite zu extrahieren. +> * Tipps, Fallstricke und Erweiterungen, die Sie in Ihren eigenen Projekten anwenden können. + +--- + +## Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet‑Paket installiert (`dotnet add package Aspose.OCR`). +- Eine PDF‑Datei, die gemischte Sprachen enthält; für die Demo verwenden wir `mixed_lang.pdf`. +- Grundlegende Kenntnisse von C#‑Konsolenanwendungen. + +Falls Ihnen etwas fehlt, holen Sie sich das neueste Aspose OCR von NuGet und platzieren Sie Ihr PDF an einem Ort, der vom Projektordner aus erreichbar ist. + +--- + +## Schritt 1 – Initialisieren der Aspose OCR‑Engine + +Das allererste, was Sie benötigen, ist eine Instanz von `OcrEngine`. Dieses Objekt hält alle Einstellungen (wie die Sprache) und führt die eigentliche Arbeit aus. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Warum das wichtig ist:** +> Die Engine ist wiederverwendbar, sodass wir nicht für jede Seite eine neue Instanz erzeugen und damit Speicher verschwenden. Durch die Wiederverwendung können wir die Sprache auch „on the fly“ ändern, was entscheidend ist, um **russischen Text** auf einer Seite und **chinesischen Text** auf einer anderen zu **erkennen**. + +--- + +## Schritt 2 – PDF laden und die Seitenzahl ermitteln + +Bevor wir mit der Erkennung beginnen, benötigen wir das PDF‑Objekt und seine Seitenzahl. Aspose OCR behandelt jede Seite als ein `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tipp:** Wenn das PDF sehr groß ist, können Sie zuerst die Seitenzahl auslesen und entscheiden, ob Sie alle Seiten oder nur einen Teil verarbeiten wollen. + +--- + +## Schritt 3 – Jede Seite ihrer gewünschten Sprache zuordnen + +Aspose OCR unterstützt viele Sprachen, aber Sie müssen angeben, welche für welche Seite verwendet werden soll. Im Folgenden erstellen wir ein `Dictionary`, wobei der Schlüssel der nullbasierte Seitenindex ist. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Warum das entscheidend ist:** +> Ohne diese Zuordnung würde die OCR‑Engine für jede Seite dieselbe Standardsprache verwenden, was zu unleserlichem Output für russischen oder chinesischen Text führen würde. Dieser Schritt ermöglicht das korrekte **Erkennen von russischem Text** und **chinesischem Text**. + +--- + +## Schritt 4 – Alle Seiten durchlaufen, Sprache setzen und Text erkennen + +Jetzt iterieren wir über jede Seite, wechseln die Sprache gemäß unserer Zuordnung und rufen `Recognize` auf. Das Ergebnis wird in `OcrResult` gespeichert, aus dem wir den Klartext extrahieren. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Erwartete Konsolenausgabe + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Erklärung des Ablaufs:** +> * Die Schleife respektiert die **PDF‑Seitenzahl**, die wir vorher ausgegeben haben. +> * Durch das Austauschen von `ocrEngine.Settings.Language` in jeder Iteration garantieren wir ein genaues **Erkennen von russischem Text** auf Seite 2 und **Erkennen von chinesischem Text** auf Seite 3. +> * Die `Console.WriteLine`‑Anweisungen wandeln den **PDF‑Seiten‑Text** effektiv in einen menschenlesbaren String um. + +--- + +## Schritt 5 – Ausführen, prüfen und anpassen + +1. Projekt bauen (`dotnet build`). +2. Ausführen (`dotnet run`). +3. Die Konsolenausgabe mit dem Original‑PDF vergleichen. + +Falls Zeichen fehlen, überlegen Sie: + +- **OCR‑Genauigkeit erhöhen** durch `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Ein benutzerdefiniertes Sprachpaket bereitstellen**, falls die integrierten russischen oder chinesischen Wörterbücher veraltet sind. +- **DPI beim Laden des PDFs anpassen** (`OcrImage.FromFile(path, 300)`), was die Erkennung bei niedrig aufgelösten Scans verbessern kann. + +--- + +## Bonus: Sonderfälle behandeln + +### Was, wenn die Sprache einer Seite nicht in der Zuordnung steht? + +Der Code fällt bereits auf Englisch zurück, Sie können aber auch ein Logging‑Fallback hinzufügen: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Können wir PDFs mit mehr als drei Sprachen verarbeiten? + +Natürlich. Erweitern Sie `languageMap` um weitere Indizes und unterstützte `OcrLanguage`‑Werte (z. B. `OcrLanguage.French`). Die Schleife verarbeitet jede beliebige Seitenzahl. + +### Wie exportiere ich die Ergebnisse in eine Datei statt in die Konsole? + +Ersetzen Sie die `Console.WriteLine`‑Aufrufe durch `File.AppendAllText("output.txt", …)` oder verwenden Sie einen `StringBuilder`, den Sie nach der Schleife einmal schreiben. + +--- + +## Bildliche Darstellung + +![Beispiel für das Erkennen von russischem Text](/images/recognize-russian-text.png "Screenshot, der die OCR‑Ausgabe für russischen Text zeigt") + +*Das obige Bild demonstriert die Konsolenausgabe, wenn **russischer Text** in einem mehrsprachigen PDF erkannt wird.* + +--- + +## Fazit + +Wir haben ein vollständiges, durchgängiges Beispiel durchgearbeitet, das zeigt, wie man **russischen Text** (und ebenfalls **chinesischen Text**) aus einem mehrseitigen PDF mit **Aspose OCR C#** erkennt. Durch das Auslesen der PDF‑Seitenzahl, das Zuordnen jeder Seite zur richtigen Sprache und das Durchlaufen des Dokuments können Sie **PDF‑Seiten‑Text** in Klartext‑Strings umwandeln, die sich zum Speichern, Indexieren oder Weiterverarbeiten eignen. + +Kurz zusammengefasst: + +- **Initialisieren** Sie eine einzelne `OcrEngine`. +- **Laden** Sie das PDF und **lesen** Sie die **PDF‑Seitenzahl**. +- **Ordnen** Sie Seiten den Sprachen zu (Russisch, Chinesisch usw.). +- **Iterieren**, setzen Sie `ocrEngine.Settings.Language` und **erkennen** Sie jede Seite. +- **Geben** Sie den extrahierten Text aus oder speichern Sie ihn. + +Passen Sie dieses Muster gern für größere Dokumente an, fügen Sie Fehlerbehandlung hinzu oder leiten Sie die Ergebnisse in einen Suchindex weiter. Der Kern – die pro‑Seite‑Sprachauswahl – bleibt gleich und ermöglicht zuverlässiges **Erkennen von russischem Text** in gemischten PDFs. + +Haben Sie ein anderes Szenario, etwa das Scannen von Bildern statt PDFs? Die gleiche Engine funktioniert – ersetzen Sie einfach `OcrImage.FromFile` durch `OcrImage.FromStream` oder `FromBitmap`. Viel Spaß beim Coden und möge Ihre OCR stets präzise sein! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/ocr-configuration/_index.md b/ocr/greek/net/ocr-configuration/_index.md index 8f9f7a91..ebf9d521 100644 --- a/ocr/greek/net/ocr-configuration/_index.md +++ b/ocr/greek/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ url: /el/net/ocr-configuration/ Ξεκλειδώστε ισχυρές δυνατότητες OCR με το Aspose.OCR για .NET. Εξαγωγή κειμένου από εικόνες απρόσκοπτα. ### [OCROΛειτουργία με λίστα στην Αναγνώριση εικόνας OCR](./ocr-operation-with-list/) Ξεκλειδώστε τις δυνατότητες του Aspose.OCR για .NET. Εκτελέστε χωρίς κόπο αναγνώριση εικόνας OCR με λίστες. Ενισχύστε την παραγωγικότητα και την εξαγωγή δεδομένων στις εφαρμογές σας. +### [Πώς να Εφαρμόσετε Άδεια στο Aspose OCR – Βήμα‑βήμα Οδηγός C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Μάθετε πώς να ενεργοποιήσετε την άδεια Aspose OCR σε εφαρμογές C# βήμα‑βήμα. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/greek/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..169e58bf --- /dev/null +++ b/ocr/greek/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Πώς να εφαρμόσετε άδεια για το Aspose OCR σε C#. Μάθετε πώς να διαβάσετε + το αρχείο, να ορίσετε την άδεια Aspose, να χρησιμοποιήσετε το MemoryStream και να + φορτώσετε την άδεια αποδοτικά. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: el +og_description: Πώς να εφαρμόσετε την άδεια για το Aspose OCR σε C#. Ακολουθήστε αυτόν + τον οδηγό για να διαβάσετε το αρχείο άδειας, να ορίσετε την άδεια Aspose, να χρησιμοποιήσετε + το MemoryStream και να επαληθεύσετε τη ρύθμιση. +og_title: Πώς να εφαρμόσετε την άδεια στο Aspose OCR – Πλήρης οδηγός C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Πώς να εφαρμόσετε άδεια στο Aspose OCR – Οδηγός βήμα‑προς‑βήμα C# +url: /el/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Εφαρμόσετε Άδεια στο Aspose OCR – Πλήρης Οδηγός C# + +Έχετε αναρωτηθεί ποτέ **πώς να εφαρμόσετε άδεια** για το Aspose OCR χωρίς να τρέχετε σε ασαφείς τεκμηριώσεις; Δεν είστε μόνοι. Οι περισσότεροι προγραμματιστές αντιμετωπίζουν το ίδιο πρόβλημα: μπορούν να διαβάσουν το αρχείο, αλλά δεν ξέρουν τον σωστό τρόπο να το περάσουν στη βιβλιοθήκη. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από τη φόρτωση του αρχείου `.lic` από το δίσκο μέχρι την κλήση του `SetLicense` με ένα `MemoryStream`. Στο τέλος θα έχετε μια λειτουργική λύση που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο .NET. + +Θα καλύψουμε επίσης **πώς να διαβάσετε αρχείο** με ασφάλεια, τον σωστό τρόπο **να ορίσετε άδεια Aspose**, και γιατί η χρήση ενός **MemoryStream** είναι η πιο καθαρή προσέγγιση. Αν σας ενδιαφέρει **πώς να φορτώσετε άδεια** σε διαφορετικά περιβάλλοντα, θα βρείτε και αυτές τις συμβουλές. Δεν απαιτούνται εξωτερικές αναφορές—απλώς καθαρός κώδικας έτοιμος για αντιγραφή‑και‑επικόλληση. + +## Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί με .NET Core και .NET Framework) +- Πακέτο NuGet Aspose.OCR εγκατεστημένο (`Install-Package Aspose.OCR`) +- Ένα έγκυρο αρχείο `Aspose.OCR.lic` τοποθετημένο κάπου που η εφαρμογή σας μπορεί να το προσεγγίσει +- Βασική εξοικείωση με C# και Visual Studio (ή οποιοδήποτε IDE προτιμάτε) + +> **Pro tip:** Κρατήστε το αρχείο άδειας εκτός του φακέλου ελέγχου πηγής για να αποφύγετε τυχαίες δεσμεύσεις. + +## Βήμα 1: Πώς να Διαβάσετε Αρχείο – Φορτώστε τα Bytes της Άδειας + +Το πρώτο που χρειάζεται είναι ο ακατέργαστος πίνακας byte του αρχείου άδειας. Η χρήση του `File.ReadAllBytes` είναι τόσο απλή όσο και αποδοτική, και ρίχνει αυτόματα μια σαφή εξαίρεση αν το μονοπάτι είναι λανθασμένο. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Γιατί είναι σημαντικό:** Η άμεση ανάγνωση του αρχείου στη μνήμη αποφεύγει διαρροές χειριστών αρχείων και μας παρέχει έναν καθαρό πίνακα byte για επόμενη χρήση. Επίσης, καθιστά τη μέθοδο επαναχρησιμοποιήσιμη σε κονσόλες, web services ή Azure Functions. + +## Βήμα 2: Πώς να Χρησιμοποιήσετε MemoryStream – Προετοιμάστε το Stream της Άδειας + +Η υπερφόρτωση `License.SetLicense` του Aspose αναμένει ένα `Stream`. Η περιτύλιξη του πίνακα byte σε `MemoryStream` είναι ο ιδεαλός τρόπος για να ικανοποιήσετε αυτήν την απαίτηση χωρίς να αγγίξετε ξανά το σύστημα αρχείων. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Κύρια ιδέα:** Το `MemoryStream` είναι ελαφρύ και διαγράφεται γρήγορα. Επιτρέπει επίσης την επαναχρήση του ίδιου πίνακα byte για πολλαπλές βιβλιοθήκες αν χρειαστεί να εφαρμόσετε περισσότερες από μία άδειες προϊόντων Aspose. + +## Βήμα 3: Ορίστε Άδεια Aspose – Η Καρδιά του “πώς να εφαρμόσετε άδεια” + +Τώρα που έχουμε ένα `MemoryStream`, η εφαρμογή της άδειας γίνεται με μία γραμμή κώδικα. Η κλάση `License` βρίσκεται στο namespace `Aspose.OCR`, οπότε βεβαιωθείτε ότι έχετε προσθέσει τη σωστή οδηγία `using`. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Αν η άδεια είναι άκυρη ή ληγμένη, το `SetLicense` θα αποτύχει σιωπηλά και η βιβλιοθήκη θα λειτουργήσει σε λειτουργία δοκιμής. Για απόλυτη βεβαιότητα, μπορείτε να ελέγξετε μια λειτουργία που είναι διαθέσιμη μόνο στην άδεια έκδοση (π.χ. ρυθμίσεις ακρίβειας OCR) ή απλώς να βασιστείτε στο μήνυμα επιβεβαίωσης που θα τυπώσουμε αργότερα. + +## Βήμα 4: Πώς να Φορτώσετε Άδεια – Συνδυάζοντας Όλα + +Παρακάτω βρίσκεται το πλήρες, εκτελέσιμο πρόγραμμα κονσόλας που δείχνει **πώς να φορτώσετε άδεια** από το δίσκο, να χρησιμοποιήσετε ένα `MemoryStream`, και να επαληθεύσετε ότι η άδεια εφαρμόστηκε επιτυχώς. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Αναμενόμενη Έξοδος + +``` +License applied successfully. You can now perform OCR operations. +``` + +Αν δείτε το μήνυμα, η βιβλιοθήκη είναι πλήρως αδειοδοτημένη και έτοιμη για παραγωγικές εργασίες OCR. + +## Συνηθισμένα Προβλήματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **FileNotFoundException** κατά την ανάγνωση της άδειας | Λανθασμένο μονοπάτι ή το αρχείο δεν έχει αναπτυχθεί με την εφαρμογή | Χρησιμοποιήστε απόλυτο μονοπάτι ή ενσωματώστε την άδεια ως πόρο (δείτε “εναλλακτική φόρτωση” παρακάτω) | +| **Η άδεια δεν εφαρμόζεται αλλά δεν εμφανίζεται σφάλμα** | Το `SetLicense` επιστρέφει σιωπηλά σε λειτουργία δοκιμής αν το stream είναι κενό ή κατεστραμμένο | Επαληθεύστε ότι `licenseData.Length > 0` πριν δημιουργήσετε το `MemoryStream` | +| **MemoryStream δεν διαγράφεται** | Η παράλειψη του `using` αφήνει ανεξέλεγκτους πόρους | Πάντα τυλίξτε το stream σε `using` όπως φαίνεται | + +### Εναλλακτική: Ενσωμάτωση της Άδειας ως Ενσωματωμένος Πόρος + +Αν προτιμάτε να μην διανείμετε ξεχωριστό αρχείο `.lic`, προσθέστε το στο έργο σας, ορίστε **Build Action** σε **Embedded Resource**, και διαβάστε το ως εξής: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Στη συνέχεια καλέστε `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` και συνεχίστε με την ίδια προσέγγιση `MemoryStream`. + +## Συμπέρασμα + +Καλύψαμε **πώς να εφαρμόσετε άδεια** για το Aspose OCR από την αρχή μέχρι το τέλος: ανάγνωση του αρχείου, δημιουργία `MemoryStream`, κλήση `SetLicense` και επιβεβαίωση της ενεργοποίησης. Ακολουθώντας αυτά τα βήματα εξαλείφετε τις εικασίες, αποφεύγετε τα κοινά σφάλματα και διασφαλίζετε ότι η μηχανή OCR λειτουργεί σε πλήρη λειτουργικότητα. + +Στη συνέχεια, μπορείτε να εξερευνήσετε **πώς να διαβάσετε αρχείο** ασύγχρονα για υπηρεσίες υψηλής διακίνησης, ή να εμβαθύνετε στις προχωρημένες ρυθμίσεις OCR τώρα που η άδεια είναι σωστά φορτωμένη. Σε κάθε περίπτωση, το μοτίβο παραμένει το ίδιο—read, stream, set, verify. + +Έχετε ερωτήσεις για ειδικές περιπτώσεις, όπως η φόρτωση της άδειας σε περιβάλλον ASP.NET Core ή η διαχείριση πολλαπλών αδειών προϊόντων Aspose; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική δουλειά! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/ocr-optimization/_index.md b/ocr/greek/net/ocr-optimization/_index.md index 91034532..dba149ee 100644 --- a/ocr/greek/net/ocr-optimization/_index.md +++ b/ocr/greek/net/ocr-optimization/_index.md @@ -47,12 +47,17 @@ url: /el/net/ocr-optimization/ ### [Προεπεξεργασία φίλτρων για εικόνα στην Αναγνώριση εικόνας OCR](./preprocessing-filters-for-image/) Εξερευνήστε το Aspose.OCR για .NET. Ενισχύστε την ακρίβεια OCR με φίλτρα προεπεξεργασίας. Κάντε λήψη τώρα για απρόσκοπτη ενσωμάτωση. ### [Διόρθωση αποτελεσμάτων με ορθογραφικό έλεγχο στην αναγνώριση εικόνας OCR](./result-correction-with-spell-checking/) -Βελτιώστε την ακρίβεια OCR με το Aspose.OCR για .NET. Διορθώστε την ορθογραφία, προσαρμόστε τα λεξικά και επιτύχετε την αναγνώριση κειμένου χωρίς σφάλματα χωρίς κόπο. +Βελτιώστε την ακρίβεια OCR με το Aspose.OCR για .NET. Διορθώστε την ορθγραφία, προσαρμόστε τα λεξικά και επιτύχετε την αναγνώριση κειμένου χωρίς σφάλματα χωρίς κόπο. ### [Αποθηκεύστε το αποτέλεσμα πολλαπλών σελίδων ως έγγραφο στην Αναγνώριση εικόνας OCR](./save-multipage-result-as-document/) Ξεκλειδώστε τις δυνατότητες του Aspose.OCR για .NET. Αποθηκεύστε αβίαστα αποτελέσματα OCR πολλαπλών σελίδων ως έγγραφα με αυτόν τον αναλυτικό οδηγό βήμα προς βήμα. +### [Πώς να εκτελέσετε Batch OCR σε C# με τη μηχανή Aspose OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Μάθετε πώς να επεξεργάζεστε μεγάλους όγκους εικόνων με OCR σε C# χρησιμοποιώντας τη μηχανή Aspose OCR. +### [Προεπεξεργασία εικόνας OCR σε C# – Βελτιώστε την ακρίβεια με το Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Ανακαλύψτε πώς να προετοιμάσετε εικόνες OCR σε C# για μέγιστη ακρίβεια χρησιμοποιώντας το Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/greek/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..fa9ce192 --- /dev/null +++ b/ocr/greek/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-01-01 +description: Πώς να εκτελέσετε ομαδική OCR χρησιμοποιώντας τη μηχανή Aspose OCR σε + C#. Μάθετε να αναγνωρίζετε κείμενο από εικόνες και να εξάγετε κείμενο από αρχεία + TIFF με επιτάχυνση GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: el +og_description: Πώς να εκτελέσετε ομαδική OCR σε C# με τη μηχανή Aspose OCR. Αυτός + ο οδηγός σας δείχνει πώς να αναγνωρίζετε κείμενο από εικόνες και να εξάγετε κείμενο + από αρχεία TIFF αποδοτικά. +og_title: Πώς να κάνετε ομαδική OCR σε C# – Πλήρης Οδηγός Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Πώς να εκτελέσετε ομαδική OCR σε C# με τη μηχανή OCR της Aspose +url: /el/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να κάνετε Batch OCR σε C# με τον Aspose OCR Engine + +Έχετε αναρωτηθεί ποτέ **πώς να κάνετε batch OCR** όταν έχετε δεκάδες σαρωμένα έγγραφα σε έναν φάκελο; Δεν είστε μόνοι—πολλοί προγραμματιστές αντιμετωπίζουν αυτό το πρόβλημα όταν περνούν από την αναγνώριση μιας μόνο εικόνας στην επεξεργασία ολόκληρης συλλογής. Τα καλά νέα είναι ότι ο Aspose OCR το κάνει παιχνιδάκι, είτε τρέχετε σε CPU είτε εκμεταλλεύεστε την επιτάχυνση GPU. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από ένα πλήρες, εκτελέσιμο παράδειγμα που **αναγνωρίζει κείμενο από εικόνες** και ακόμη **εξάγει κείμενο από αρχεία TIFF** μαζικά. Χωρίς ασαφείς «δείτε τα docs» συντομεύσεις—απλώς μια αυτοσχεδία λύση που μπορείτε να αντιγράψετε‑επικολλήσετε και να τρέξετε σήμερα. + +## Προαπαιτούμενα + +Πριν βουτήξουμε, βεβαιωθείτε ότι έχετε: + +* .NET 6.0 ή νεότερο εγκατεστημένο (ο κώδικας στοχεύει στο .NET 6, αλλά λειτουργεί και με .NET 5). +* Πακέτο NuGet Aspose.OCR για .NET (διατίθενται εκδόσεις CPU και GPU· εγκαταστήστε αυτή που ταιριάζει στο υλικό σας). +* Έναν φάκελο με μερικά δείγματα αρχείων TIFF ή PNG που θέλετε να επεξεργαστείτε. +* Visual Studio 2022 ή οποιοδήποτε IDE προτιμάτε. + +> **Συμβουλή:** Αν σκοπεύετε να χρησιμοποιήσετε την έκδοση GPU, βεβαιωθείτε ότι ο οδηγός γραφικών είναι ενημερωμένος και ότι το CUDA 11+ είναι εγκατεστημένο. Η μηχανή θα επιστρέψει αυτόματα σε CPU αν δεν βρει συμβατό GPU. + +## Βήμα 1 – Ρύθμιση του Project και Εγκατάσταση του Aspose.OCR + +### H2: Create a New Console App and Add Aspose.OCR + +Ανοίξτε ένα τερματικό (ή το Package Manager Console στο Visual Studio) και τρέξτε: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Αν έχετε άδεια με υποστήριξη GPU, προσθέστε το πακέτο GPU αντί αυτού: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Αυτό ήταν—το project σας τώρα αναφέρεται στη βιβλιοθήκη OCR που θα χρησιμοποιήσουμε για **batch OCR**. + +## Βήμα 2 – Αρχικοποίηση του OCR Engine (CPU ή GPU) + +### H2: How to Batch OCR – Engine Initialization + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Γιατί είναι σημαντικό:** Με την εναλλαγή του `UseGpu`, αφήνετε τον Aspose να επιλέξει τη γρηγορότερη διαδρομή. Αν το GPU δεν είναι διαθέσιμο, η μηχανή αλλάζει σιωπηλά σε CPU, ώστε η batch εργασία σας να μην καταρρεύσει λόγω έλλειψης υλικού. + +## Βήμα 3 – Συλλογή των Αρχείων που Θέλετε να Επεξεργαστείτε + +### H2: Recognize Text from Images – Building the File List + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Σημείωση για ακραίες περιπτώσεις:** Αν έχετε μίξη μορφών, αλλάξτε το μοτίβο αναζήτησης σε `"*.*"` και φιλτράρετε κατά επέκταση μέσα στον βρόχο. Έτσι το batch παραμένει ευέλικτο. + +## Βήμα 4 – Επεξεργασία Κάθε Εικόνας και Προεπισκόπηση + +### H2: Extract Text from TIFF – Loop Through the Files + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Τι θα δείτε:** Για κάθε TIFF, η κονσόλα εκτυπώνει κάτι σαν: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Αυτή η προεπισκόπηση επιβεβαιώνει ότι το batch ολοκληρώθηκε χωρίς να χρειάζεται να ανοίξετε κάθε αρχείο χειροκίνητα. + +## Βήμα 5 – Αποθήκευση Αποτελεσμάτων (Προαιρετικό αλλά Χρήσιμο) + +### H3: Persist OCR Output to Text Files + +Αν χρειάζεστε το πλήρες κείμενο για επόμενη επεξεργασία, προσθέστε αυτό μέσα στον βρόχο `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Τώρα κάθε TIFF δημιουργεί ένα συνοδευτικό αρχείο `.txt` που περιέχει το πλήρες OCR output—ιδανικό για ευρετηρίαση, αναζήτηση ή τροφοδοσία σε μοντέλο γλώσσας. + +## Βήμα 6 – Εκτέλεση του Demo και Επαλήθευση + +1. Κατασκευάστε το project: `dotnet build`. +2. Εκτελέστε: `dotnet run --project GpuBatchDemo.csproj`. + +Θα πρέπει να δείτε τις γραμμές προεπισκόπησης στην κονσόλα και (αν προσθέσατε το προαιρετικό βήμα) μια σειρά από αρχεία `.txt` δίπλα στις πηγαίες εικόνες. + +### H3: Common Pitfalls & How to Fix Them + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Image too dark or low DPI | Pre‑process images (increase contrast, upscale) or set `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Out‑of‑date driver | Update GPU driver, or set `UseGpu = false` to force CPU. | +| **Exception “File not found”** | Wrong path separator on Linux/macOS | Use `Path.Combine` or forward slashes (`/`). | + +## Βήμα 7 – Κλιμάκωση (Πέρα από Μερικά Αρχεία) + +Όταν περάσετε από μερικά TIFF σε χιλιάδες, σκεφτείτε: + +* **Parallel processing:** Τυλίξτε το `foreach` σε `Parallel.ForEach` (βεβαιωθείτε ότι η μηχανή είναι thread‑safe· διαφορετικά δημιουργήστε μία ανά νήμα). +* **Chunked I/O:** Διαβάζετε εικόνες σε παρτίδες για να μην εξαντλήσετε τη μνήμη RAM. +* **Logging:** Γράψτε πρόοδο σε αρχείο log· βοηθά στην επαναφορά μετά από σφάλμα. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Θυμηθείτε:** Η μνήμη GPU μοιράζεται, οπότε η δημιουργία πάρα πολλών παράλληλων εργασιών GPU μπορεί στην πραγματικότητα να επιβραδύνει. Δοκιμάστε πρώτα με λίγα νήματα. + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Copy‑Paste) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Η εκτέλεση αυτού του προγράμματος θα **αναγνωρίζει κείμενο από εικόνες**, **εξάγει κείμενο από TIFF**, και θα δείξει **πώς να κάνετε batch OCR** αποδοτικά. + +--- + +## Συμπέρασμα + +Τώρα έχετε ένα ολοκληρωμένο, end‑to‑end παράδειγμα του **πώς να κάνετε batch OCR** σε C# χρησιμοποιώντας τη μηχανή OCR της Aspose. Το tutorial κάλυψε τα πάντα—from τη ρύθμιση του project, την εναλλαγή επιτάχυνσης GPU, τη δημιουργία λίστας αρχείων, την επεξεργασία κάθε εικόνας, και την αποθήκευση των αποτελεσμάτων. Είτε εξάγετε κείμενο από TIFF είτε από οποιαδήποτε άλλη μορφή εικόνας, το ίδιο μοτίβο ισχύει—απλώς αλλάξτε τις επεκτάσεις αρχείων. + +Έτοιμοι για το επόμενο βήμα; Δοκιμάστε να ενσωματώσετε το OCR output σε ευρετήριο αναζήτησης, να τροφοδοτήσετε το κείμενο σε μεγάλο μοντέλο γλώσσας, ή να πειραματιστείτε με παράλληλη επεξεργασία για να μειώσετε λεπτά σε τεράστιες παρτίδες. Ο ουρανός είναι το όριο, και έχετε τη βάση για να χτίσετε. + +Έχετε ερωτήσεις ή θέλετε να μοιραστείτε τα δικά σας batch‑OCR κόλπα; Αφήστε ένα σχόλιο παρακάτω—happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/greek/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..cf5c7d81 --- /dev/null +++ b/ocr/greek/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,257 @@ +--- +category: general +date: 2026-01-01 +description: Προεπεξεργασία εικόνας OCR για βελτίωση της ακρίβειας. Μάθετε πώς να + αναγνωρίζετε κείμενο σε εικόνα, να βελτιώνετε την ακρίβεια του OCR, να φορτώνετε + εικόνα OCR και να εμφανίζετε το κείμενο OCR χρησιμοποιώντας το Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: el +og_description: Προεπεξεργασία OCR εικόνας για βελτίωση της ακρίβειας. Αυτός ο οδηγός + δείχνει πώς να αναγνωρίζετε κείμενο σε εικόνα, να φορτώνετε OCR εικόνας, να εφαρμόζετε + φίλτρα και να εμφανίζετε το κείμενο OCR. +og_title: Προεπεξεργασία OCR εικόνας σε C# – Βελτιώστε την ακρίβεια με το Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Προεπεξεργασία OCR εικόνας σε C# – Βελτιώστε την ακρίβεια με το Aspose OCR +url: /el/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Ever wondered how to **preprocess image ocr** so the engine actually reads what’s on the page? You’re not alone—most developers hit a wall when a noisy, skewed scan refuses to cooperate. The good news is that a few smart preprocessing steps can turn a disaster‑zone image into clean, readable text. + +Σε αυτό το tutorial θα περάσουμε από ένα πλήρες, έτοιμο‑για‑εκτέλεση παράδειγμα που **recognize text image** αρχεία, **improve OCR accuracy**, και τελικά **display OCR text** στην κονσόλα. Στο τέλος θα ξέρετε πώς να **load image OCR** πόρους, να προσθέσετε φίλτρα όπως η διόρθωση κλίσης και η αποθορυβοποίηση, και να λάβετε αξιόπιστα αποτελέσματα—όλα με το Aspose.OCR για .NET. + +## What You’ll Learn + +- Πώς να δημιουργήσετε ένα στιγμιότυπο `OcrEngine` και να ρυθμίσετε τα φίλτρα προεπεξεργασίας. +- Γιατί η διόρθωση κλίσης και τα φίλτρα αποθορυβοποίησης είναι σημαντικά για **improve OCR accuracy**. +- Ο ακριβής κώδικας για **load image ocr** αρχεία και εκτέλεση αναγνώρισης. +- Πώς να **display OCR text** με φιλικό προς τον χρήστη τρόπο. +- Συμβουλές, παγίδες και προαιρετικές ρυθμίσεις που μπορείτε να εφαρμόσετε σε πραγματικά έργα. + +### Prerequisites + +- .NET 6+ (ή .NET Framework 4.7+) εγκατεστημένο στον υπολογιστή σας. +- Άδεια για το Aspose.OCR (η δωρεάν δοκιμή λειτουργεί για αυτήν την επίδειξη). +- Βασικές γνώσεις C#—δεν απαιτούνται προχωρημένα κόλπα. + +Αν κάποιο από αυτά σας φαίνεται άγνωστο, απλώς κάντε παύση και εγκαταστήστε τα ελλείποντα στοιχεία· το υπόλοιπο του οδηγού υποθέτει ότι είναι ήδη στη θέση τους. + +## preprocess image ocr – Setting Up Filters + +Το πρώτο που πρέπει να καταλάβετε είναι **why preprocessing matters**. Οι μηχανές OCR είναι εξαιρετικές στο να διαβάζουν καθαρό, ευθεία κείμενο, αλλά οι πραγματικές σαρώσεις συχνά υποφέρουν από περιστροφή, θολότητα ή θόρυβο φόντου. Με την παροχή μιας καθαρισμένης εικόνας στη μηχανή αυξάνετε δραματικά τις πιθανότητες σωστής μεταγραφής. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Τι συμβαίνει εδώ;** +- **Βήμα 1** δημιουργεί τη μηχανή—την καρδιά της βιβλιοθήκης Aspose OCR. +- **Βήμα 2** προσθέτει δύο φίλτρα. Το `SkewCorrectionFilter` περιστρέφει την εικόνα πίσω στην οριζόντια θέση, ενώ το `DenoiseFilter` εξομαλύνει τον θόρυβο σε επίπεδο pixel. +- **Βήμα 3** είναι προαιρετικό αλλά χρήσιμο· μπορείτε να περιορίσετε τη μέγιστη γωνία που η μηχανή θα προσπαθήσει να διορθώσει, αποτρέποντας την υπερβολική περιστροφή σε ήδη ευθείες σελίδες. +- **Βήμα 4** είναι όπου **load image OCR** δεδομένα. Αντικαταστήστε το `YOUR_DIRECTORY/skewed_noisy.jpg` με τη διαδρομή του αρχείου δοκιμής σας. +- **Βήμα 5** εκτελεί πραγματικά το OCR και παράγει ένα `OcrResult`. +- **Βήμα 6** **display OCR text** στην κονσόλα, παρέχοντάς σας άμεση ανάδραση. + +> **Συμβουλή:** Αν παρατηρήσετε ότι η έξοδος εξακολουθεί να περιέχει ακατάληπτους χαρακτήρες, δοκιμάστε να αυξήσετε το `MaxAngle` ή να προσθέσετε ένα `ContrastFilter` πριν από το βήμα αποθορυβοποίησης. + +## recognize text image – Loading Your Files Correctly + +Ένα κοινό εμπόδιο είναι το **load image ocr** με λάθος μορφή ή DPI. Το Aspose.OCR υποστηρίζει PNG, JPEG, TIFF, BMP, και ακόμη εικόνες βασισμένες σε PDF. Ωστόσο, η μηχανή λειτουργεί καλύτερα με 300 DPI ή περισσότερο για έντυπα έγγραφα. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Αν εργάζεστε με ένα multi‑page TIFF, μπορείτε να επαναλάβετε για κάθε καρέ: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Η υψηλότερη ανάλυση διατηρεί το σχήμα κάθε χαρακτήρα, παρέχοντας στον αναγνωριστή περισσότερα σημεία δεδομένων. Οι εικόνες με χαμηλότερο DPI συχνά οδηγούν σε συγχωνευμένα ή σπασμένα γλύφους, που η μηχανή θα ερμηνεύσει λανθασμένα. + +## improve OCR accuracy – Tweaking Filter Parameters + +Οι προεπιλεγμένες ρυθμίσεις φίλτρων είναι ένα καλό σημείο εκκίνησης, αλλά μπορείτε να εξάγετε επιπλέον απόδοση από αυτές. + +| Φίλτρο | Κύρια Ιδιότητα | Τυπική Τιμή | Πότε να Προσαρμόσετε | +|--------|----------------|------------|----------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Εικόνες που είναι πολύ κεκλιμένες (μέχρι 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Πολύ θορυβώδεις σαρώσεις· αυξήστε σε `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Στιγμιότυπα οθόνης χαμηλής αντίθεσης. | + +Παράδειγμα προσαρμογής και των δύο: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Αν η εικόνα σας περιέχει τόσο χειρόγραφες σημειώσεις όσο και τυπωμένο κείμενο, ίσως θέλετε να προσθέσετε ένα `BinarizationFilter` πριν από την αποθορυβοποίηση για να διαχωρίσετε το προσκήνιο από το φόντο. + +## display OCR text – Formatting the Output + +Η απλή έξοδος στην κονσόλα λειτουργεί για επιδείξεις, αλλά ο κώδικας παραγωγής συχνά χρειάζεται καθαρισμένες συμβολοσειρές, αλλαγές γραμμής ή ακόμη και JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Αν χρειάζεστε JSON για μια απάντηση API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Τώρα έχετε **display OCR text** σε μορφή που μπορούν να καταναλώσουν οι επόμενες υπηρεσίες. + +## Full Working Example – Put It All Together + +Παρακάτω είναι το τελικό, αυτόνομο πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε σε ένα νέο έργο κονσόλας. Περιλαμβάνει προαιρετικά φίλτρα, φόρτωση εικόνας υψηλής ανάλυσης και καθαρή έξοδο. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Αναμενόμενη έξοδος κονσόλας (παράδειγμα):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Αν εκτελέσετε το πρόγραμμα με διαφορετικό αρχείο, το κείμενο και η εμπιστοσύνη θα αλλάξουν ανάλογα. + +## Common Questions & Answers + +**Ε: Τι γίνεται αν η εικόνα μου είναι ήδη ευθεία;** +**Α:** Το φίλτρο κλίσης θα εντοπίσει γωνία σχεδόν μηδενική και ουσιαστικά θα γίνει no‑op, οπότε μπορείτε να το αφήσετε ενεργό με ασφάλεια. + +**Ε: Υποστηρίζει το Aspose.OCR γλώσσες εκτός της Αγγλικής;** +**Α:** Ναι—απλώς ορίστε `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (ή οποιαδήποτε υποστηριζόμενη γλώσσα) πριν καλέσετε `Recognize`. + +**Ε: Πώς να διαχειριστώ PDF πολλαπλών σελίδων;** +**Α:** Μετατρέψτε κάθε σελίδα σε εικόνα (το Aspose.PDF μπορεί να το κάνει) και τροφοδοτήστε τα μία‑μια στο ίδιο στιγμιότυπο `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/text-recognition/_index.md b/ocr/greek/net/text-recognition/_index.md index 7c0b04e8..f71b2b89 100644 --- a/ocr/greek/net/text-recognition/_index.md +++ b/ocr/greek/net/text-recognition/_index.md @@ -55,9 +55,17 @@ url: /el/net/text-recognition/ Ξεκλειδώστε τις δυνατότητες του OCR στο .NET με το Aspose.OCR. Εξαγωγή κειμένου από αρχεία PDF χωρίς κόπο. Κάντε λήψη τώρα για μια απρόσκοπτη εμπειρία ενσωμάτωσης. ### [Αναγνώριση πίνακα στην Αναγνώριση εικόνας OCR](./recognize-table/) Ξεκλειδώστε τις δυνατότητες του Aspose.OCR για .NET με τον ολοκληρωμένο οδηγό μας για την αναγνώριση πινάκων στην αναγνώριση εικόνας OCR. +### [c# OCR σεμινάριο: Εξαγωγή κειμένου από εικόνα με Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Μάθετε πώς να εξάγετε κείμενο από εικόνες χρησιμοποιώντας το Aspose OCR σε εφαρμογές C#. +### [c# OCR σεμινάριο – Εξαγωγή κειμένου από εικόνες και εξαγωγή σε JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Μάθετε πώς να εξάγετε κείμενο από εικόνες και να το αποθηκεύσετε σε μορφή JSON χρησιμοποιώντας Aspose OCR σε C#. +### [Πώς να κάνετε OCR εικόνας σε C# – Μετατροπή JPG σε ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Μάθετε πώς να κάνετε OCR σε εικόνα JPG και να τη μετατρέψετε σε ePub με το Aspose OCR σε C#. +### [Αναγνώριση ρωσικού κειμένου με Aspose OCR C# – Οδηγός πλήρους πολυσέλιδου PDF](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..55a73f24 --- /dev/null +++ b/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# οδηγός OCR που δείχνει πώς να εξάγετε κείμενο από εικόνα, να εκτελέσετε + OCR σε αρχεία JPG χρησιμοποιώντας το Aspose OCR. Μάθετε πώς να φορτώνετε εικόνα + για OCR και να λαμβάνετε ακριβή αποτελέσματα. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: el +og_description: c# OCR tutorial που σας καθοδηγεί στη εξαγωγή κειμένου από εικόνα, + στην εκτέλεση OCR σε JPG και στη φόρτωση εικόνων για OCR χρησιμοποιώντας το Aspose. +og_title: c# OCR οδηγός – Εξαγωγή κειμένου από εικόνα με Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# OCR οδηγός: Εξαγωγή κειμένου από εικόνα με Aspose OCR' +url: /el/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Εξαγωγή Κειμένου από Εικόνα με το Aspose OCR + +Ψάχνετε ένα **c# ocr tutorial** που λειτουργεί πραγματικά; Σε αυτόν τον οδηγό θα σας δείξουμε πώς να **εξάγετε κείμενο από μια εικόνα** και να **εκτελέσετε OCR σε αρχεία JPG** χρησιμοποιώντας τη βιβλιοθήκη Aspose.OCR. Είτε δημιουργείτε έναν σαρωτή αποδείξεων, έναν αρχειοθέτη εγγράφων, είτε απλώς είστε περίεργοι για το πώς να διαβάζετε κείμενο από εικόνες, τα παρακάτω βήματα θα σας μεταφέρουν από το μηδέν σε λειτουργικό κώδικα σε λίγα λεπτά. + +Θα καλύψουμε όλα όσα χρειάζεστε: την εγκατάσταση του πακέτου, τη φόρτωση μιας εικό για OCR, τη διαμόρφωση των γλωσσικών πόρων, την εκτέλεση της μηχανής αναγνώρισης και τη διαχείριση των πιο συχνών προβλημάτων. Στο τέλος θα έχετε μια αυτόνομη εφαρμογή κονσόλας που εκτυπώνει το αναγνωρισμένο κείμενο στην κονσόλα — χωρίς εξωτερικές υπηρεσίες. + +## What You’ll Need + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Framework 4.6+) +- Visual Studio 2022, VS Code ή οποιονδήποτε επεξεργαστή C# προτιμάτε +- Ένα αρχείο εικόνας που περιέχει ρωσικό (Κυριλλικό) κείμενο, π.χ., `receipt_ru.jpg` +- Σύνδεση στο internet για την πρώτη εκτέλεση (το Aspose θα κατεβάσει αυτόματα τους γλωσσικούς πόρους) + +Αν τα έχετε ήδη, τέλεια — ας ξεκινήσουμε. + +## Step 1: Install Aspose.OCR and Create a New Project + +Πρώτα απ' όλα, προσθέστε το πακέτο NuGet Aspose.OCR στο έργο σας. Ανοίξτε ένα τερματικό στο φάκελο της λύσης και εκτελέστε: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Χρησιμοποιήστε τη σημαία `--version` για να κλειδώσετε στην πιο πρόσφατη σταθερή έκδοση, π.χ., `Aspose.OCR 23.9.0`. + +Στη συνέχεια, δημιουργήστε ένα απλό έργο κονσόλας (παραλείψτε αυτό αν έχετε ήδη ένα): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Τώρα έχετε ένα καθαρό περιβάλλον όπου μπορείτε να επικολλήσετε τον πλήρη κώδικα δείγματος αργότερα. + +## Step 2: Load Image for OCR + +Η φόρτωση της εικόνας είναι το πρώτο λειτουργικό βήμα σε οποιοδήποτε **c# ocr tutorial**. Το Aspose.OCR δέχεται διαδρομή αρχείου, ροή ή ακόμη και ένα `Bitmap`. Στο παράδειγμά μας θα το κρατήσουμε απλό και θα φορτώσουμε από το δίσκο: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** Με την ρητή φόρτωση της εικόνας, δίνετε στη μηχανή έναν σαφή στόχο, κάτι που βελτιώνει την ακρίβεια — ειδικά όταν εργάζεστε με πολυ-σελίδες PDF ή εισόδους μικτής μορφής. + +## Step 3: Configure Language and Auto‑Download Resources + +Το Aspose.OCR έρχεται με πακέτα γλώσσας που μπορούν να ληφθούν κατ' απαίτηση. Η ενεργοποίηση της αυτόματης λήψης εξασφαλίζει ότι η μηχανή θα πάρει τα ρωσικά δεδομένα γλώσσας την πρώτη φορά που θα εκτελέσετε τον κώδικα. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` αφαιρεί το χειροκίνητο βήμα λήψης αρχείων `.dat`. +> • Η ρύθμιση `Language` λέει στη μηχανή ποιο σύνολο χαρακτήρων να περιμένει, αυξάνοντας δραστικά την ταχύτητα και την ακρίβεια της αναγνώρισης. + +## Step 4: Run OCR and Retrieve the Recognized Text + +Τώρα γίνεται η βαριά δουλειά. Η μέθοδος `Recognize` επεξεργάζεται την εικόνα και επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει τη εξαγόμενη συμβολοσειρά. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Όταν εκτελέσετε το πρόγραμμα, θα πρέπει να δείτε κάτι όπως: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** Η ακριβής έξοδος εξαρτάται από την ποιότητα της πηγαίας εικόνας, αλλά η μηχανή βασισμένη σε νευρωνικά δίκτυα του Aspose συνήθως διαχειρίζεται καθαρές αποδείξεις και τυπωμένες φόρμες με υψηλή πιστότητα. + +## Complete Working Example + +Παρακάτω βρίσκεται ο **πλήρης, εκτελέσιμος κώδικας** που συνδυάζει όλα τα βήματα. Αντιγράψτε‑επικολλήστε το στο `Program.cs`, αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή φακέλου και τρέξτε `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Αν χρειάζεται να **εξάγετε κείμενο από εικόνα** αρχεία εκτός JPG (PNG, BMP, TIFF), απλώς αλλάξτε την επέκταση του αρχείου — το Aspose τα διαχειρίζεται όλα. + +## Step 5: Common Pitfalls & Pro Tips + +| Πρόβλημα | Γιατί Συμβαίνει | Διόρθωση | +|-------|----------------|-----| +| **Garbage characters** | Εικόνα χαμηλής ανάλυσης ή έντονη συμπίεση | Χρησιμοποιήστε πηγή υψηλότερης ποιότητας ή προεπεξεργαστείτε με `Bitmap` (π.χ., αυξήστε την αντίθεση) | +| **Language not recognized** | Δεν έχει ληφθεί το πακέτο γλώσσας | Βεβαιωθείτε ότι `AutoDownloadResources` είναι `true` και το μηχάνημα έχει πρόσβαση στο internet στην πρώτη εκτέλεση | +| **Null `ocrResult.Text`** | Λάθος διαδρομή εικόνας ή το αρχείο λείπει | Επαληθεύστε τη διαδρομή, χρησιμοποιήστε `File.Exists` πριν τη φόρτωση | +| **Performance lag** | Μεγάλο batch εικόνων επεξεργάζεται διαδοχικά | Επαναχρησιμοποιήστε ένα μόνο αντικείμενο `OcrEngine` για πολλαπλές κλήσεις | + +### Bonus: Reading Multiple Files in a Loop + +Αν χρειάζεται να **εκτελέσετε OCR σε αρχεία JPG** σε έναν φάκελο, τυλίξτε τη λογική σε ένα `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Αυτό το μοτίβο κλιμακώνεται καλά για pipelines επεξεργασίας αποδείξεων. + +## Conclusion + +Μόλις ολοκληρώσατε ένα **c# ocr tutorial** που δείχνει πώς να **εξάγετε κείμενο από εικόνα**, **εκτελέσετε OCR σε JPG**, και **φορτώσετε εικόνα για OCR** χρησιμοποιώντας το Aspose.OCR. Το δείγμα προγράμματος επιδεικνύει ολόκληρη τη ροή — από την εγκατάσταση του πακέτου NuGet μέχρι την εκτύπωση του αναγνωρισμένου κυριλλικού κειμένου — ώστε να το αντιγράψετε σε οποιοδήποτε έργο .NET αμέσως. + +Έτοιμοι για το επόμενο βήμα; Δοκιμάστε να αντικαταστήσετε το `OcrLanguage.Russian` με `OcrLanguage.English` για να αναγνωρίζετε αγγλικές αποδείξεις, ή πειραματιστείτε με τις επιλογές `OcrEngine.Settings` (π.χ., `PageSegmentationMode`, `ImagePreprocessing`) για να βελτιώσετε την ακρίβεια. Μπορείτε επίσης να ενσωματώσετε το αποτέλεσμα σε μια βάση δεδομένων, να δημιουργήσετε PDFs ή να το στείλετε σε ένα API μετάφρασης. + +Αν αντιμετωπίσετε προβλήματα, ελέγξτε την τεκμηρίωση του Aspose.OCR ή αφήστε ένα σχόλιο παρακάτω. Καλή προγραμματιστική δουλειά, και οι OCR αποτελέσματά σας να είναι πάντα κρυστάλλινα! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..42f02085 --- /dev/null +++ b/ocr/greek/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR οδηγός που δείχνει πώς να εξάγετε κείμενο, να φορτώσετε εικόνα + για OCR και να γράψετε JSON σε αρχείο χρησιμοποιώντας το Aspose.OCR – οδηγός βήμα‑προς‑βήμα. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: el +og_description: c# OCR tutorial που σας καθοδηγεί πώς να εξάγετε κείμενο από εικόνες, + να φορτώσετε εικόνα για OCR και να γράψετε JSON σε αρχείο χρησιμοποιώντας το Aspose.OCR. +og_title: c# OCR οδηγός – Εξαγωγή κειμένου και εξαγωγή σε JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR tutorial – Εξαγωγή κειμένου από εικόνες και εξαγωγή σε JSON +url: /el/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Εξαγωγή κειμένου από εικόνες και εξαγωγή σε JSON + +Έχετε ποτέ αναρωτηθεί πώς να εξάγετε κείμενο από ένα σαρωμένο τιμολόγιο χωρίς να περάσετε ώρες γράφοντας προσαρμοσμένους αναλυτές; Δεν είστε μόνοι. Σε αυτό το **c# OCR tutorial** θα σας δείξουμε ακριβώς πώς να φορτώσετε μια εικόνα για OCR, να εκτελέσετε τη μηχανή αναγνώρισης και, στη συνέχεια, **να γράψετε JSON σε αρχείο** ώστε να μπορείτε να τροφοδοτήσετε τα δεδομένα σε downstream συστήματα. + +Φανταστείτε ότι έχετε έναν φάκελο με αποδείξεις, καθεμία με όνομα `receipt1.png`, `receipt2.png`, και χρειάζεστε έναν γρήγορο τρόπο να τις μετατρέψετε σε αναζητήσιμα JSON αρχεία. Αυτό είναι το πρόβλημα που θα λύσουμε, και στο τέλος θα έχετε μια έτοιμη για εκτέλεση εφαρμογή console που κάνει ακριβώς αυτό. Χωρίς επιπλέον εξαρτήσεις πέρα από το Aspose.OCR, και χωρίς μαγεία — μόνο σαφή, επαναλήψιμα βήματα. + +> **Τι θα μάθετε** +> - Πώς να **φορτώσετε εικόνα για OCR** χρησιμοποιώντας το Aspose.OCR. +> - Τον καλύτερο τρόπο **πώς να εξάγετε κείμενο** και να λάβετε σκορ εμπιστοσύνης. +> - Μετατροπή του αποτελέσματος OCR σε καλά δομημένο **OCR image to JSON** payload. +> - Ασφαλή **εγγραφή JSON σε αρχείο** και επαλήθευση του αποτελέσματος. + +## Προαπαιτούμενα + +- .NET 6 SDK ή νεότερο (ο κώδικας λειτουργεί και σε .NET Core). +- Visual Studio 2022 ή οποιονδήποτε επεξεργαστή προτιμάτε. +- Πακέτο NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Ένα αρχείο εικόνας (PNG, JPG, BMP) που θέλετε να επεξεργαστείτε — για την επίδειξη θα χρησιμοποιήσουμε το `invoice.png`. + +Αν λείπει κάτι από αυτά, κατεβάστε το SDK από τον ιστότοπο της Microsoft και προσθέστε το πακέτο NuGet μέσω του Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Τώρα που το υπόβαθρο είναι έτοιμο, ας βουτήξουμε στην υλοποίηση. + +## Βήμα 1: c# OCR tutorial – Αρχικοποίηση της μηχανής OCR + +Πριν μπορέσουμε να **φορτώσουμε εικόνα για OCR**, χρειαζόμαστε μια παρουσία της μηχανής που θα οδηγήσει τη διαδικασία αναγνώρισης. Η κλάση `OcrEngine` είναι ελαφριά, αλλά είναι καλή πρακτική να την τυλίγουμε σε ένα μπλοκ `using` ώστε οι πόροι να απελευθερώνονται άμεσα. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Αν σκοπεύετε να επεξεργαστείτε πολλές εικόνες σε batch, επαναχρησιμοποιήστε την ίδια παρουσία `OcrEngine` αντί να δημιουργείτε νέα κάθε φορά. Μειώνει την κατανάλωση μνήμης και επιταχύνει τη διαδικασία. + +## Βήμα 2: Φόρτωση εικόνας για OCR + +Τώρα φορτώνουμε πραγματικά την **εικόνα για OCR**. Το Aspose.OCR υποστηρίζει ποικίλες μορφές, ώστε να μπορείτε να το κατευθύνετε σε PNG, JPEG ή ακόμη και σε πολυ‑σελίδα TIFF. Η μέθοδος `OcrImage.FromFile` διαβάζει το αρχείο και το προετοιμάζει για αναγνώριση. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Γιατί είναι σημαντικό:** Η ξεχωριστή φόρτωση της εικόνας σας επιτρέπει να ελέγξετε τις διαστάσεις, το DPI ή ακόμη και να την προεπεξεργαστείτε (π.χ., δυαδικοποίηση) πριν τη στείλετε στη μηχανή. Αν η εικόνα είναι κατεστραμμένη, το `FromFile` θα ρίξει μια σαφή εξαίρεση, την οποία μπορείτε να πιάσετε και να καταγράψετε. + +## Βήμα 3: Πώς να εξάγετε κείμενο – Εκτέλεση της αναγνώρισης + +Με την εικόνα στα χέρια, μπορούμε τελικά να **εξάγουμε κείμενο** από αυτήν. Η μέθοδος `Recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει όχι μόνο το απλό κείμενο, αλλά και δεδομένα θέσης και σκορ εμπιστοσύνης για κάθε λέξη. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Ορισμένα PDF περιέχουν αόρατα στρώματα κειμένου. Αν τροφοδοτήσετε μια σελίδα PDF που έχει αποδοθεί ως εικόνα, η μηχανή μπορεί να μην δει τίποτα. Σε αυτές τις περιπτώσεις, σκεφτείτε να χρησιμοποιήσετε το Aspose.PDF για να εξάγετε το κρυφό στρώμα πρώτα, και μετά να καταφύγετε στο OCR μόνο όταν χρειάζεται. + +## Βήμα 4: OCR image to JSON – Μετατροπή του αποτελέσματος + +Η κλάση `OcrResult` προσφέρει ένα βολικό βοηθητικό μέθοδο `ToJson()` που σειριοποιεί ολόκληρο το σύνολο αποτελεσμάτων — συμπεριλαμβανομένου του bounding box και του confidence κάθε λέξης — σε μια συμβολοσειρά JSON. Αυτός είναι ο πιο καθαρός τρόπος για να πετύχετε **OCR image to JSON** χωρίς να γράψετε δικό σας serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Αν προτιμάτε ένα προσαρμοσμένο σχήμα, μπορείτε να επαναλάβετε το `ocrResult.Words` και να δημιουργήσετε το δικό σας αντικείμενο, αλλά για τις περισσότερες περιπτώσεις το ενσωματωμένο JSON είναι επαρκές και ήδη καλά δομημένο. + +## Βήμα 5: Εγγραφή JSON σε αρχείο + +Τώρα έρχεται το τελευταίο κομμάτι του παζλ: η αποθήκευση του JSON payload. Η μέθοδος `File.WriteAllText` εξασφαλίζει ότι το αρχείο δημιουργείται (ή αντικαθίσταται) ατομικά. Βεβαιωθείτε ότι ο προορισμός υπάρχει, διαφορετικά θα αντιμετωπίσετε `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* Αν χρειάζεστε UTF‑8 με BOM ή διαφορετική κωδικοποίηση, χρησιμοποιήστε την υπερφόρτωση που δέχεται ένα όρισμα `Encoding`. + +## Βήμα 6: Επαλήθευση του αποτελέσματος + +Ένα γρήγορο `Console.WriteLine` μας λέει ότι η διαδικασία ολοκληρώθηκε επιτυχώς. Μπορείτε επίσης να ανοίξετε το αρχείο JSON σε έναν προβολέα για να επιβεβαιώσετε τη δομή. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Αναμενόμενο απόσπασμα JSON + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +Το JSON περιλαμβάνει τη θέση κάθε λέξης, κάτι που είναι χρήσιμο αν αργότερα θέλετε να επισημάνετε το κείμενο σε UI. + +## Πλήρες Παράδειγμα Λειτουργίας + +Ακολουθεί το πλήρες, έτοιμο για αντιγραφή‑και‑επικόλληση πρόγραμμα. Αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή όπου βρίσκεται η εικόνα σας. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Τρέξτε το πρόγραμμα (`dotnet run` από το φάκελο του έργου) και θα βρείτε το `invoice.json` δίπλα στο αρχικό PNG. + +## Συνηθισμένα Προβλήματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί Συμβαίνει | Λύση | +|----------|----------------|------| +| **FileNotFoundException** κατά τη φόρτωση της εικόνας | Λάθος διαδρομή ή λείπει το αρχείο | Χρησιμοποιήστε `Path.Combine` και ελέγξτε `File.Exists` πριν καλέσετε `FromFile`. | +| **Χαμηλά σκορ εμπιστοσύνης** | Κακή ποιότητα εικόνας, χαμηλό DPI | Προεπεξεργασία με `ocrImage.AdjustContrast` ή αύξηση DPI σε 300. | +| **Κενό αρχείο JSON** | `ocrResult` επιστράφηκε null (η μηχανή απέτυχε) | Επαληθεύστε ότι η μορφή εικόνας υποστηρίζεται και ότι η άδεια (αν υπάρχει) έχει εφαρμοστεί σωστά. | +| **Σ bottleneck απόδοσης σε μεγάλα batch** | Δημιουργία νέου `OcrEngine` σε κάθε επανάληψη | Επαναχρησιμοποιήστε μία ενιαία παρουσία `OcrEngine` για όλο το batch, απελευθερώνοντας τη μόνο στο τέλος. | + +## Επόμενα Βήματα + +Τώρα που έχετε κατακτήσει το **c# OCR tutorial**, ίσως θέλετε να: + +- **Επεξεργαστείτε batch** ολόκληρου φακέλου και να συγκεντρώσετε τα JSON αρχεία σε μια ενιαία βάση δεδομένων. +- **Ενσωματώσετε** το αποτέλεσμα με το Azure Cognitive Search για αναζητήσιμα PDF. +- **Προσθέσετε υποστήριξη γλώσσας** ορίζοντας `ocrEngine.Language = OcrLanguage.Spanish` (ή οποιαδήποτε υποστηριζόμενη γλώσσα). +- **Μετα-επεξεργασία** του JSON για εξαγωγή πινάκων ή ζευγών κλειδί‑τιμή με χρήση regular expressions. + +Κάθε μία από αυτές τις επεκτάσεις βασίζεται στις βασικές έννοιες που καλύψαμε: φόρτωση εικόνων για OCR, εξαγωγή κειμένου, μετατροπή σε JSON και αποθήκευση του JSON στο δίσκο. + +--- + +### Συμπέρασμα + +Σε αυτό το **c# OCR tutorial** περάσαμε από κάθε βήμα που απαιτείται για να **φορτώσουμε εικόνα για OCR**, **να εξάγουμε κείμενο**, να μετατρέψουμε το αποτέλεσμα σε **OCR image to JSON** payload, και τελικά να **γράψουμε JSON σε αρχείο**. Το πλήρες παράδειγμα κώδικα είναι έτοιμο να ενσωματωθεί σε οποιοδήποτε .NET project, και οι εξηγήσεις σας δίνουν το πλαίσιο που χρειάζεστε για να προσαρμόσετε τη λύση σε πραγματικά σενάρια. + +Δοκιμάστε το με το δικό σας σύνολο αποδείξεων ή τιμολογίων — πειραματιστείτε με την προεπεξεργασία εικόνας, δοκιμάστε διαφορετικές γλώσσες, και παρακολουθήστε το JSON να μεγαλώνει. Αν αντιμετωπίσετε δυσκολίες, επιστρέψτε στον πίνακα προβλημάτων ή αφήστε ένα σχόλιο παρακάτω. Καλό προγραμματισμό! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/greek/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..105430e5 --- /dev/null +++ b/ocr/greek/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Μάθετε πώς να κάνετε OCR εικόνας σε C# και να μετατρέψετε JPG σε ePub + χρησιμοποιώντας το Aspose OCR. Αυτός ο οδηγός βήμα‑βήμα δείχνει επίσης πώς να εξάγετε + κείμενο από την εικόνα. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: el +og_description: Πώς να κάνετε OCR εικόνας σε C#; Ακολουθήστε αυτόν τον οδηγό για να + εξάγετε κείμενο από εικόνα και να μετατρέψετε JPG σε ePub με το Aspose OCR. +og_title: Πώς να κάνετε OCR εικόνας σε C# – Μετατροπή JPG σε ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Πώς να κάνετε OCR σε εικόνα σε C# – Μετατροπή JPG σε ePub +url: /el/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να κάνετε OCR εικόνας σε C# – Μετατροπή JPG σε ePub + +Έχετε αναρωτηθεί ποτέ **πώς να κάνετε OCR εικόνας** αρχεία απευθείας από μια εφαρμογή κονσόλας C#; Δεν είστε οι μόνοι. Πολλοί προγραμματιστές συναντούν δυσκολίες όταν πρέπει να εξάγουν κείμενο από μια φωτογραφία και στη συνέχεια να το συσκευάσουν σε ένα αναγνώσιμο βιβλίο ePub. + +Σε αυτό το tutorial θα περάσουμε από ένα πλήρες, εκτελέσιμο παράδειγμα που **εξάγει κείμενο από εικόνα**, αποθηκεύει το αποτέλεσμα ως ePub, και σας δείχνει πώς να **μετατρέψετε JPG σε ePub** χωρίς να φύγετε από το IDE σας. Χωρίς περιττές πληροφορίες, μόνο ο κώδικας που μπορείτε να αντιγράψετε‑επικολλήσετε και να τρέξετε σήμερα. + +## Τι θα μάθετε + +- Πώς να ρυθμίσετε τη μηχανή Aspose OCR σε ένα .NET project. +- Τα ακριβή βήματα για **μετατροπή εικόνας σε epub** χρησιμοποιώντας την επιλογή `OcrSaveFormat.Epub`. +- Συμβουλές για την αντιμετώπιση κοινών παγίδων όπως μη υποστηριζόμενες μορφές εικόνας ή ελλιπείς γραμματοσειρές. +- Ένα πλήρες πρόγραμμα C# που μπορείτε να μεταγλωττίσετε και να εκτελέσετε αμέσως. + +**Prerequisites**: .NET 6 SDK (ή οποιαδήποτε πρόσφατη έκδοση .NET), ένα έγκυρο πακέτο Aspose.OCR NuGet, και ένα αρχείο εικόνας (`input.jpg`) που θέλετε να επεξεργαστείτε. Αν δεν έχετε χρησιμοποιήσει ποτέ το NuGet, απλώς ανοίξτε το Package Manager Console και τρέξτε `Install-Package Aspose.OCR`. + +Έτοιμοι; Ας βουτήξουμε. + +## Step 1 – Πώς να κάνετε OCR εικόνας και να φορτώσετε την πηγή + +Το πρώτο που χρειάζεστε είναι μια παρουσία της μηχανής OCR και μια εικόνα πηγής. Η Aspose OCR το κάνει απλό: δημιουργείτε ένα `OcrEngine`, μετά του παρέχετε ένα `OcrImage` που φορτώνεται από το δίσκο. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Why this matters** – Η αρχικοποίηση της μηχανής μόνο μία φορά διατηρεί τη χρήση μνήμης χαμηλή, και η προφόρτωση της εικόνας σας επιτρέπει να επαληθεύσετε τη διαδρομή του αρχείου πριν ξεκινήσει η βαριά εργασία OCR. + +## Step 2 – Εκτέλεση OCR και εξαγωγή κειμένου από την εικόνα + +Τώρα που η εικόνα είναι στη μνήμη, ζητήστε από τη μηχανή να αναγνωρίσει τους χαρακτήρες. Η μέθοδος `Recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει το ακατέργαστο κείμενο, τις βαθμολογίες εμπιστοσύνης, και ακόμη πληροφορίες διάταξης. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro tip** – Αν χρειάζεστε μόνο το κείμενο και όχι το ePub, μπορείτε να σταματήσετε εδώ. Η ιδιότητα `ocrResult.Text` είναι μια καθαρή συμβολοσειρά που μπορείτε να περάσετε σε οποιοδήποτε άλλο σύστημα. + +## Step 3 – Αποθήκευση του αποτελέσματος ως βιβλίο ePub (Μετατροπή JPG σε ePub) + +Η Aspose OCR μπορεί να σειριοποιήσει άμεσα το αποτέλεσμα OCR σε διάφορες μορφές, συμπεριλαμβανομένου του ePub. Αυτό το βήμα δείχνει ακριβώς πώς να **μετατρέψετε JPG σε ePub** με μία μόνο γραμμή. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Όταν τρέξετε το πρόγραμμα, θα δείτε το εξαγόμενο κείμενο να εκτυπώνεται στην κονσόλα, και ένα νέο αρχείο `book_page.epub` να εμφανίζεται δίπλα στην εικόνα πηγής. Ανοίξτε το σε οποιονδήποτε αναγνώστη ePub (Calibre, Apple Books κ.λπ.) και θα βρείτε το κείμενο OCR όμορφα μορφοποιημένο ως ένα βιβλίο μίας σελίδας. + +### Αναμενόμενο αποτέλεσμα + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Αν το ePub ανοίξει σωστά, συγχαρητήρια—μόλις ολοκληρώσατε ένα πλήρες **c# OCR example** που μετατρέπει ένα JPEG σε ένα φορητό ePub. + +## Step 4 – Συνηθισμένα προβλήματα κατά τη μετατροπή εικόνας σε ePub + +Ακόμη και με μια ισχυρή βιβλιοθήκη, μπορεί να συναντήσετε μερικά εμπόδια. Εδώ είναι ένα γρήγορο FAQ: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **Unsupported image format** | Η Aspose OCR αναμένει μορφές raster (JPG, PNG, BMP). | Μετατρέψτε την εικόνα σε JPG ή PNG πρώτα, π.χ., με `System.Drawing.Image`. | +| **Blank output** | Χαμηλή ποιότητα εικόνας ή έντονη συμπίεση. | Αυξήστε DPI, χρησιμοποιήστε πιο καθαρή σάρωση, ή εφαρμόστε προεπεξεργασία εικόνας (`ocrEngine.Preprocess`). | +| **Missing fonts in ePub** | Ο προεπιλεγμένος δημιουργός ePub χρησιμοποιεί γραμματοσειρές συστήματος που μπορεί να μην ενσωματωθούν. | Ορίστε `ocrEngine.Config.FontsDirectory` σε φάκελο με τα απαιτούμενα αρχεία .ttf. | +| **Large ePub file** | Εικόνες υψηλής ανάλυσης ενσωματώνονται ως ξεχωριστές σελίδες. | Χρησιμοποιήστε `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Η αντιμετώπιση αυτών των ζητημάτων νωρίς σας εξοικονομεί χρόνο από το να κυνηγάτε σφάλματα αργότερα. + +## Step 5 – Επέκταση του παραδείγματος (Πέρα από τα βασικά) + +Τώρα που έχετε μια λειτουργική **μετατροπή εικόνας σε epub** ροή, μπορεί να αναρωτιέστε τι άλλο μπορείτε να κάνετε. Εδώ είναι μερικές ιδέες που μπορείτε να δοκιμάσετε αύριο: + +1. **Batch processing** – Επανάληψη σε φάκελο με JPGs, δημιουργία ενός ePub ανά εικόνα, ή συγχώνευση τους σε ένα πολυ‑κεφαλαίο ePub. +2. **Language selection** – Ορίστε `ocrEngine.Language = Language.English;` ή οποιαδήποτε υποστηριζόμενη γλώσσα για βελτιωμένη ακρίβεια. +3. **Layout preservation** – Χρησιμοποιήστε πρώτα `OcrSaveFormat.Html`, μετά τυλίξτε το HTML σε ePub για πλουσιότερη μορφοποίηση. +4. **Cloud deployment** – Τυλίξτε τον κώδικα σε Azure Function ή AWS Lambda για προσφορά OCR‑to‑ePub ως web service. + +Κάθε μία από αυτές τις επεκτάσεις βασίζεται στη βασική λογική **πώς να κάνετε OCR εικόνας** που καλύψαμε. + +## Full Working Code (Copy‑Paste Ready) + +Παρακάτω βρίσκεται ολόκληρο το πρόγραμμα σε ένα μπλοκ. Αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή του αρχείου εικόνας σας. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Remember** – Το πακέτο NuGet `Aspose.OCR` πρέπει να είναι εγκατεστημένο, και το στοχευόμενο .NET runtime πρέπει να είναι τουλάχιστον .NET 5 για τη βέλτιστη συμβατότητα. + +## Conclusion + +Μόλις καλύψαμε **πώς να κάνετε OCR εικόνας** σε C# και μετατρέψαμε αυτές τις σάρωσες σε καθαρά βιβλία ePub—ουσιαστικά μια **μετατροπή JPG σε ePub** ροή εργασίας που μπορείτε να ενσωματώσετε σε οποιοδήποτε project. Ακολουθώντας τα παραπάνω βήματα θα μπορείτε να **εξάγετε κείμενο από εικόνα**, να αντιμετωπίζετε κοινές περιπτώσεις άκρων, και να επεκτείνετε τη λύση σε εργασίες batch ή υπηρεσίες cloud. + +Αν σας κινεί το ενδιαφέρον το επόμενο λογικό βήμα, δοκιμάστε να αντικαταστήσετε το έξοδο ePub με PDF (`OcrSaveFormat.Pdf`) ή να τροφοδοτήσετε το κείμενο OCR σε ένα API μετάφρασης. Ο ουρανός είναι το όριο μόλις έχετε κατακτήσει τα βασικά. + +Έχετε ερωτήσεις για κάποια συγκεκριμένη μορφή εικόνας, ή θέλετε να δείτε ένα παράδειγμα πολυ‑σελίδων ePub; Αφήστε ένα σχόλιο, και θα χαρώ να βοηθήσω. Καλό coding, και απολαύστε τη μετατροπή εικόνων σε βιβλία! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/greek/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..2e751f9b --- /dev/null +++ b/ocr/greek/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-01-01 +description: Αναγνωρίστε ρωσικό κείμενο άμεσα χρησιμοποιώντας το Aspose OCR C#. Μάθετε + να αναγνωρίζετε κινέζικο κείμενο, να διαβάζετε τον αριθμό σελίδων PDF και να μετατρέπετε + το κείμενο σελίδας PDF σε ένα ενιαίο σεμινάριο. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: el +og_description: Αναγνωρίστε γρήγορα ρωσικό κείμενο χρησιμοποιώντας το Aspose OCR C#. + Αυτό το σεμινάριο καλύπτει επίσης πώς να αναγνωρίσετε κινέζικο κείμενο, να διαβάσετε + τον αριθμό σελίδων PDF και να μετατρέψετε το κείμενο σελίδας PDF. +og_title: Αναγνώριση ρωσικού κειμένου με Aspose OCR C# – Πλήρης Οδηγός +tags: +- Aspose OCR +- C# +- PDF processing +title: Αναγνώριση ρωσικού κειμένου με Aspose OCR C# – Πλήρης Οδηγός PDF πολλαπλών + σελίδων +url: /el/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Αναγνώριση ρωσικού κειμένου με Aspose OCR C# – Πλήρης Εκπαίδευση για Πολυσελίδες PDF + +Κάποτε χρειάστηκε να **αναγνωρίσετε ρωσικό κείμενο** σε ένα PDF που περιέχει πολλαπλές γλώσσες και αναρωτηθήκατε πώς να το κάνετε χωρίς να χρησιμοποιήσετε ξεχωριστά εργαλεία για κάθε σελίδα; Δεν είστε μόνοι. Σε πολλά πραγματικά έργα θα λάβετε ένα ενιαίο PDF που περιέχει Αγγλικά, Ρωσικά και ακόμη και Κινέζικα σε διαφορετικές σελίδες, και θέλετε ένα ενιαίο, καθαρό κείμενο εξόδου. + +Σε αυτόν τον οδηγό θα σας δείξουμε ακριβώς πώς να **αναγνωρίσετε ρωσικό κείμενο** (και άλλες γλώσσες) χρησιμοποιώντας **Aspose OCR C#**, ενώ θα επιδείξουμε επίσης πώς να **διαβάσετε τον αριθμό σελίδων του PDF**, **αναγνωρίσετε κινέζικο κείμενο**, και **μετατρέψετε το κείμενο σελίδας PDF** σε μια βολική εκτύπωση στην κονσόλα. Χωρίς εξωτερικές υπηρεσίες, χωρίς κρυφά βήματα — μόνο καθαρός κώδικας C# που μπορείτε να αντιγράψετε‑επικολλήσετε και να εκτελέσετε. + +> **Τι θα αποκομίσετε** +> * Μια εκτελέσιμη εφαρμογή C# console που επεξεργάζεται ένα PDF πολλαπλών σελίδων. +> * Επιλογή γλώσσας ανά σελίδα (Ρωσικά, Κινέζικα, Αγγλικά). +> * Τεχνικές για ανάγνωση του αριθμού σελίδων του PDF και εξαγωγή του κειμένου κάθε σελίδας. +> * Συμβουλές, παγίδες και επεκτάσεις που μπορείτε να εφαρμόσετε στα δικά σας έργα. + +--- + +## Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης σε .NET Framework 4.7+). +- Πακέτο NuGet **Aspose.OCR for .NET** εγκατεστημένο (`dotnet add package Aspose.OCR`). +- Ένα αρχείο PDF που περιέχει μικτές γλώσσες· για την επίδειξη θα χρησιμοποιήσουμε το `mixed_lang.pdf`. +- Βασική εξοικείωση με εφαρμογές console C#. + +Αν λείπει κάτι από τα παραπάνω, κατεβάστε την πιο πρόσφατη έκδοση του Aspose OCR από το NuGet και τοποθετήστε το PDF σας σε φάκελο προσβάσιμο από το έργο. + +--- + +## Βήμα 1 – Αρχικοποίηση του Μηχανήματος Aspose OCR + +Το πρώτο πράγμα που χρειάζεστε είναι μια παρουσία του `OcrEngine`. Αυτό το αντικείμενο κρατά όλες τις ρυθμίσεις (όπως τη γλώσσα) και εκτελεί την βαριά δουλειά. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Γιατί είναι σημαντικό:** +> Η μηχανή είναι επαναχρησιμοποιήσιμη, ώστε να μην σπαταλάται μνήμη δημιουργώντας νέα παρουσία για κάθε σελίδα. Η επαναχρησιμοποίηση επιτρέπει επίσης την αλλαγή της γλώσσας «επί τόπου», κάτι που είναι κρίσιμο για **αναγνωρίσετε ρωσικό κείμενο** σε μια σελίδα και **αναγνωρίσετε κινέζικο κείμενο** σε άλλη. + +--- + +## Βήμα 2 – Φόρτωση του PDF και Εύρεση του Αριθμού Σελίδων + +Πριν ξεκινήσουμε την αναγνώριση, χρειάζεται το αντικείμενο PDF και ο αριθμός των σελίδων του. Το Aspose OCR αντιμετωπίζει κάθε σελίδα ως `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Συμβουλή:** Αν το PDF είναι μεγάλο, ίσως θέλετε πρώτα να διαβάσετε τον αριθμό σελίδων και να αποφασίσετε αν θα επεξεργαστείτε όλες τις σελίδες ή μόνο ένα υποσύνολο. + +--- + +## Βήμα 3 – Αντιστοίχιση Κάθε Σελίδας στη Επιθυμητή Γλώσσα + +Το Aspose OCR υποστηρίζει πολλές γλώσσες, αλλά πρέπει να του πείτε ποια να χρησιμοποιήσει για κάθε σελίδα. Παρακάτω δημιουργούμε ένα `Dictionary` όπου το κλειδί είναι ο δείκτης σελίδας μηδενικής βάσης. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Γιατί είναι κρίσιμο:** +> Χωρίς αυτόν τον χάρτη, η μηχανή OCR θα προσπαθούσε να χρησιμοποιήσει μία προεπιλεγμένη γλώσσα για όλες τις σελίδες, με αποτέλεσμα ακατανόητο κείμενο για Ρωσικά ή Κινέζικα. Αυτό το βήμα ενεργοποιεί άμεσα την **αναγνωρίσετε ρωσικό κείμενο** και την **αναγνωρίσετε κινέζικο κείμενο** σωστά. + +--- + +## Βήμα 4 – Βρόχος σε Όλες τις Σελίδες, Ορισμός Γλώσσας και Αναγνώριση Κειμένου + +Τώρα διατρέχουμε κάθε σελίδα, αλλάζουμε τη γλώσσα βάσει του χάρτη μας και καλούμε το `Recognize`. Το αποτέλεσμα αποθηκεύεται σε `OcrResult`, από το οποίο εξάγουμε το απλό κείμενο. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Αναμενόμενη Έξοδος στην Κονσόλα + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Εξήγηση της ροής:** +> * Ο βρόχος σέβεται τον **read pdf page count** που εκτυπώσαμε νωρίτερα. +> * Αντικαθιστώντας το `ocrEngine.Settings.Language` σε κάθε επανάληψη, εξασφαλίζουμε ακριβή **αναγνωρίσετε ρωσικό κείμενο** στη σελίδα 2 και **αναγνωρίσετε κινέζικο κείμενο** στη σελίδα 3. +> * Οι εντολές `Console.WriteLine` μετατρέπουν ουσιαστικά το **convert pdf page text** σε μια αναγνώσιμη αλφαριθμητική συμβολοσειρά. + +--- + +## Βήμα 5 – Εκτέλεση, Επαλήθευση και Ρύθμιση + +1. Κατασκευάστε το έργο (`dotnet build`). +2. Εκτελέστε το (`dotnet run`). +3. Συγκρίνετε την έξοδο της κονσόλας με το αρχικό PDF. + +Αν παρατηρήσετε ελλιπή χαρακτήρες, σκεφτείτε: + +- **Αύξηση της ακρίβειας OCR** ορίζοντας `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Παροχή προσαρμοσμένου πακέτου γλώσσας** αν τα ενσωματωμένα λεξικά Ρωσικών ή Κινέζικων είναι ξεπερασμένα. +- **Ρύθμιση DPI** κατά τη φόρτωση του PDF (`OcrImage.FromFile(path, 300)`), που μπορεί να βελτιώσει την αναγνώριση σε σαρώσεις χαμηλής ανάλυσης. + +--- + +## Bonus: Διαχείριση Ακραίων Περιπτώσεων + +### Τι γίνεται αν η γλώσσα μιας σελίδας δεν υπάρχει στον χάρτη; + +Ο κώδικας ήδη επιστρέφει στην Αγγλική, αλλά μπορείτε επίσης να προσθέσετε μια εναλλακτική που καταγράφει προειδοποίηση: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Μπορούμε να επεξεργαστούμε PDF με περισσότερες από τρεις γλώσσες; + +Βεβαίως. Επεκτείνετε το `languageMap` με πρόσθετους δείκτες και υποστηριζόμενες τιμές `OcrLanguage` (π.χ., `OcrLanguage.French`). Ο βρόχος θα διαχειριστεί οποιονδήποτε αριθμό σελίδων. + +### Πώς να εξάγουμε τα αποτελέσματα σε αρχείο αντί για την κονσόλα; + +Αντικαταστήστε τις κλήσεις `Console.WriteLine` με `File.AppendAllText("output.txt", …)` ή χρησιμοποιήστε ένα `StringBuilder` που θα γράψετε μία φορά μετά το βρόχο. + +--- + +## Εικονογραφική Παράσταση + +![παράδειγμα αναγνώρισης ρωσικού κειμένου](/images/recognize-russian-text.png "Στιγμιότυπο οθόνης που δείχνει την έξοδο OCR για ρωσικό κείμενο") + +*Η παραπάνω εικόνα δείχνει την έξοδο στην κονσόλα όταν εκτελείται η **αναγνωρίστε ρωσικό κείμενο** σε ένα PDF μικτής γλώσσας.* + +--- + +## Συμπέρασμα + +Διασχίσαμε ένα πλήρες, ολοκληρωμένο παράδειγμα που δείχνει πώς να **αναγνωρίσετε ρωσικό κείμενο** (και επίσης **αναγνωρίσετε κινέζικο κείμενο**) από ένα PDF πολλαπλών σελίδων χρησιμοποιώντας **Aspose OCR C#**. Διαβάζοντας τον αριθμό σελίδων του PDF, αντιστοιχίζοντας κάθε σελίδα στη σωστή γλώσσα και επαναλαμβάνοντας τη διαδικασία σε όλο το έγγραφο, μπορείτε να **convert pdf page text** σε απλές συμβολοσειρές έτοιμες για αποθήκευση, ευρετηρίαση ή περαιτέρω ανάλυση. + +Συνοπτικά: + +- **Initialize** μια μοναδική `OcrEngine`. +- **Load** το PDF και **read pdf page count**. +- **Map** τις σελίδες σε γλώσσες (Ρωσικά, Κινέζικα κ.λπ.). +- **Iterate**, ορίστε `ocrEngine.Settings.Language`, και **recognize** κάθε σελίδα. +- **Output** ή αποθηκεύστε το εξαγόμενο κείμενο. + +Αισθανθείτε ελεύθεροι να προσαρμόσετε αυτό το μοτίβο σε μεγαλύτερα έγγραφα, να προσθέσετε διαχείριση σφαλμάτων ή να ενσωματώσετε τα αποτελέσματα σε έναν δείκτη αναζήτησης. Η βασική ιδέα — επιλογή γλώσσας ανά σελίδα — παραμένει η ίδια, και είναι αυτό που καθιστά δυνατή την αξιόπιστη **αναγνωρίστε ρωσικό κείμενο** σε PDF μικτής γλώσσας. + +Έχετε διαφορετικό σενάριο, όπως σάρωση εικόνων αντί για PDF; Η ίδια μηχανή λειτουργεί· απλώς αντικαταστήστε το `OcrImage.FromFile` με `OcrImage.FromStream` ή `FromBitmap`. Καλή προγραμματιστική δουλειά, και εύχομαι το OCR σας να είναι πάντα ακριβές! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/ocr-configuration/_index.md b/ocr/hindi/net/ocr-configuration/_index.md index fcdbf9b6..1c582184 100644 --- a/ocr/hindi/net/ocr-configuration/_index.md +++ b/ocr/hindi/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ Aspose.OCR के साथ .NET में OCR छवि पहचान की .NET के लिए Aspose.OCR के साथ शक्तिशाली OCR क्षमताओं को अनलॉक करें। छवियों से पाठ को निर्बाध रूप से निकालें। ### [ओसीआर छवि पहचान में सूची के साथ ओसीआरऑपरेशन](./ocr-operation-with-list/) .NET के लिए Aspose.OCR की क्षमता को अनलॉक करें। सूचियों के साथ OCR छवि पहचान सहजता से निष्पादित करें। अपने अनुप्रयोगों में उत्पादकता और डेटा निष्कर्षण को बढ़ावा दें। +### [Aspose OCR में लाइसेंस कैसे लागू करें – चरण‑दर‑चरण C# गाइड](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aspose OCR के लिए लाइसेंस लागू करने की प्रक्रिया को चरण‑दर‑चरण C# में सीखें। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/hindi/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..92aac31e --- /dev/null +++ b/ocr/hindi/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: C# में Aspose OCR के लिए लाइसेंस कैसे लागू करें। फ़ाइल पढ़ना, Aspose + लाइसेंस सेट करना, MemoryStream का उपयोग करना और लाइसेंस को कुशलतापूर्वक लोड करना + सीखें। +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: hi +og_description: C# में Aspose OCR के लिए लाइसेंस कैसे लागू करें। लाइसेंस फ़ाइल पढ़ने, + Aspose लाइसेंस सेट करने, MemoryStream उपयोग करने और सेटअप की पुष्टि करने के लिए + इस गाइड का पालन करें। +og_title: Aspose OCR में लाइसेंस कैसे लागू करें – पूर्ण C# ट्यूटोरियल +tags: +- Aspose +- OCR +- C# +- Licensing +title: Aspose OCR में लाइसेंस कैसे लागू करें – चरण‑दर‑चरण C# गाइड +url: /hi/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR में लाइसेंस कैसे लागू करें – पूर्ण C# गाइड + +क्या आपने कभी **लाइसेंस कैसे लागू करें** के बारे में सोचा है, बिना अस्पष्ट दस्तावेज़ों के पीछे भागे? आप अकेले नहीं हैं। अधिकांश डेवलपर्स को यही समस्या होती है: वे फ़ाइल पढ़ सकते हैं, लेकिन लाइब्रेरी में सही तरीके से कैसे डालें, नहीं जानते। इस ट्यूटोरियल में हम हर विवरण को कवर करेंगे—डिस्क पर `.lic` फ़ाइल लोड करने से लेकर `SetLicense` को `MemoryStream` के साथ कॉल करने तक। अंत तक आपके पास एक कार्यशील समाधान होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +हम **फ़ाइल कैसे पढ़ें** को सुरक्षित रूप से, **Aspose लाइसेंस कैसे सेट करें** को सही तरीके से, और **MemoryStream** का उपयोग क्यों सबसे साफ़ तरीका है, यह भी कवर करेंगे। यदि आप विभिन्न वातावरणों में **लाइसेंस कैसे लोड करें** के बारे में जिज्ञासु हैं, तो उन टिप्स को भी शामिल किया गया है। कोई बाहरी रेफ़रेंस की आवश्यकता नहीं—सिर्फ शुद्ध, कॉपी‑एंड‑पेस्ट‑रेडी कोड। + +## Prerequisites + +- .NET 6.0 या बाद का (कोड .NET Core और .NET Framework दोनों के साथ काम करता है) +- Aspose.OCR NuGet पैकेज इंस्टॉल किया हुआ (`Install-Package Aspose.OCR`) +- एक वैध `Aspose.OCR.lic` फ़ाइल जो आपके एप्लिकेशन द्वारा पहुँच योग्य हो +- C# और Visual Studio (या आपका पसंदीदा IDE) की बुनियादी जानकारी + +> **Pro tip:** लाइसेंस फ़ाइल को अपने सोर्स कंट्रोल फ़ोल्डर के बाहर रखें ताकि अनजाने में कमिट न हो जाए। + +## Step 1: फ़ाइल कैसे पढ़ें – लाइसेंस बाइट्स लोड करें + +सबसे पहले हमें लाइसेंस फ़ाइल के रॉ बाइट एरे की ज़रूरत है। `File.ReadAllBytes` का उपयोग करना सरल और प्रभावी है, और यदि पाथ गलत है तो यह स्पष्ट अपवाद फेंक देता है। + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Why this matters:** फ़ाइल को सीधे मेमोरी में पढ़ने से किसी भी फ़ाइल‑हैंडल लीक से बचा जा सकता है और बाद में उपयोग के लिए एक साफ़ बाइट एरे मिल जाता है। यह मेथड को कंसोल ऐप, वेब सर्विस या Azure Functions में भी पुन: उपयोग योग्य बनाता है। + +## Step 2: MemoryStream कैसे उपयोग करें – लाइसेंस स्ट्रीम तैयार करें + +Aspose का `License.SetLicense` ओवरलोड एक `Stream` की अपेक्षा करता है। बाइट एरे को `MemoryStream` में रैप करना वह इडियोमैटिक तरीका है जिससे फ़ाइल सिस्टम को फिर से छूने की ज़रूरत नहीं पड़ती। + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Key insight:** `MemoryStream` हल्का होता है और जल्दी डिस्पोज़ हो जाता है। यदि आपको एक से अधिक Aspose प्रोडक्ट लाइसेंस लागू करने की ज़रूरत पड़े, तो आप वही बाइट एरे कई लाइब्रेरीज़ के लिए पुन: उपयोग कर सकते हैं। + +## Step 3: Aspose लाइसेंस सेट करें – “लाइसेंस कैसे लागू करें” का मूल + +अब जब हमारे पास `MemoryStream` है, लाइसेंस लागू करना एक‑लाइनर है। `License` क्लास `Aspose.OCR` नेमस्पेस में स्थित है, इसलिए सुनिश्चित करें कि आपने उचित `using` डायरेक्टिव जोड़ ली है। + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +यदि लाइसेंस अमान्य या समाप्त हो गया है, तो `SetLicense` चुपचाप विफल हो जाएगा, और लाइब्रेरी ट्रायल मोड में चलती रहेगी। पूरी तरह सुनिश्चित होने के लिए, आप किसी ऐसी फीचर को चेक कर सकते हैं जो केवल लाइसेंस्ड संस्करण में उपलब्ध है (जैसे OCR सटीकता सेटिंग्स) या बस बाद में प्रिंट होने वाले पुष्टि संदेश पर भरोसा कर सकते हैं। + +## Step 4: लाइसेंस कैसे लोड करें – सब कुछ एक साथ + +नीचे पूर्ण, चलाने योग्य कंसोल प्रोग्राम दिया गया है जो दिखाता है **लाइसेंस कैसे लोड करें** डिस्क से, `MemoryStream` का उपयोग करके, और यह सत्यापित करता है कि लाइसेंस सफलतापूर्वक लागू हुआ है या नहीं। + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Expected Output + +``` +License applied successfully. You can now perform OCR operations. +``` + +यदि आप यह संदेश देखते हैं, तो लाइब्रेरी पूरी तरह लाइसेंस्ड है और प्रोडक्शन‑ग्रेड OCR कार्यों के लिए तैयार है। + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** लाइसेंस पढ़ते समय | पाथ गलत है या फ़ाइल एप्लिकेशन के साथ डिप्लॉय नहीं हुई | एब्सॉल्यूट पाथ उपयोग करें या लाइसेंस को रिसोर्स के रूप में एम्बेड करें (नीचे “वैकल्पिक लोडिंग” देखें) | +| **License not applied but no error** | `SetLicense` स्ट्रीम खाली या करप्ट होने पर चुपचाप ट्रायल मोड में वापस जाता है | `MemoryStream` बनाने से पहले `licenseData.Length > 0` चेक करें | +| **MemoryStream not disposed** | `using` न रखने से अनमैनेज्ड रिसोर्सेज लिंगर रह जाते हैं | जैसा दिखाया गया है, हमेशा `using` ब्लॉक में स्ट्रीम को रैप करें | + +### Alternative: लाइसेंस को एम्बेडेड रिसोर्स के रूप में एम्बेड करना + +यदि आप अलग `.lic` फ़ाइल शिप नहीं करना चाहते, तो इसे प्रोजेक्ट में जोड़ें, **Build Action** को **Embedded Resource** सेट करें, और इस तरह पढ़ें: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +फिर `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` को कॉल करें और वही `MemoryStream` एप्रोच जारी रखें। + +## Conclusion + +हमने **लाइसेंस कैसे लागू करें** Aspose OCR के लिए शुरू से अंत तक कवर किया: फ़ाइल पढ़ना, `MemoryStream` बनाना, `SetLicense` कॉल करना, और सक्रियता की पुष्टि करना। इन चरणों का पालन करके आप अनुमान को खत्म कर सकते हैं, सामान्य त्रुटियों से बच सकते हैं, और सुनिश्चित कर सकते हैं कि आपका OCR इंजन पूरी‑फ़ीचर मोड में चले। + +अब आप **फ़ाइल कैसे पढ़ें** असिंक्रोनसली हाई‑थ्रूपुट सर्विसेज़ के लिए एक्सप्लोर कर सकते हैं, या लाइसेंस सही ढंग से लोड होने के बाद उन्नत OCR सेटिंग्स में डुबकी लगा सकते हैं। चाहे जो भी हो, पैटर्न वही रहता है—पढ़ें, स्ट्रीम बनाएं, सेट करें, सत्यापित करें। + +यदि आपके पास एज केस के बारे में प्रश्न हैं, जैसे ASP.NET Core वातावरण में लाइसेंस लोड करना या कई Aspose प्रोडक्ट लाइसेंस संभालना, तो नीचे कमेंट करें, और हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/ocr-optimization/_index.md b/ocr/hindi/net/ocr-optimization/_index.md index 84fa05d9..c42383c1 100644 --- a/ocr/hindi/net/ocr-optimization/_index.md +++ b/ocr/hindi/net/ocr-optimization/_index.md @@ -45,14 +45,19 @@ url: /hi/net/ocr-optimization/ ### [ओसीआर छवि पहचान में आयत तैयार करें](./prepare-rectangles/) हमारे व्यापक गाइड के साथ .NET के लिए Aspose.OCR की क्षमता को अनलॉक करें। चरण-दर-चरण जानें कि छवि पहचान के लिए आयत कैसे तैयार करें। निर्बाध OCR एकीकरण के साथ अपने .NET अनुप्रयोगों को उन्नत करें। ### [ओसीआर छवि पहचान में छवि के लिए प्रीप्रोसेसिंग फ़िल्टर](./preprocessing-filters-for-image/) -.NET के लिए Aspose.OCR का अन्वेषण करें। प्रीप्रोसेसिंग फिल्टर के साथ ओसीआर सटीकता को बढ़ावा दें। निर्बाध एकीकरण के लिए अभी डाउनलोड करें। +.NET के लिए Aspose.OCR का अन्वेषण करें। प्रीप्रोसेसिंग फिल्टर के साथ OCR सटीकता को बढ़ावा दें। निर्बाध एकीकरण के लिए अभी डाउनलोड करें। ### [ओसीआर छवि पहचान में वर्तनी जांच के साथ परिणाम सुधार](./result-correction-with-spell-checking/) .NET के लिए Aspose.OCR के साथ OCR सटीकता बढ़ाएँ। वर्तनी को सही करें, शब्दकोशों को अनुकूलित करें और त्रुटि रहित पाठ पहचान को सहजता से प्राप्त करें। ### [मल्टीपेज परिणाम को ओसीआर छवि पहचान में दस्तावेज़ के रूप में सहेजें](./save-multipage-result-as-document/) -.NET के लिए Aspose.OCR की क्षमता को अनलॉक करें। इस व्यापक चरण-दर-चरण मार्गदर्शिका के साथ बहुपृष्ठ OCR परिणामों को दस्तावेज़ के रूप में सहजता से सहेजें। +.NET की क्षमता को अनलॉक करें। इस व्यापक चरण-दर-चरण मार्गदर्शिका के साथ बहुपृष्ठ OCR परिणामों को दस्तावेज़ के रूप में सहजता से सहेजें। +### [C# में Aspose OCR इंजन के साथ बैच OCR कैसे करें](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +एक साथ कई छवियों पर OCR चलाने के लिए Aspose OCR इंजन का उपयोग करके C# में बैच प्रोसेसिंग कैसे सेटअप करें। +### [C# में इमेज OCR को प्रीप्रोसेस करें – Aspose OCR के साथ सटीकता बढ़ाएँ](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +C# में Aspose OCR का उपयोग करके इमेज प्रीप्रोसेसिंग के माध्यम से OCR सटीकता को बढ़ाने के चरणों को जानें। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/hindi/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..db4dbf56 --- /dev/null +++ b/ocr/hindi/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-01-01 +description: C# में Aspose OCR इंजन का उपयोग करके बैच OCR कैसे करें। इमेजों से टेक्स्ट + पहचानना और GPU एक्सेलेरेशन के साथ TIFF फ़ाइलों से टेक्स्ट निकालना सीखें। +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: hi +og_description: Aspose OCR इंजन के साथ C# में बैच OCR कैसे करें। यह गाइड आपको दिखाता + है कि कैसे छवियों से टेक्स्ट को पहचानें और TIFF फ़ाइलों से टेक्स्ट को प्रभावी ढंग + से निकालें। +og_title: C# में बैच OCR कैसे करें – पूर्ण Aspose गाइड +tags: +- OCR +- C# +- Aspose +- GPU +title: C# में Aspose OCR इंजन के साथ बैच OCR कैसे करें +url: /hi/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Aspose OCR Engine के साथ बैच OCR कैसे करें + +क्या आप कभी सोचा है **बैच OCR कैसे करें** जब आपके पास एक फ़ोल्डर में दर्जनों स्कैन किए हुए दस्तावेज़ हों? आप अकेले नहीं हैं—कई डेवलपर्स को एकल‑इमेज पहचान से पूरी कलेक्शन प्रोसेस करने पर वही समस्या आती है। अच्छी खबर यह है कि Aspose OCR इसे बहुत आसान बना देता है, चाहे आप CPU पर चल रहे हों या GPU एक्सेलेरेशन का लाभ ले रहे हों। + +इस ट्यूटोरियल में हम एक पूर्ण, चलाने योग्य उदाहरण के माध्यम से चलेंगे जो **छवियों से टेक्स्ट पहचानता** है और यहाँ तक कि **TIFF फ़ाइलों से टेक्स्ट निकालता** है बड़े पैमाने पर। कोई अस्पष्ट “see the docs” शॉर्टकट नहीं—सिर्फ एक स्व-समाहित समाधान जिसे आप आज ही कॉपी‑पेस्ट करके चला सकते हैं। + +## पूर्वापेक्षाएँ + +* .NET 6.0 या बाद का संस्करण स्थापित हो (कोड .NET 6 को टारगेट करता है, लेकिन .NET 5 भी काम करता है)। +* Aspose.OCR for .NET NuGet पैकेज (CPU और GPU दोनों संस्करण उपलब्ध हैं; अपने हार्डवेयर के अनुसार उपयुक्त संस्करण स्थापित करें)। +* एक फ़ोल्डर जिसमें कुछ नमूना TIFF या PNG फ़ाइलें हों जिन्हें आप प्रोसेस करना चाहते हैं। +* Visual Studio 2022 या कोई भी IDE जो आप पसंद करते हैं। + +> **Pro tip:** यदि आप GPU संस्करण उपयोग करने की योजना बना रहे हैं, तो सुनिश्चित करें कि आपका ग्राफ़िक्स ड्राइवर अपडेटेड है और CUDA 11+ स्थापित है। यदि संगत GPU नहीं मिलता, तो इंजन स्वतः CPU पर स्विच हो जाएगा। + +## चरण 1 – प्रोजेक्ट सेट अप करें और Aspose.OCR स्थापित करें + +### H2: नया कंसोल एप बनाएं और Aspose.OCR जोड़ें + +एक टर्मिनल खोलें (या Visual Studio में Package Manager Console) और चलाएँ: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +यदि आपके पास GPU‑सक्षम लाइसेंस है, तो इसके बजाय GPU पैकेज जोड़ें: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +बस इतना ही—आपका प्रोजेक्ट अब OCR लाइब्रेरी को रेफ़रेंस करता है जिसे हम **बैच OCR** के लिए उपयोग करेंगे। + +## चरण 2 – OCR इंजन को इनिशियलाइज़ करें (CPU या GPU) + +### H2: बैच OCR कैसे करें – इंजन इनिशियलाइज़ेशन + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Why this matters:** `UseGpu` को टॉगल करके, आप Aspose को सबसे तेज़ रास्ता चुनने देते हैं। यदि GPU उपलब्ध नहीं है, तो इंजन चुपचाप CPU पर स्विच हो जाता है, इसलिए आपका बैच जॉब हार्डवेयर की कमी के कारण कभी नहीं क्रैश होगा। + +## चरण 3 – उन फ़ाइलों को इकट्ठा करें जिन्हें आप प्रोसेस करना चाहते हैं + +### H2: छवियों से टेक्स्ट पहचानें – फ़ाइल सूची बनाना + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Edge case note:** यदि आपके पास विभिन्न फ़ॉर्मेट्स का मिश्रण है, तो सर्च पैटर्न को `"*.*"` में बदलें और लूप के अंदर एक्सटेंशन के आधार पर फ़िल्टर करें। इससे बैच लचीला रहता है। + +## चरण 4 – प्रत्येक छवि प्रोसेस करें और प्रीव्यू दिखाएँ + +### H2: TIFF से टेक्स्ट निकालें – फ़ाइलों के माध्यम से लूप + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**What you’ll see:** प्रत्येक TIFF के लिए, कंसोल कुछ इस तरह प्रिंट करेगा: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +## चरण 5 – परिणाम सहेजें (वैकल्पिक लेकिन उपयोगी) + +### H3: OCR आउटपुट को टेक्स्ट फ़ाइलों में सहेजें + +यदि आपको डाउनस्ट्रीम प्रोसेसिंग के लिए पूरा टेक्स्ट चाहिए, तो `foreach` लूप के अंदर यह जोड़ें: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +अब प्रत्येक TIFF के साथ एक `.txt` फ़ाइल जुड़ जाएगी जिसमें पूरा OCR आउटपुट होगा—इंडेक्सिंग, सर्च, या भाषा मॉडल में फीड करने के लिए एकदम उपयुक्त। + +## चरण 6 – डेमो चलाएँ और सत्यापित करें + +1. प्रोजेक्ट बनाएं: `dotnet build`। +2. चलाएँ: `dotnet run --project GpuBatchDemo.csproj`। + +आपको कंसोल में प्रीव्यू लाइन्स प्रिंट होते दिखेंगे, और (यदि आपने वैकल्पिक चरण जोड़ा है) आपके स्रोत इमेज के बगल में `.txt` फ़ाइलों की एक श्रृंखला मिलेगी। + +### H3: सामान्य समस्याएँ और उनके समाधान + +| लक्षण | संभावित कारण | समाधान | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | इमेज बहुत डार्क या कम DPI | इमेज को प्री‑प्रोसेस करें (कॉन्ट्रास्ट बढ़ाएँ, अपस्केल करें) या `ocrEngine.Settings.PreprocessImage = true` सेट करें। | +| **GPU error “CUDA driver version is insufficient”** | ड्राइवर पुराना है | GPU ड्राइवर अपडेट करें, या `UseGpu = false` सेट करके CPU को फोर्स करें। | +| **Exception “File not found”** | Linux/macOS पर गलत पाथ सेपरेटर | `Path.Combine` या फॉरवर्ड स्लैश (`/`) का उपयोग करें। | + +## चरण 7 – स्केलिंग अप (कुछ फ़ाइलों से अधिक) + +जब आप कुछ TIFFs से हजारों तक बढ़ते हैं, तो विचार करें: + +* **Parallel processing:** `foreach` को `Parallel.ForEach` में रैप करें (सुनिश्चित करें कि इंजन इंस्टेंस थ्रेड‑सेफ़ है; अन्यथा प्रत्येक थ्रेड के लिए एक बनाएँ)। +* **Chunked I/O:** RAM समाप्त होने से बचने के लिए बैच में इमेज पढ़ें। +* **Logging:** प्रोग्रेस को लॉग फ़ाइल में लिखें; यह क्रैश के बाद रीस्टार्ट करने में मदद करता है। + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Remember:** GPU मेमोरी साझा की जाती है, इसलिए बहुत अधिक समानांतर GPU जॉब्स चलाने से प्रदर्शन actually धीमा हो सकता है। पहले कुछ थ्रेड्स के साथ टेस्ट करें। + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +इस प्रोग्राम को चलाने से **छवियों से टेक्स्ट पहचानेंगे**, **TIFF से टेक्स्ट निकालेंगे**, और **बैच OCR** को प्रभावी ढंग से प्रदर्शित करेंगे। + +## निष्कर्ष + +अब आपके पास C# में Aspose के OCR इंजन का उपयोग करके **बैच OCR** करने का एक ठोस, एंड‑टू‑एंड उदाहरण है। ट्यूटोरियल ने प्रोजेक्ट सेटअप, GPU एक्सेलेरेशन टॉगल करना, फ़ाइल सूची बनाना, प्रत्येक इमेज प्रोसेस करना, और परिणाम सहेजना—all को कवर किया। चाहे आप TIFF फ़ाइलों से टेक्स्ट निकाल रहे हों या किसी अन्य इमेज फ़ॉर्मेट से, वही पैटर्न लागू होता है—सिर्फ फ़ाइल एक्सटेंशन बदलें। + +अगले कदम के लिए तैयार हैं? OCR आउटपुट को सर्च इंडेक्स के साथ इंटीग्रेट करें, टेक्स्ट को बड़े‑भाषा मॉडल में फीड करें, या समानांतर प्रोसेसिंग के साथ बड़े बैचों से मिनट बचाने का प्रयोग करें। संभावनाएँ असीमित हैं, और आपके पास निर्माण के लिए आधार है। + +कोई प्रश्न हैं या अपने बैच‑OCR ट्रिक्स साझा करना चाहते हैं? नीचे टिप्पणी करें—हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/hindi/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..621819ef --- /dev/null +++ b/ocr/hindi/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: छवि OCR को पूर्व-प्रसंस्करण करके सटीकता बढ़ाएँ। सीखें कि कैसे टेक्स्ट + छवि को पहचाना जाए, OCR की सटीकता में सुधार किया जाए, छवि OCR लोड किया जाए और Aspose + OCR का उपयोग करके OCR टेक्स्ट प्रदर्शित किया जाए। +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: hi +og_description: सटीकता बढ़ाने के लिए इमेज OCR को प्रीप्रोसेस करें। यह गाइड दिखाता + है कि टेक्स्ट इमेज को कैसे पहचानें, इमेज OCR लोड करें, फ़िल्टर लागू करें, और OCR + टेक्स्ट प्रदर्शित करें। +og_title: C# में इमेज OCR को प्रीप्रोसेस करें – Aspose OCR के साथ सटीकता बढ़ाएँ +tags: +- Aspose OCR +- C# +- Image preprocessing +title: C# में इमेज OCR को प्रीप्रोसेस करें – Aspose OCR के साथ सटीकता बढ़ाएँ +url: /hi/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में इमेज OCR का प्रीप्रोसेसिंग – Aspose OCR के साथ सटीकता बढ़ाएँ + +क्या आपने कभी सोचा है कि **preprocess image ocr** कैसे करें ताकि इंजन वास्तव में पेज पर जो है उसे पढ़ सके? आप अकेले नहीं हैं—ज्यादातर डेवलपर्स एक शोरयुक्त, तिरछी स्कैन के साथ काम नहीं कर पाते। अच्छी खबर यह है कि कुछ स्मार्ट प्रीप्रोसेसिंग स्टेप्स एक आपदा‑जैसी इमेज को साफ़, पढ़ने योग्य टेक्स्ट में बदल सकते हैं। + +इस ट्यूटोरियल में हम एक पूर्ण, तैयार‑चलाने‑योग्य उदाहरण के माध्यम से चलेंगे जो **recognize text image** फ़ाइलों को पहचानता है, **improve OCR accuracy** करता है, और अंत में **display OCR text** को कंसोल पर दिखाता है। अंत तक आप जानेंगे कि **load image OCR** एसेट्स को कैसे लोड करें, स्क्यू करेक्शन और डिनॉइज़िंग जैसे फ़िल्टर कैसे जोड़ें, और भरोसेमंद परिणाम कैसे प्राप्त करें—सब Aspose.OCR for .NET के साथ। + +## आप क्या सीखेंगे + +- `OcrEngine` इंस्टेंस कैसे बनाएं और प्रीप्रोसेसिंग फ़िल्टर कॉन्फ़िगर करें। +- स्क्यू करेक्शन और डिनॉइज़ फ़िल्टर **improve OCR accuracy** के लिए क्यों महत्वपूर्ण हैं। +- **load image ocr** फ़ाइलों को लोड करने और पहचान चलाने का सटीक कोड। +- **display OCR text** को यूज़र‑फ़्रेंडली तरीके से कैसे दिखाएँ। +- टिप्स, पिटफ़ॉल्स, और वैकल्पिक ट्वीक जो आप वास्तविक प्रोजेक्ट्स में लागू कर सकते हैं। + +### पूर्वापेक्षाएँ + +- .NET 6+ (या .NET Framework 4.7+) आपके मशीन पर इंस्टॉल हो। +- Aspose.OCR की लाइसेंस (इस डेमो के लिए फ्री ट्रायल चलती है)। +- बेसिक C# ज्ञान—कोई एडवांस्ड ट्रिक नहीं चाहिए। + +यदि इनमें से कोई भी चीज़ अनजान लग रही है, तो रुकें और आवश्यक चीज़ें इंस्टॉल कर लें; बाकी गाइड मानता है कि ये सब तैयार हैं। + +--- + +## इमेज OCR का प्रीप्रोसेसिंग – फ़िल्टर सेट करना + +पहले आपको समझना होगा कि **preprocessing matters** क्यों है। OCR इंजन साफ़, सीधी टेक्स्ट पढ़ने में माहिर होते हैं, लेकिन वास्तविक स्कैन अक्सर रोटेशन, ब्लर, या बैकग्राउंड शोर से ग्रस्त होते हैं। एक साफ़‑सुथरी इमेज को इंजन में फीड करने से सही ट्रांसक्रिप्शन की संभावना बहुत बढ़ जाती है। + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**यहाँ क्या हो रहा है?** +- **Step 1** इंजन बनाता है—Aspose OCR लाइब्रेरी का हृदय। +- **Step 2** दो फ़िल्टर जोड़ता है। `SkewCorrectionFilter` इमेज को क्षैतिज में वापस घुमाता है, जबकि `DenoiseFilter` पिक्सेल‑लेवल शोर को स्मूथ करता है। +- **Step 3** वैकल्पिक है लेकिन उपयोगी; आप अधिकतम कोण को सीमित कर सकते हैं जिससे इंजन पहले से सीधी पेजों पर ओवर‑रोटेशन न करे। +- **Step 4** वह जगह है जहाँ आप **load image OCR** डेटा लोड करते हैं। `YOUR_DIRECTORY/skewed_noisy.jpg` को अपने टेस्ट फ़ाइल के पाथ से बदलें। +- **Step 5** वास्तव में OCR चलाता है और एक `OcrResult` बनाता है। +- **Step 6** कंसोल पर **display OCR text** दिखाता है, जिससे आपको तुरंत फीडबैक मिल जाता है। + +> **Pro tip:** यदि आउटपुट में अभी भी गड़बड़ अक्षर दिख रहे हैं, तो `MaxAngle` बढ़ाएँ या डिनॉइज़ स्टेप से पहले `ContrastFilter` जोड़ें। + +--- + +## टेक्स्ट इमेज को पहचानें – फ़ाइलों को सही ढंग से लोड करना + +एक आम समस्या है **load image ocr** को गलत फ़ॉर्मेट या DPI के साथ लोड करना। Aspose.OCR PNG, JPEG, TIFF, BMP, और यहाँ तक कि PDF‑आधारित इमेज को सपोर्ट करता है। हालांकि, प्रिंटेड डॉक्यूमेंट्स के लिए 300 DPI या उससे अधिक सबसे बेहतर काम करता है। + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +यदि आप मल्टी‑पेज TIFF से निपट रहे हैं, तो आप प्रत्येक फ्रेम पर लूप कर सकते हैं: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**यह OCR सटीकता बढ़ाने के लिए क्यों महत्वपूर्ण है?** उच्च रेज़ोल्यूशन प्रत्येक कैरेक्टर की आकृति को संरक्षित रखता है, जिससे रिकग्नाइज़र को अधिक डेटा पॉइंट्स मिलते हैं। कम DPI वाली इमेज अक्सर मर्ज्ड या टूटे हुए ग्लिफ़्स देती हैं, जिन्हें इंजन गलत समझता है। + +--- + +## OCR सटीकता बढ़ाएँ – फ़िल्टर पैरामीटर समायोजित करना + +डिफ़ॉल्ट फ़िल्टर सेटिंग्स एक अच्छा शुरुआती बिंदु हैं, लेकिन आप इनसे अतिरिक्त प्रदर्शन निकाल सकते हैं। + +| फ़िल्टर | मुख्य गुण | सामान्य मान | समायोजन का समय | +|--------|-----------|------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (डिग्री) | जब इमेज बहुत टिल्टेड हो (30° तक)। | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | बहुत शोरयुक्त स्कैन; `0.8` तक बढ़ाएँ। | +| `ContrastFilter` (वैकल्पिक) | `Level` | `1.2` | कम‑कॉन्ट्रास्ट स्क्रीनशॉट। | + +दोनों को कस्टमाइज़ करने का उदाहरण: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** यदि आपकी इमेज में हैंडराइट नोट्स और प्रिंटेड टेक्स्ट दोनों हैं, तो डिनॉइज़ से पहले `BinarizationFilter` जोड़ना फोरग्राउंड को बैकग्राउंड से अलग करने में मदद कर सकता है। + +--- + +## OCR टेक्स्ट दिखाएँ – आउटपुट फॉर्मेटिंग + +सादा कंसोल आउटपुट डेमो के लिए ठीक है, लेकिन प्रोडक्शन कोड अक्सर साफ़ स्ट्रिंग्स, लाइन ब्रेक्स, या यहाँ तक कि JSON की जरूरत होती है। + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +यदि आपको API रिस्पॉन्स के लिए JSON चाहिए: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +अब आपने **display OCR text** को ऐसे फॉर्मेट में दिखा दिया है जिसे डाउनस्ट्रीम सर्विसेज़ आसानी से उपयोग कर सकती हैं। + +--- + +## पूर्ण कार्यशील उदाहरण – सब कुछ एक साथ रखें + +नीचे अंतिम, स्व-समाहित प्रोग्राम है जिसे आप नई कंसोल प्रोजेक्ट में कॉपी‑पेस्ट कर सकते हैं। इसमें वैकल्पिक फ़िल्टर, हाई‑रेज़ोल्यूशन इमेज लोड, और साफ़ आउटपुट शामिल है। + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**उदाहरण कंसोल आउटपुट (सैंपल):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +यदि आप प्रोग्राम को किसी अलग फ़ाइल के साथ चलाते हैं, तो टेक्स्ट और कॉन्फिडेंस उसी अनुसार बदलेंगे। + +--- + +## सामान्य प्रश्न और उत्तर + +**प्रश्न:** यदि मेरी इमेज पहले से ही सीधी है तो क्या होगा? +**उत्तर:** स्क्यू फ़िल्टर लगभग शून्य कोण का पता लगाएगा और प्रभावी रूप से नॉन‑ऑप बन जाएगा, इसलिए आप इसे सुरक्षित रूप से सक्षम रख सकते हैं। + +**प्रश्न:** क्या Aspose.OCR अंग्रेज़ी के अलावा अन्य भाषाओं को सपोर्ट करता है? +**उत्तर:** हाँ—सिर्फ `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (या कोई भी सपोर्टेड भाषा) को `Recognize` कॉल करने से पहले सेट करें। + +**प्रश्न:** मल्टी‑पेज PDFs को कैसे हैंडल करें? +**उत्तर:** प्रत्येक पेज को इमेज में कन्वर्ट करें (Aspose.PDF यह कर सकता है) और उन्हें क्रमवार उसी `OcrEngine` इंस्टेंस में फीड करें। + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/text-recognition/_index.md b/ocr/hindi/net/text-recognition/_index.md index 0512ee10..3ca0bbb0 100644 --- a/ocr/hindi/net/text-recognition/_index.md +++ b/ocr/hindi/net/text-recognition/_index.md @@ -27,7 +27,7 @@ url: /hi/net/text-recognition/ ## OCR छवि पहचान में JSON के रूप में परिणाम प्राप्त करें -आसानी से JSON प्रारूप में OCR परिणाम प्राप्त करने का तरीका सीखकर .NET के लिए Aspose.OCR की पूरी क्षमता का उपयोग करें। यह चरण-दर-चरण मार्गदर्शिका आपकी छवि पहचान क्षमताओं को बढ़ाने की दिशा में एक सहज यात्रा सुनिश्चित करती है। Aspose.OCR की मजबूत विशेषताओं और उद्योग-अग्रणी तकनीक के साथ अपने एप्लिकेशन की दक्षता बढ़ाएँ। +आसानी से JSON प्रारूप में OCR परिणाम प्राप्त करने का तरीका सीखकर .NET के लिए Aspose.OCR की पूरी क्षमता का उपयोग करें। यह चरण-दर-स्टेप मार्गदर्शिका आपकी छवि पहचान क्षमताओं को बढ़ाने की दिशा में एक सहज यात्रा सुनिश्चित करती है। Aspose.OCR की मजबूत विशेषताओं और उद्योग-अग्रणी तकनीक के साथ अपने एप्लिकेशन की दक्षता बढ़ाएँ। ## ओसीआर छवि पहचान में ओसीआर डिटेक्ट एरिया मोड @@ -39,25 +39,34 @@ Aspose.OCR के साथ .NET में OCR की क्षमता को ## ओसीआर छवि पहचान में तालिका को पहचानें -.NET के लिए Aspose.OCR के साथ OCR छवि पहचान में तालिकाओं को पहचानने की जटिलताओं पर नेविगेट करें। हमारी व्यापक मार्गदर्शिका आपको Aspose.OCR की पूरी क्षमता को अनलॉक करने का अधिकार देती है, जिससे आपके अनुप्रयोगों में सटीक और कुशल तालिका पहचान सुनिश्चित होती है। उद्योग-अग्रणी ओसीआर समाधान के साथ अपनी परियोजनाओं को उन्नत करें। +.NET के लिए Aspose.OCR के साथ OCR छवि पहचान में तालिकाओं को पहचानने की जटिलताओं पर नेविगेट करें। हमारी व्यापक मार्गदर्शिका आपको Aspose.OCR की पूरी क्षमता को अनलॉक करने का अधिकार देती है, जिससे आपके अनुप्रयोगों में सटीक और कुशल तालिका पहचान सुनिश्चित होती है। उद्योग-अग्रणी OCR समाधान के साथ अपनी परियोजनाओं को उन्नत करें। -क्या आप अपने .NET अनुप्रयोगों में क्रांति लाने के लिए तैयार हैं? हमारे टेक्स्ट रिकग्निशन ट्यूटोरियल्स में गोता लगाएँ और छवियों में सटीक और कुशल टेक्स्ट पहचान के लिए Aspose.OCR की शक्ति का उपयोग करें। अभी डाउनलोड करें और उन्नत ओसीआर क्षमताओं की यात्रा पर निकलें। +क्या आप अपने .NET अनुप्रयोगों में क्रांति लाने के लिए तैयार हैं? हमारे टेक्स्ट रिकग्निशन ट्यूटोरियल्स में गोता लगाएँ और छवियों में सटीक और कुशल टेक्स्ट पहचान के लिए Aspose.OCR की शक्ति का उपयोग करें। अभी डाउनलोड करें और उन्नत OCR क्षमताओं की यात्रा पर निकलें। ## पाठ पहचान ट्यूटोरियल ### [ओसीआर छवि पहचान में मान्यता प्राप्त पात्रों के लिए विकल्प प्राप्त करें](./get-choices-for-recognized-characters/) -सटीक चरित्र पहचान के लिए Aspose.OCR के साथ अपने .NET अनुप्रयोगों को बेहतर बनाएं। छवि पहचान में मान्यता प्राप्त पात्रों के विकल्प पुनः प्राप्त करने के लिए हमारी चरण-दर-चरण मार्गदर्शिका का पालन करें। +सटीक चरित्र पहचान के लिए Aspose.OCR के साथ अपने .NET अनुप्रयोगों को बेहतर बनाएं। छवि पहचान में मान्यता प्राप्त पात्रों के विकल्प पुनः प्राप्त करने के लिए हमारी चरण-दर-स्टेप मार्गदर्शिका का पालन करें। ### [ओसीआर छवि पहचान में मान्यता परिणाम प्राप्त करें](./get-recognition-result/) .NET के लिए Aspose.OCR का अन्वेषण करें, जो छवियों में निर्बाध पाठ पहचान के लिए एक शक्तिशाली OCR समाधान है। ### [OCR छवि पहचान में JSON के रूप में परिणाम प्राप्त करें](./get-result-as-json/) -.NET के लिए Aspose.OCR की शक्ति को उजागर करें। JSON प्रारूप में OCR परिणाम सहजता से प्राप्त करना सीखें। इस चरण-दर-चरण मार्गदर्शिका के साथ अपनी छवि पहचान बढ़ाएँ। +.NET के लिए Aspose.OCR की शक्ति को उजागर करें। JSON प्रारूप में OCR परिणाम सहजता से प्राप्त करना सीखें। इस चरण-दर-स्टेप मार्गदर्शिका के साथ अपनी छवि पहचान बढ़ाएँ। ### [ओसीआर छवि पहचान में ओसीआर डिटेक्ट एरिया मोड](./ocr-detect-areas-mode/) -कुशल छवि पाठ पहचान के लिए Aspose.OCR के साथ अपने .NET अनुप्रयोगों को बेहतर बनाएं। सटीक परिणामों के लिए ओसीआर डिटेक्ट एरिया मोड का अन्वेषण करें। +कुशल छवि पाठ पहचान के लिए Aspose.OCR के साथ अपने .NET अनुप्रयोग को बेहतर बनाएं। सटीक परिणामों के लिए ओसीआर डिटेक्ट एरिया मोड का अन्वेषण करें। ### [ओसीआर छवि पहचान में पीडीएफ को पहचानें](./recognize-pdf/) Aspose.OCR के साथ .NET में OCR की क्षमता को अनलॉक करें। पीडीएफ़ से आसानी से टेक्स्ट निकालें। सहज एकीकरण अनुभव के लिए अभी डाउनलोड करें। ### [ओसीआर छवि पहचान में तालिका को पहचानें](./recognize-table/) OCR छवि पहचान में तालिकाओं को पहचानने पर हमारे व्यापक गाइड के साथ .NET के लिए Aspose.OCR की क्षमता को अनलॉक करें। +### [c# OCR ट्यूटोरियल: Aspose OCR के साथ छवि से टेक्स्ट निकालें](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aspose OCR का उपयोग करके छवि से टेक्स्ट निकालने के लिए चरण-दर-स्टेप मार्गदर्शिका। +### [c# OCR ट्यूटोरियल – छवियों से टेक्स्ट निकालें और JSON में निर्यात करें](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aspose OCR का उपयोग करके छवियों से टेक्स्ट निकालें और उसे JSON फ़ॉर्मेट में निर्यात करने की चरण-दर-स्टेप मार्गदर्शिका। +### [C# में OCR छवि कैसे करें – JPG को ePub में बदलें](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +C# में Aspose OCR का उपयोग करके JPG छवि को ePub फ़ॉर्मेट में बदलने की चरण-दर-स्टेप गाइड। +### [Aspose OCR C# के साथ रूसी टेक्स्ट पहचानें – पूर्ण मल्टी‑पेज PDF गाइड](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Aspose OCR का उपयोग करके C# में रूसी भाषा के टेक्स्ट को मल्टी‑पेज PDF में पहचानने की विस्तृत मार्गदर्शिका। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..1e190be4 --- /dev/null +++ b/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR ट्यूटोरियल जो दिखाता है कि इमेज से टेक्स्ट कैसे निकालें, Aspose + OCR का उपयोग करके JPG फ़ाइलों पर OCR कैसे करें। OCR के लिए इमेज लोड करना सीखें और + सटीक परिणाम प्राप्त करें। +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: hi +og_description: c# OCR ट्यूटोरियल जो आपको इमेज से टेक्स्ट निकालने, JPG पर OCR करने, + और Aspose का उपयोग करके OCR के लिए इमेज लोड करने के माध्यम से मार्गदर्शन करता है। +og_title: c# OCR ट्यूटोरियल – Aspose OCR के साथ छवि से टेक्स्ट निकालें +tags: +- OCR +- C# +- Aspose +title: 'c# OCR ट्यूटोरियल: Aspose OCR के साथ इमेज से टेक्स्ट निकालें' +url: /hi/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR ट्यूटोरियल – Aspose OCR के साथ इमेज से टेक्स्ट निकालें + +क्या आप एक **c# ocr ट्यूटोरियल** की तलाश में हैं जो वास्तव में काम करता हो? इस गाइड में हम आपको दिखाएंगे कि कैसे **इमेज से टेक्स्ट निकालें** और **JPG फ़ाइलों पर OCR करें** Aspose.OCR लाइब्रेरी का उपयोग करके। चाहे आप रसीद स्कैनर, दस्तावेज़ आर्काइवर बना रहे हों, या सिर्फ तस्वीरों से टेक्स्ट पढ़ने में जिज्ञासु हों, नीचे दिए गए चरण आपको शून्य से काम करने वाले कोड तक कुछ ही मिनटों में ले जाएंगे। + +हम वह सब कवर करेंगे जो आपको चाहिए: पैकेज इंस्टॉल करना, OCR के लिए इमेज लोड करना, भाषा संसाधनों को कॉन्फ़िगर करना, पहचान इंजन चलाना, और सबसे सामान्य समस्याओं को संभालना। अंत तक आपके पास एक स्व-निहित कंसोल एप्लिकेशन होगा जो पहचाने गए टेक्स्ट को कंसोल में प्रिंट करेगा—कोई बाहरी सेवा आवश्यक नहीं। + +## आपको क्या चाहिए + +- .NET 6.0 या बाद का (कोड .NET Framework 4.6+ के साथ भी काम करता है) +- Visual Studio 2022, VS Code, या कोई भी C# एडिटर जो आप पसंद करते हैं +- एक इमेज फ़ाइल जिसमें रूसी (Cyrillic) टेक्स्ट हो, उदाहरण के लिए `receipt_ru.jpg` +- पहली बार चलाने के लिए इंटरनेट कनेक्शन (Aspose भाषा संसाधनों को ऑटो‑डownload करेगा) + +यदि आपके पास ये सब पहले से हैं, तो बहुत बढ़िया—आइए शुरू करते हैं। + +## चरण 1: Aspose.OCR इंस्टॉल करें और नया प्रोजेक्ट बनाएं + +सबसे पहले, अपने प्रोजेक्ट में Aspose.OCR NuGet पैकेज जोड़ें। अपने सॉल्यूशन फ़ोल्डर में एक टर्मिनल खोलें और चलाएँ: + +```bash +dotnet add package Aspose.OCR +``` + +> **प्रो टिप:** `--version` फ़्लैग का उपयोग करके नवीनतम स्थिर रिलीज़ को लॉक करें, उदाहरण के लिए `Aspose.OCR 23.9.0`। + +अगला, एक साधारण कंसोल प्रोजेक्ट बनाएं (यदि आपके पास पहले से है तो इसे छोड़ दें): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +अब आपके पास एक साफ़ स्लेट है जहाँ आप बाद में पूरा सैंपल कोड पेस्ट कर सकते हैं। + +## चरण 2: OCR के लिए इमेज लोड करें + +इमेज लोड करना किसी भी **c# ocr ट्यूटोरियल** में पहला कार्यात्मक कदम है। Aspose.OCR फ़ाइल पाथ, स्ट्रीम, या यहाँ तक कि `Bitmap` को भी स्वीकार करता है। हमारे उदाहरण के लिए हम इसे सरल रखेंगे और डिस्क से लोड करेंगे: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **यह क्यों महत्वपूर्ण है:** इमेज को स्पष्ट रूप से लोड करके, आप इंजन को एक स्पष्ट लक्ष्य देते हैं, जिससे सटीकता बढ़ती है—विशेषकर जब मल्टी‑पेज PDFs या मिश्रित‑फ़ॉर्मेट इनपुट्स से निपटना हो। + +## चरण 3: भाषा कॉन्फ़िगर करें और ऑटो‑डownload संसाधन सक्षम करें + +Aspose.OCR के साथ भाषा पैक्स आते हैं जिन्हें आवश्यकता पड़ने पर डाउनलोड किया जा सकता है। ऑटो‑डownload सक्षम करने से इंजन कोड पहली बार चलाने पर रूसी भाषा डेटा को प्राप्त करता है। + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **व्याख्या:** +> • `AutoDownloadResources = true` `.dat` फ़ाइलों को मैन्युअल रूप से लाने के चरण को हटा देता है। +> • `Language` सेट करने से इंजन को पता चलता है कि कौन सा कैरेक्टर सेट अपेक्षित है, जिससे पहचान की गति और सटीकता में काफी वृद्धि होती है। + +## चरण 4: OCR चलाएँ और पहचाना गया टेक्स्ट प्राप्त करें + +अब भारी काम होता है। `Recognize` मेथड इमेज को प्रोसेस करता है और निकाले गए स्ट्रिंग को समेटे हुए `OcrResult` ऑब्जेक्ट को रिटर्न करता है। + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +जब आप प्रोग्राम चलाएँगे, तो आपको कुछ इस तरह दिखना चाहिए: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **क्या अपेक्षित है:** सटीक आउटपुट स्रोत इमेज की गुणवत्ता पर निर्भर करता है, लेकिन Aspose के न्यूरल‑नेटवर्क‑आधारित इंजन आमतौर पर साफ़ रसीदों और प्रिंटेड फॉर्म्स को उच्च सटीकता के साथ संभालता है। + +## पूर्ण कार्यशील उदाहरण + +नीचे **पूरा, चलाने योग्य कोड** है जो सभी चरणों को मिलाता है। इसे `Program.cs` में कॉपी‑पेस्ट करें, `YOUR_DIRECTORY` को वास्तविक फ़ोल्डर पाथ से बदलें, और `dotnet run` चलाएँ। + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **टिप:** यदि आपको JPG के अलावा अन्य इमेज फ़ाइलों (PNG, BMP, TIFF) से **टेक्स्ट निकालना** है, तो बस फ़ाइल एक्सटेंशन बदल दें—Aspose सभी को संभालता है। + +## चरण 5: सामान्य समस्याएँ और प्रो टिप्स + +| समस्या | क्यों होता है | समाधान | +|-------|----------------|-----| +| **Garbage characters** | कम‑रिज़ॉल्यूशन इमेज या भारी कम्प्रेशन | उच्च‑गुणवत्ता स्रोत उपयोग करें, या `Bitmap` के साथ प्री‑प्रोसेस करें (जैसे, कंट्रास्ट बढ़ाएँ) | +| **Language not recognized** | भाषा पैक डाउनलोड नहीं हुआ | सुनिश्चित करें `AutoDownloadResources` `true` है और मशीन को पहली बार चलाने पर इंटरनेट एक्सेस है | +| **Null `ocrResult.Text`** | इमेज पाथ गलत या फ़ाइल गायब | पाथ सत्यापित करें, लोड करने से पहले `File.Exists` उपयोग करें | +| **Performance lag** | बड़ी संख्या में इमेज को क्रमिक रूप से प्रोसेस किया जा रहा है | कई कॉल्स में एक ही `OcrEngine` इंस्टेंस को पुन: उपयोग करें | + +### बोनस: लूप में कई फ़ाइलें पढ़ना + +यदि आपको किसी फ़ोल्डर में **JPG फ़ाइलों पर OCR करना** है, तो लॉजिक को `foreach` में रैप करें: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +यह पैटर्न रसीद‑प्रोसेसिंग पाइपलाइन के लिए अच्छी तरह स्केल करता है। + +## निष्कर्ष + +आपने अभी एक **c# ocr ट्यूटोरियल** पूरा किया है जो दिखाता है कि **इमेज से टेक्स्ट निकालें**, **JPG पर OCR करें**, और **OCR के लिए इमेज लोड करें** Aspose.OCR का उपयोग करके। सैंपल प्रोग्राम पूरी प्रक्रिया को दर्शाता है—NuGet पैकेज इंस्टॉल करने से लेकर पहचाने गए Cyrillic टेक्स्ट को प्रिंट करने तक—ताकि आप इसे तुरंत किसी भी .NET प्रोजेक्ट में कॉपी कर सकें। + +अगले कदम के लिए तैयार हैं? `OcrLanguage.Russian` को `OcrLanguage.English` से बदलें ताकि अंग्रेज़ी रसीदें पहचानी जा सकें, या `OcrEngine.Settings` विकल्पों (जैसे, `PageSegmentationMode`, `ImagePreprocessing`) के साथ प्रयोग करके सटीकता को फाइन‑ट्यून करें। आप आउटपुट को डेटाबेस में इंटीग्रेट कर सकते हैं, PDF बना सकते हैं, या इसे ट्रांसलेशन API में फीड कर सकते हैं। + +यदि आपको कोई समस्या आती है, तो Aspose.OCR दस्तावेज़ देखें या नीचे टिप्पणी छोड़ें। कोडिंग का आनंद लें, और आपके OCR परिणाम हमेशा क्रिस्टल‑क्लियर रहें! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..24719523 --- /dev/null +++ b/ocr/hindi/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR ट्यूटोरियल जो दिखाता है कि टेक्स्ट कैसे निकालें, OCR के लिए इमेज + कैसे लोड करें, और Aspose.OCR का उपयोग करके JSON को फ़ाइल में कैसे लिखें – चरण‑दर‑चरण + गाइड। +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: hi +og_description: c# OCR ट्यूटोरियल जो आपको छवियों से टेक्स्ट निकालने, OCR के लिए छवि + लोड करने, और Aspose.OCR का उपयोग करके JSON को फ़ाइल में लिखने की प्रक्रिया दिखाता + है। +og_title: c# OCR ट्यूटोरियल – टेक्स्ट निकालें और JSON में निर्यात करें +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR ट्यूटोरियल – छवियों से टेक्स्ट निकालें और JSON में निर्यात करें +url: /hi/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR ट्यूटोरियल – इमेज से टेक्स्ट निकालें और JSON में एक्सपोर्ट करें + +क्या आपने कभी सोचा है कि स्कैन किए गए इनवॉइस से टेक्स्ट निकालने के लिए कस्टम पार्सर लिखने में घंटों क्यों खर्च करें? आप अकेले नहीं हैं। इस **c# OCR ट्यूटोरियल** में हम आपको दिखाएंगे कि कैसे इमेज को OCR के लिए लोड करें, रिकग्निशन इंजन चलाएँ, और फिर **JSON को फ़ाइल में लिखें** ताकि आप डेटा को डाउनस्ट्रीम सिस्टम में फीड कर सकें। + +कल्पना करें कि आपके पास रसीदों का एक फ़ोल्डर है, जिनके नाम `receipt1.png`, `receipt2.png` हैं, और आपको उन्हें जल्दी से सर्चेबल JSON रिकॉर्ड में बदलने का तरीका चाहिए। यही समस्या हम हल करेंगे, और अंत तक आपके पास एक तैयार‑चलाने‑योग्य कंसोल ऐप होगा जो यही करता है। Aspose.OCR के अलावा कोई अतिरिक्त डिपेंडेंसी नहीं, और कोई जादू नहीं—सिर्फ स्पष्ट, दोहराने योग्य कदम। + +> **आप क्या सीखेंगे** +> - Aspose.OCR का उपयोग करके **इमेज को OCR के लिए लोड** करने का तरीका। +> - **टेक्स्ट निकालने** और कॉन्फिडेंस स्कोर प्राप्त करने का सबसे अच्छा तरीका। +> - OCR परिणाम को एक सुगठित **OCR इमेज से JSON** पेलोड में बदलना। +> - सुरक्षित रूप से **JSON को फ़ाइल में लिखना** और आउटपुट की पुष्टि करना। + +## Prerequisites + +- .NET 6 SDK या बाद का संस्करण (कोड .NET Core पर भी काम करता है)। +- Visual Studio 2022 या आपका पसंदीदा कोई भी एडिटर। +- Aspose.OCR NuGet पैकेज (`Install-Package Aspose.OCR`)। +- एक इमेज फ़ाइल (PNG, JPG, BMP) जिसे आप प्रोसेस करना चाहते हैं – डेमो के लिए हम `invoice.png` का उपयोग करेंगे। + +यदि इनमें से कोई भी चीज़ आपके पास नहीं है, तो Microsoft की साइट से SDK डाउनलोड करें और पैकेज मैनेजर कंसोल के माध्यम से NuGet पैकेज जोड़ें: + +```powershell +Install-Package Aspose.OCR +``` + +अब बुनियादी सेटअप हो गया है, चलिए वास्तविक इम्प्लीमेंटेशन में डुबकी लगाते हैं। + +## Step 1: c# OCR ट्यूटोरियल – OCR इंजन को इनिशियलाइज़ करें + +इमेज को **OCR के लिए लोड** करने से पहले हमें उस इंजन का एक इंस्टेंस चाहिए जो रिकग्निशन प्रोसेस को चलाएगा। `OcrEngine` क्लास हल्का है, लेकिन इसे `using` ब्लॉक में रैप करना अच्छा अभ्यास है ताकि रिसोर्सेज तुरंत रिलीज़ हो जाएँ। + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* यदि आप बैच में कई इमेज प्रोसेस करने वाले हैं, तो हर बार नया `OcrEngine` बनाने के बजाय वही इंस्टेंस री‑यूज़ करें। इससे मेमोरी चर्न कम होता है और गति बढ़ती है। + +## Step 2: Load image for OCR + +अब हम वास्तव में **इमेज को OCR के लिए लोड** करेंगे। Aspose.OCR विभिन्न फॉर्मैट्स को सपोर्ट करता है, इसलिए आप इसे PNG, JPEG, या यहाँ तक कि मल्टी‑पेज TIFF पर भी पॉइंट कर सकते हैं। `OcrImage.FromFile` मेथड फ़ाइल को पढ़ता है और रिकग्निशन के लिए तैयार करता है। + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** इमेज को अलग से लोड करने से आप उसके डाइमेंशन, DPI, या यहाँ तक कि प्री‑प्रोसेसिंग (जैसे बाइनराइज़ेशन) को भी देख सकते हैं, इससे पहले कि आप इसे इंजन को भेजें। यदि इमेज करप्टेड है, तो `FromFile` एक स्पष्ट एक्सेप्शन थ्रो करेगा, जिसे आप कैच करके लॉग कर सकते हैं। + +## Step 3: How to extract text – Run the recognition + +इमेज हाथ में होने पर, अब हम अंततः **टेक्स्ट निकाल सकते** हैं। `Recognize` मेथड एक `OcrResult` ऑब्जेक्ट रिटर्न करता है जिसमें न केवल प्लेन टेक्स्ट बल्कि प्रत्येक शब्द के पोज़िशनल डेटा और कॉन्फिडेंस स्कोर भी होते हैं। + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* कुछ PDFs में इनविज़िबल टेक्स्ट लेयर्स होती हैं। यदि आप PDF पेज को इमेज के रूप में रेंडर करके फीड करते हैं, तो इंजन कुछ नहीं देख पाएगा। ऐसे मामलों में, पहले Aspose.PDF का उपयोग करके हिडन लेयर निकालें, फिर आवश्यकता पड़ने पर OCR करें। + +## Step 4: OCR image to JSON – Convert the result + +`OcrResult` क्लास एक सुविधाजनक `ToJson()` हेल्पर प्रदान करता है जो पूरे रिज़ल्ट सेट—हर शब्द की बाउंडिंग बॉक्स और कॉन्फिडेंस सहित—को JSON स्ट्रिंग में सीरियलाइज़ करता है। यह **OCR इमेज से JSON** प्राप्त करने का सबसे साफ़ तरीका है, बिना अपना सीरियलाइज़र लिखे। + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +यदि आप कस्टम स्कीमा पसंद करते हैं, तो आप `ocrResult.Words` पर इटररेट करके अपना ऑब्जेक्ट बना सकते हैं, लेकिन अधिकांश परिदृश्यों में बिल्ट‑इन JSON पर्याप्त और पहले से ही अच्छी तरह से स्ट्रक्चर्ड होता है। + +## Step 5: Write JSON to file + +अब पज़ल का अंतिम टुकड़ा: JSON पेलोड को स्टोर करना। `File.WriteAllText` मेथड फ़ाइल को एटॉमिकली बनाता (या ओवरराइट करता) है। सुनिश्चित करें कि टार्गेट डायरेक्टरी मौजूद है, नहीं तो आपको `DirectoryNotFoundException` मिलेगा। + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* यदि आपको UTF‑8 with BOM या कोई अलग एन्कोडिंग चाहिए, तो उस ओवरलोड का उपयोग करें जो `Encoding` आर्ग्यूमेंट लेता है। + +## Step 6: Verify the output + +एक त्वरित `Console.WriteLine` हमें बताता है कि प्रोसेस सफलतापूर्वक पूरा हुआ। आप JSON फ़ाइल को किसी व्यूअर में खोलकर स्ट्रक्चर की पुष्टि भी कर सकते हैं। + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON में प्रत्येक शब्द का लोकेशन शामिल है, जो बाद में UI में टेक्स्ट हाइलाइट करने में उपयोगी होता है। + +## Full Working Example + +नीचे पूरा, कॉपी‑एंड‑पेस्ट‑रेडी प्रोग्राम दिया गया है। `YOUR_DIRECTORY` को उस वास्तविक पाथ से बदलें जहाँ आपकी इमेज स्थित है। + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +प्रोग्राम चलाएँ (`dotnet run` प्रोजेक्ट फ़ोल्डर से) और आपको `invoice.json` मूल PNG के साथ ही मिल जाएगा। + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | Path typo or missing file | Use `Path.Combine` and check `File.Exists` before calling `FromFile`. | +| **Low confidence scores** | Poor image quality, low DPI | Pre‑process with `ocrImage.AdjustContrast` or upscale the image to 300 DPI. | +| **JSON file empty** | `ocrResult` returned null (engine failed) | Verify that the image format is supported and that the license (if any) is correctly applied. | +| **Performance bottleneck on large batches** | Re‑creating `OcrEngine` each iteration | Reuse a single `OcrEngine` instance across the batch, disposing only at the end. | + +## Next Steps + +अब जब आप **c# OCR ट्यूटोरियल** में निपुण हो गए हैं, तो आप चाहेंगे: + +- पूरे फ़ोल्डर को **बैच प्रोसेस** करें और सभी JSON फ़ाइलों को एक ही डेटाबेस में एग्रीगेट करें। +- आउटपुट को **Azure Cognitive Search** के साथ इंटीग्रेट करें ताकि सर्चेबल PDFs बन सकें। +- `ocrEngine.Language = OcrLanguage.Spanish` (या कोई भी सपोर्टेड लैंग्वेज) सेट करके **भाषा सपोर्ट** जोड़ें। +- JSON को पोस्ट‑प्रोसेस करके रेगुलर एक्सप्रेशन से टेबल्स या की‑वैल्यू पेयर्स निकालें। + +इनमें से प्रत्येक विस्तार हमारे कोर कॉन्सेप्ट्स—इमेज को OCR के लिए लोड करना, टेक्स्ट निकालना, JSON में बदलना, और उसे डिस्क पर लिखना—पर आधारित है। + +--- + +### Conclusion + +इस **c# OCR ट्यूटोरियल** में हमने हर वह कदम देखा जो **इमेज को OCR के लिए लोड**, **टेक्स्ट निकालने**, परिणाम को **OCR इमेज से JSON** पेलोड में बदलने, और अंत में **JSON को फ़ाइल में लिखने** के लिए आवश्यक है। पूरा कोड उदाहरण किसी भी .NET प्रोजेक्ट में डालने के लिए तैयार है, और व्याख्याएँ आपको वास्तविक दुनिया के परिदृश्यों में समाधान को अनुकूलित करने के लिए संदर्भ देती हैं। + +अपने रसीदों या इनवॉइस के सेट के साथ इसे आज़माएँ—इमेज प्री‑प्रोसेसिंग को ट्यून करें, विभिन्न भाषाओं के साथ प्रयोग करें, और JSON आउटपुट को बढ़ते देखें। यदि कोई समस्या आती है, तो पिटफ़ॉल्स टेबल देखें या नीचे कमेंट करें। Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/hindi/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..0c2d69b5 --- /dev/null +++ b/ocr/hindi/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: C# में इमेज को OCR करने और Aspose OCR का उपयोग करके JPG को ePub में बदलना + सीखें। यह चरण‑दर‑चरण गाइड इमेज से टेक्स्ट निकालने का तरीका भी दिखाता है। +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: hi +og_description: C# में इमेज को OCR कैसे करें? इस गाइड का पालन करके इमेज से टेक्स्ट + निकालें और Aspose OCR के साथ JPG को ePub में बदलें। +og_title: C# में इमेज को OCR कैसे करें – JPG को ePub में बदलें +tags: +- Aspose OCR +- C# +- ePub conversion +title: C# में इमेज को OCR कैसे करें – JPG को ePub में बदलें +url: /hi/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में इमेज को OCR कैसे करें – JPG को ePub में बदलें + +क्या आपने कभी **इमेज को OCR** करने के बारे में सोचा है और इसे सीधे C# कंसोल एप्लिकेशन से करना चाहते हैं? आप अकेले नहीं हैं। कई डेवलपर्स को तब समस्या आती है जब उन्हें फ़ोटो से टेक्स्ट निकालना होता है और फिर उस टेक्स्ट को एक पढ़ने योग्य ePub बुक में पैकेज करना होता है। + +इस ट्यूटोरियल में हम एक पूर्ण, चलने योग्य उदाहरण के माध्यम से **इमेज से टेक्स्ट निकालना**, परिणाम को ePub के रूप में सेव करना, और **JPG को ePub में बदलना** दिखाएंगे, वह भी बिना IDE छोड़े। कोई फालतू बात नहीं, सिर्फ वह कोड जिसे आप आज़ ही कॉपी‑पेस्ट करके चला सकते हैं। + +## आप क्या सीखेंगे + +- .NET प्रोजेक्ट में Aspose OCR इंजन को सेटअप करने का तरीका। +- `OcrSaveFormat.Epub` विकल्प का उपयोग करके **इमेज को epub में बदलने** के सटीक चरण। +- असमर्थित इमेज फ़ॉर्मेट या फ़ॉन्ट्स की कमी जैसी सामान्य समस्याओं को संभालने के टिप्स। +- एक पूरा C# प्रोग्राम जिसे आप अभी कंपाइल और एग्जीक्यूट कर सकते हैं। + +**Prerequisites**: .NET 6 SDK (या कोई भी हालिया .NET संस्करण), एक वैध Aspose.OCR NuGet पैकेज, और एक इमेज फ़ाइल (`input.jpg`) जिसे आप प्रोसेस करना चाहते हैं। यदि आपने पहले कभी NuGet का उपयोग नहीं किया है, तो बस पैकेज मैनेजर कंसोल खोलें और `Install-Package Aspose.OCR` चलाएँ। + +Ready? चलिए शुरू करते हैं। + +## Step 1 – How to OCR Image and Load the Source + +सबसे पहले आपको एक OCR इंजन इंस्टेंस और एक स्रोत इमेज चाहिए। Aspose OCR इसे बहुत आसान बनाता है: आप एक `OcrEngine` बनाते हैं, फिर डिस्क से लोड की गई `OcrImage` को उसमें फीड करते हैं। + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Why this matters** – इंजन को केवल एक बार इनिशियलाइज़ करने से मेमोरी उपयोग कम रहता है, और इमेज को पहले लोड करने से आप फ़ाइल पाथ को वेरिफ़ाई कर सकते हैं इससे पहले कि भारी OCR काम शुरू हो। + +## Step 2 – Run OCR and Extract Text from Image + +अब जब इमेज मेमोरी में है, तो इंजन को कैरेक्टर्स पहचानने को कहें। `Recognize` मेथड एक `OcrResult` ऑब्जेक्ट रिटर्न करता है जिसमें प्लेन टेक्स्ट, कॉन्फिडेंस स्कोर, और लेआउट जानकारी शामिल होती है। + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro tip** – यदि आपको केवल टेक्स्ट चाहिए और ePub नहीं, तो आप यहाँ रुक सकते हैं। `ocrResult.Text` प्रॉपर्टी एक साफ़ स्ट्रिंग है जिसे आप किसी भी अन्य सिस्टम में पाइप कर सकते हैं। + +## Step 3 – Save the Result as an ePub Book (Convert JPG to ePub) + +Aspose OCR सीधे OCR परिणाम को कई फ़ॉर्मेट में सीरियलाइज़ कर सकता है, जिसमें ePub भी शामिल है। यह चरण दिखाता है कि **JPG को ePub में कैसे बदलें** एक ही लाइन में। + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +जब आप प्रोग्राम चलाएँगे, तो आपको कंसोल में निकाला गया टेक्स्ट दिखेगा, और आपके स्रोत इमेज के बगल में एक नया `book_page.epub` फ़ाइल बन जाएगा। इसे किसी भी ePub रीडर (Calibre, Apple Books, आदि) में खोलें और आपको OCR टेक्स्ट एक सिंगल‑पेज बुक के रूप में फॉर्मेटेड मिलेगा। + +### Expected Output + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +यदि ePub सही से खुलता है, तो बधाई—आपने अभी एक पूर्ण **c# OCR example** पूरा कर लिया है जो JPEG को एक पोर्टेबल ePub में बदलता है। + +## Step 4 – Common Issues When Converting Image to ePub + +भले ही लाइब्रेरी मजबूत हो, आप कुछ बाधाओं का सामना कर सकते हैं। यहाँ एक त्वरित FAQ है: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **Unsupported image format** | Aspose OCR रास्टर फ़ॉर्मेट (JPG, PNG, BMP) की अपेक्षा करता है। | इमेज को पहले JPG या PNG में बदलें, उदाहरण के लिए `System.Drawing.Image` का उपयोग करके। | +| **Blank output** | कम इमेज क्वालिटी या अत्यधिक कॉम्प्रेशन। | DPI बढ़ाएँ, साफ़ स्कैन उपयोग करें, या इमेज प्री‑प्रोसेसिंग (`ocrEngine.Preprocess`) लागू करें। | +| **Missing fonts in ePub** | डिफ़ॉल्ट ePub राइटर सिस्टम फ़ॉन्ट्स का उपयोग करता है जो एम्बेड नहीं होते। | `ocrEngine.Config.FontsDirectory` को उन आवश्यक .ttf फ़ाइलों वाले फ़ोल्डर पर सेट करें। | +| **Large ePub file** | हाई‑रेज़ोल्यूशन इमेजेज को अलग‑अलग पेज के रूप में एम्बेड किया जाता है। | `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` का उपयोग करें। | + +इन समस्याओं को शुरुआती चरण में ठीक करने से बाद में बग चेज़ से बचा जा सकता है। + +## Step 5 – Extending the Example (Beyond the Basics) + +अब जब आपके पास एक कार्यशील **convert image to epub** पाइपलाइन है, तो आप सोच सकते हैं कि आगे क्या किया जा सकता है। यहाँ कुछ विचार हैं जिन्हें आप कल आज़मा सकते हैं: + +1. **Batch processing** – JPG की फ़ोल्डर को लूप करें, प्रत्येक इमेज के लिए एक ePub जनरेट करें, या उन्हें मल्टी‑चैप्टर ePub में मर्ज करें। +2. **Language selection** – `ocrEngine.Language = Language.English;` या कोई भी सपोर्टेड लैंग्वेज सेट करें ताकि एक्यूरेसी बढ़े। +3. **Layout preservation** – पहले `OcrSaveFormat.Html` का उपयोग करें, फिर HTML को ePub में रैप करें ताकि फॉर्मेटिंग अधिक रिच हो। +4. **Cloud deployment** – कोड को Azure Function या AWS Lambda में रैप करें ताकि OCR‑to‑ePub को एक वेब सर्विस के रूप में पेश किया जा सके। + +इनमें से प्रत्येक एक्सटेंशन कोर **how to OCR image** लॉजिक पर आधारित है जिसे हमने अभी कवर किया। + +## Full Working Code (Copy‑Paste Ready) + +नीचे पूरा प्रोग्राम एक ब्लॉक में दिया गया है। `YOUR_DIRECTORY` को अपनी इमेज फ़ाइल के वास्तविक पाथ से बदलें। + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Remember** – `Aspose.OCR` NuGet पैकेज इंस्टॉल होना चाहिए, और टार्गेट .NET रनटाइम कम से कम .NET 5 होना चाहिए ताकि बेहतर कंपैटिबिलिटी मिले। + +## Conclusion + +हमने अभी **how to OCR image** फ़ाइलों को C# में कवर किया और उन स्कैन को साफ़ ePub बुक्स में बदल दिया—एक **convert JPG to ePub** वर्कफ़्लो जो आप किसी भी प्रोजेक्ट में डाल सकते हैं। ऊपर दिए गए चरणों का पालन करके आप **extract text from image**, सामान्य एज़ केस को हैंडल करना, और समाधान को बैच जॉब्स या क्लाउड सर्विसेज़ में एक्सटेंड करना सीखेंगे। + +यदि आप अगला लॉजिकल स्टेप लेना चाहते हैं, तो ePub आउटपुट को PDF (`OcrSaveFormat.Pdf`) में बदलें या OCR टेक्स्ट को ट्रांसलेशन API में फीड करें। बेसिक को मास्टर करने के बाद संभावनाएँ अनंत हैं। + +क्या आपके पास किसी विशेष इमेज फ़ॉर्मेट के बारे में सवाल है, या मल्टी‑पेज ePub का उदाहरण देखना चाहते हैं? कमेंट करें, मैं मदद करने में ख़ुशी महसूस करूंगा। Happy coding, और तस्वीरों को किताबों में बदलने का आनंद लें! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/hindi/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..d9a9cb88 --- /dev/null +++ b/ocr/hindi/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: Aspose OCR C# का उपयोग करके रूसी टेक्स्ट को तुरंत पहचानें। एक ही ट्यूटोरियल + में चीनी टेक्स्ट को पहचानना, PDF पेज की संख्या पढ़ना और PDF पेज टेक्स्ट को बदलना + सीखें। +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: hi +og_description: Aspose OCR C# का उपयोग करके रूसी पाठ को जल्दी पहचानें। यह ट्यूटोरियल + यह भी बताता है कि चीनी पाठ को कैसे पहचाना जाए, PDF पृष्ठ गिनती पढ़ें, और PDF पृष्ठ + के पाठ को परिवर्तित करें। +og_title: Aspose OCR C# के साथ रूसी टेक्स्ट को पहचानें – पूर्ण गाइड +tags: +- Aspose OCR +- C# +- PDF processing +title: Aspose OCR C# के साथ रूसी टेक्स्ट को पहचानें – पूर्ण मल्टी‑पेज PDF गाइड +url: /hi/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR C# के साथ रूसी टेक्स्ट पहचानें – पूर्ण मल्टी‑पेज PDF ट्यूटोरियल + +क्या आपको कभी **रूसी टेक्स्ट पहचानने** की ज़रूरत पड़ी है किसी ऐसे PDF में जिसमें कई भाषाएँ मिश्रित हों, और आप यह जानना चाहते थे कि हर पेज के लिए अलग टूल निकालने की ज़रूरत बिना कैसे करें? आप अकेले नहीं हैं। कई वास्तविक‑दुनिया के प्रोजेक्ट्स में आपको एक ही PDF मिलता है जिसमें अंग्रेज़ी, रूसी, और यहाँ‑तक कि चीनी भी अलग‑अलग पेजों पर हो, और आप फिर भी एक साफ़ टेक्स्ट आउटपुट चाहते हैं। + +इस गाइड में हम आपको दिखाएंगे कि **रूसी टेक्स्ट पहचानें** (और अन्य भाषाएँ) **Aspose OCR C#** का उपयोग करके कैसे किया जाए, साथ ही **pdf पेज काउंट पढ़ें**, **चीनी टेक्स्ट पहचानें**, और **pdf पेज टेक्स्ट को** एक उपयोगी कंसोल डम्प में कैसे बदलें। कोई बाहरी सर्विस नहीं, कोई छिपे कदम नहीं—सिर्फ शुद्ध C# कोड जिसे आप कॉपी‑पेस्ट करके चला सकते हैं। + +> **आप क्या सीखेंगे** +> * एक runnable C# कंसोल ऐप जो मल्टी‑पेज PDF प्रोसेस करता है। +> * पेज‑दर‑पेज भाषा चयन (रूसी, चीनी, अंग्रेज़ी)। +> * PDF के पेज काउंट को क्वेरी करने और प्रत्येक पेज का टेक्स्ट निकालने की तकनीक। +> * टिप्स, pitfalls, और एक्सटेंशन जिन्हें आप अपने प्रोजेक्ट्स में लागू कर सकते हैं। + +--- + +## Prerequisites + +- .NET 6.0 या बाद का (कोड .NET Framework 4.7+ पर भी काम करता है)। +- **Aspose.OCR for .NET** NuGet पैकेज इंस्टॉल किया हुआ (`dotnet add package Aspose.OCR`)। +- एक PDF फ़ाइल जिसमें मिश्रित भाषाएँ हों; डेमो के लिए हम `mixed_lang.pdf` का उल्लेख करेंगे। +- C# कंसोल एप्लिकेशन की बेसिक समझ। + +यदि इनमें से कुछ भी आपके पास नहीं है, तो NuGet से नवीनतम Aspose OCR प्राप्त करें और अपनी PDF को प्रोजेक्ट फ़ोल्डर से पहुँच योग्य किसी स्थान पर रखें। + +--- + +## Step 1 – Initialize the Aspose OCR Engine + +सबसे पहली चीज़ जो आपको चाहिए वह है `OcrEngine` की एक instance। यह ऑब्जेक्ट सभी सेटिंग्स (जैसे भाषा) रखता है और भारी काम करता है। + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **क्यों महत्वपूर्ण है:** +> इंजन reusable है, इसलिए हम हर पेज के लिए नई instance बनाकर मेमोरी बर्बाद नहीं करते। इसे पुनः‑उपयोग करने से हम रन‑टाइम पर भाषा बदल सकते हैं, जो **रूसी टेक्स्ट पहचानने** के साथ‑साथ **चीनी टेक्स्ट पहचानने** के लिए आवश्यक है। + +--- + +## Step 2 – Load the PDF and Find Out How Many Pages It Has + +पहले हम PDF ऑब्जेक्ट और उसका पेज काउंट प्राप्त करते हैं। Aspose OCR प्रत्येक पेज को `OcrImage` के रूप में ट्रीट करता है। + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** यदि PDF बहुत बड़ा है, तो पहले काउंट पढ़ें और तय करें कि सभी पेज प्रोसेस करने हैं या सिर्फ एक सबसेट। + +--- + +## Step 3 – Map Each Page to Its Desired Language + +Aspose OCR कई भाषाओं को सपोर्ट करता है, लेकिन आपको प्रत्येक पेज के लिए कौन सी भाषा उपयोग करनी है, यह बताना पड़ता है। नीचे हम एक `Dictionary` बनाते हैं जहाँ की (key) ज़ीरो‑बेस्ड पेज इंडेक्स है। + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **यह क्यों ज़रूरी है:** +> इस मैप के बिना OCR इंजन हर पेज पर एक ही डिफ़ॉल्ट भाषा इस्तेमाल करेगा, जिससे रूसी या चीनी टेक्स्ट गड़बड़ आउटपुट देगा। यह स्टेप सीधे **रूसी टेक्स्ट पहचानने** और **चीनी टेक्स्ट पहचानने** को सही बनाता है। + +--- + +## Step 4 – Loop Through All Pages, Set Language, and Recognize Text + +अब हम प्रत्येक पेज पर इटररेट करते हैं, हमारे मैप के आधार पर भाषा बदलते हैं, और `Recognize` कॉल करते हैं। परिणाम `OcrResult` में स्टोर होता है, जिससे हम प्लेन टेक्स्ट निकालते हैं। + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Expected Console Output + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **फ़्लो की व्याख्या:** +> * लूप पहले **pdf पेज काउंट पढ़ें** को सम्मानित करता है जिसे हमने पहले प्रिंट किया था। +> * प्रत्येक इटरशन में `ocrEngine.Settings.Language` बदलने से हम पेज 2 पर सही **रूसी टेक्स्ट पहचानने** और पेज 3 पर सही **चीनी टेक्स्ट पहचानने** को सुनिश्चित करते हैं। +> * `Console.WriteLine` स्टेटमेंट्स प्रभावी रूप से **pdf पेज टेक्स्ट को** एक मानव‑पठनीय स्ट्रिंग में बदलते हैं। + +--- + +## Step 5 – Run, Verify, and Tweak + +1. प्रोजेक्ट बिल्ड करें (`dotnet build`)। +2. इसे चलाएँ (`dotnet run`)। +3. कंसोल आउटपुट की मूल PDF से तुलना करें। + +यदि आपको कुछ कैरेक्टर मिसिंग लगें, तो विचार करें: + +- `ocrEngine.Settings.DetectTextOrientation = true;` सेट करके **OCR की सटीकता बढ़ाएँ**। +- यदि बिल्ट‑इन रूसी या चीनी डिक्शनरी पुरानी हैं, तो **कस्टम लैंग्वेज पैक** प्रदान करें। +- PDF लोड करते समय DPI समायोजित करें (`OcrImage.FromFile(path, 300)`), जिससे लो‑रेज़ोल्यूशन स्कैन पर पहचान बेहतर हो सकती है। + +--- + +## Bonus: Handling Edge Cases + +### अगर किसी पेज की भाषा मैप में नहीं है तो क्या? + +कोड पहले से ही fallback के तौर पर अंग्रेज़ी इस्तेमाल करता है, लेकिन आप एक warning लॉग भी जोड़ सकते हैं: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### क्या हम तीन से अधिक भाषाओं वाले PDFs प्रोसेस कर सकते हैं? + +बिल्कुल। `languageMap` में अतिरिक्त इंडेक्स और सपोर्टेड `OcrLanguage` वैल्यू (जैसे `OcrLanguage.French`) जोड़ें। लूप किसी भी संख्या में पेजों को संभाल लेगा। + +### परिणाम को कंसोल के बजाय फ़ाइल में कैसे एक्सपोर्ट करें? + +`Console.WriteLine` कॉल्स को `File.AppendAllText("output.txt", …)` से बदलें या एक `StringBuilder` उपयोग करें जिसे लूप के बाद एक बार लिखें। + +--- + +## Image Illustration + +![रूसी टेक्स्ट पहचानने का उदाहरण](/images/recognize-russian-text.png "रूसी टेक्स्ट के OCR आउटपुट का स्क्रीनशॉट") + +*ऊपर की छवि दिखाती है कि **रूसी टेक्स्ट पहचानने** के दौरान मिश्रित‑भाषा PDF में कंसोल आउटपुट कैसा दिखता है।* + +--- + +## Conclusion + +हमने एक पूर्ण, एंड‑टू‑एंड उदाहरण के माध्यम से दिखाया कि **रूसी टेक्स्ट पहचानने** (और साथ ही **चीनी टेक्स्ट पहचानने**) को कैसे किया जाए मल्टी‑पेज PDF से **Aspose OCR C#** का उपयोग करके। PDF के पेज काउंट को पढ़कर, प्रत्येक पेज को उसकी सही भाषा से मैप करके, और डॉक्यूमेंट के माध्यम से लूप चलाकर, आप **pdf पेज टेक्स्ट को** प्लेन स्ट्रिंग्स में बदल सकते हैं जो स्टोरेज, इंडेक्सिंग, या आगे के एनालिसिस के लिए तैयार हों। + +संक्षेप में: + +- **Initialize** एक सिंगल `OcrEngine`। +- **Load** PDF और **pdf पेज काउंट पढ़ें**। +- **Map** पेजों को भाषाओं से (रूसी, चीनी, आदि)। +- **Iterate**, `ocrEngine.Settings.Language` सेट करें, और **recognize** प्रत्येक पेज। +- **Output** या सेव करें निकाले गए टेक्स्ट को। + +इस पैटर्न को बड़े डॉक्यूमेंट्स, एरर हैंडलिंग जोड़ने, या सर्च इंडेक्स में परिणाम प्लग करने के लिए अनुकूलित करें। मुख्य विचार—पेज‑दर‑पेज भाषा चयन—वही रहता है, और यही मिश्रित‑भाषा PDFs में विश्वसनीय **रूसी टेक्स्ट पहचानने** को संभव बनाता है। + +अगर आपका केस अलग है, जैसे PDFs के बजाय इमेज स्कैन करना, तो वही इंजन काम करेगा; बस `OcrImage.FromFile` को `OcrImage.FromStream` या `FromBitmap` से बदलें। Happy coding, और आपका OCR हमेशा सटीक रहे! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/ocr-configuration/_index.md b/ocr/hongkong/net/ocr-configuration/_index.md index 7a560151..16c366b7 100644 --- a/ocr/hongkong/net/ocr-configuration/_index.md +++ b/ocr/hongkong/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ url: /zh-hant/net/ocr-configuration/ 使用 Aspose.OCR for .NET 解鎖強大的 OCR 功能。將文字無縫地從圖像中提取。 ### [OCR 影像辨識中的 OCROperation 與列表](./ocr-operation-with-list/) 釋放 Aspose.OCR for .NET 的潛能。使用清單輕鬆執行 OCR 影像辨識。提高應用程式的生產力和資料提取。 +### [如何在 Aspose OCR 中套用授權 – 步驟式 C# 指南](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +了解如何在 Aspose OCR 中使用 C# 設定授權,以確保您的應用程式合法運行。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/hongkong/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..31c85039 --- /dev/null +++ b/ocr/hongkong/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-01-01 +description: 如何在 C# 中為 Aspose OCR 套用授權。學習如何讀取檔案、設定 Aspose 授權、使用 MemoryStream 以及有效載入授權。 +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: zh-hant +og_description: 如何在 C# 中為 Aspose OCR 套用授權。請依照本指南讀取授權檔案、設定 Aspose 授權、使用 MemoryStream + 並驗證設定。 +og_title: 如何在 Aspose OCR 中套用授權 – 完整 C# 教程 +tags: +- Aspose +- OCR +- C# +- Licensing +title: 如何在 Aspose OCR 中套用授權 – 步驟式 C# 指南 +url: /zh-hant/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 Aspose OCR 中套用授權 – 完整 C# 指南 + +有沒有想過 **如何套用授權** 給 Aspose OCR,卻找不到清楚的文件說明?你並不孤單。大多數開發者都會遇到同樣的問題:雖然能讀取授權檔案,但不知道該怎麼正確地把它傳給函式庫。本教學將逐步說明每個細節——從磁碟載入 `.lic` 檔案到使用 `MemoryStream` 呼叫 `SetLicense`。完成後,你將擁有一個可直接放入任何 .NET 專案的完整解決方案。 + +我們也會說明 **如何安全讀取檔案**、正確的 **設定 Aspose 授權** 方法,以及為什麼使用 **MemoryStream** 是最乾淨的做法。如果你想了解 **如何在不同環境載入授權**,相關技巧也會一併提供。全程不需要外部參考,只要複製貼上即可使用的程式碼。 + +## 前置條件 + +- .NET 6.0 或更新版本(此程式碼同時支援 .NET Core 與 .NET Framework) +- 已安裝 Aspose.OCR NuGet 套件(`Install-Package Aspose.OCR`) +- 有效的 `Aspose.OCR.lic` 檔案,放置於應用程式可存取的位置 +- 具備基本的 C# 與 Visual Studio(或其他 IDE)使用經驗 + +> **專業小技巧:** 請將授權檔案放在來源控制目錄之外,以免不小心提交。 + +## 步驟 1:如何讀取檔案 – 載入授權位元組 + +首先,我們需要取得授權檔案的原始位元組陣列。使用 `File.ReadAllBytes` 既簡單又高效,且若路徑錯誤會自動拋出明確的例外。 + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**為什麼這很重要:** 直接將檔案讀入記憶體可避免檔案句柄泄漏,並取得乾淨的位元組陣列供後續使用。此方法亦可在主控台程式、Web 服務或 Azure Functions 中重複使用。 + +## 步驟 2:如何使用 MemoryStream – 準備授權串流 + +Aspose 的 `License.SetLicense` 重載需要一個 `Stream`。將位元組陣列包裝成 `MemoryStream` 是滿足此需求的慣用做法,且不必再次觸碰檔案系統。 + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**關鍵觀念:** `MemoryStream` 輕量且能快速釋放。若日後需要為多個 Aspose 產品套用授權,也可以直接重用同一個位元組陣列。 + +## 步驟 3:設定 Aspose 授權 – 「如何套用授權」的核心 + +有了 `MemoryStream` 後,套用授權只需要一行程式碼。`License` 類別位於 `Aspose.OCR` 命名空間,請確保已加入正確的 `using` 指示。 + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +如果授權無效或已過期,`SetLicense` 會靜默失敗,函式庫將以試用模式運作。為了絕對確認,你可以檢查只有授權版才有的功能(例如 OCR 精度設定),或直接依賴稍後會印出的確認訊息。 + +## 步驟 4:如何載入授權 – 完整範例 + +以下是一個完整、可執行的主控台程式,示範 **如何從磁碟載入授權**、使用 `MemoryStream`,以及驗證授權是否成功套用。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### 預期輸出 + +``` +License applied successfully. You can now perform OCR operations. +``` + +若看到此訊息,代表函式庫已完整授權,可投入正式環境的 OCR 任務。 + +## 常見陷阱與避免方式 + +| 問題 | 為什麼會發生 | 解決方式 | +|------|--------------|----------| +| **FileNotFoundException** 讀取授權檔時 | 路徑錯誤或檔案未隨應用程式部署 | 使用絕對路徑或將授權檔嵌入為資源(見下方「替代載入」) | +| **授權未套用但沒有錯誤** | `SetLicense` 若收到空的或損壞的串流,會靜默回退至試用模式 | 在建立 `MemoryStream` 前確認 `licenseData.Length > 0` | +| **MemoryStream 未釋放** | 忘記使用 `using` 會留下未管理的資源 | 如範例所示,務必將串流包在 `using` 區塊內 | + +### 替代方案:將授權檔嵌入為內嵌資源 + +如果不想額外部署 `.lic` 檔案,可將它加入專案,將 **Build Action** 設為 **Embedded Resource**,然後這樣讀取: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +之後呼叫 `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")`,再以相同的 `MemoryStream` 方式繼續。 + +## 結論 + +我們已完整說明 **如何在 Aspose OCR 中套用授權**:從讀取檔案、建立 `MemoryStream`、呼叫 `SetLicense` 到驗證啟用。遵循這些步驟即可消除猜測、避免常見錯誤,確保 OCR 引擎以完整功能模式運作。 + +接下來,你可以探索 **如何非同步讀取檔案** 以因應高吞吐量服務,或在成功載入授權後深入調校進階 OCR 設定。無論哪種情境,流程始終如一——讀取、串流、設定、驗證。 + +對於在 ASP.NET Core 環境載入授權、或同時處理多個 Aspose 產品授權等邊緣案例有疑問嗎?歡迎在下方留言,祝開發順利! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/ocr-optimization/_index.md b/ocr/hongkong/net/ocr-optimization/_index.md index 05c42f92..8b393d2b 100644 --- a/ocr/hongkong/net/ocr-optimization/_index.md +++ b/ocr/hongkong/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ url: /zh-hant/net/ocr-optimization/ 使用 Aspose.OCR for .NET 提高 OCR 準確性。輕鬆修正拼字、自訂字典並實現無錯誤的文字辨識。 ### [在 OCR 影像辨識中將多頁結果儲存為文檔](./save-multipage-result-as-document/) 釋放 Aspose.OCR for .NET 的潛能。透過這份全面的分步指南,輕鬆將多頁 OCR 結果儲存為文件。 +### [在 C# 中使用 Aspose OCR 引擎批次 OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +使用 Aspose OCR 引擎在 C# 中批次處理 OCR 任務,提高效率與準確性。 +### [在 C# 中預處理圖像 OCR – 提升 Aspose OCR 準確度](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/hongkong/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..8efe6a09 --- /dev/null +++ b/ocr/hongkong/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-01-01 +description: 如何在 C# 中使用 Aspose OCR 引擎批量執行 OCR。學習如何從圖像辨識文字,並利用 GPU 加速從 TIFF 檔案提取文字。 +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: zh-hant +og_description: 如何在 C# 中使用 Aspose OCR 引擎批量 OCR。本指南將向您展示如何從圖像識別文字,並高效地從 TIFF 檔案中提取文字。 +og_title: 如何在 C# 中批量 OCR – 完整 Aspose 指南 +tags: +- OCR +- C# +- Aspose +- GPU +title: 如何在 C# 中使用 Aspose OCR 引擎批量執行 OCR +url: /zh-hant/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 Aspose OCR 引擎批量 OCR + +有沒有想過 **如何批量 OCR**,當你有數十份掃描文件放在資料夾中時?你並不孤單——許多開發者在從單張影像辨識轉向處理整個集合時會卡在這裡。好消息是 Aspose OCR 讓這變得輕而易舉,無論你是使用 CPU 還是利用 GPU 加速。 + +在本教學中,我們將逐步說明一個完整且可執行的範例,該範例 **從影像辨識文字**,甚至 **批量從 TIFF 檔案提取文字**。不會有模糊的「請參閱文件」捷徑——只提供一個可自行複製貼上並立即執行的完整解決方案。 + +## 前置條件 + +* 已安裝 .NET 6.0 或更新版本(程式碼以 .NET 6 為目標,但 .NET 5 亦可運作)。 +* Aspose.OCR for .NET NuGet 套件(提供 CPU 與 GPU 版本;請安裝與硬體相符的版本)。 +* 一個資料夾,內含幾個想要處理的範例 TIFF 或 PNG 檔案。 +* Visual Studio 2022 或任何你偏好的 IDE。 + +> **專業提示:** 若你打算使用 GPU 版,請確認顯示卡驅動程式已更新至最新,且已安裝 CUDA 11 以上。若找不到相容的 GPU,引擎會自動回退至 CPU。 + +## 第一步 – 設定專案並安裝 Aspose.OCR + +### H2: 建立新 Console 應用程式並加入 Aspose.OCR + +在終端機(或 Visual Studio 的套件管理員主控台)中開啟並執行: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +如果你擁有 GPU 授權,請改為加入 GPU 套件: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +就這樣——你的專案現在已參考我們將用於 **批量 OCR** 的 OCR 函式庫。 + +## 第二步 – 初始化 OCR 引擎(CPU 或 GPU) + +### H2: 如何批量 OCR – 引擎初始化 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**為何重要:** 透過切換 `UseGpu`,讓 Aspose 決定最快的路徑。若 GPU 不可用,引擎會靜默切換回 CPU,避免因硬體缺失而導致批次作業崩潰。 + +## 第三步 – 收集要處理的檔案 + +### H2: 從影像辨識文字 – 建立檔案清單 + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**邊緣情況說明:** 若有混合格式,請將搜尋模式改為 `"*.*"`,並在迴圈內依副檔名過濾。這樣可保持批次的彈性。 + +## 第四步 – 處理每張影像並顯示預覽 + +### H2: 從 TIFF 提取文字 – 逐檔迴圈 + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**你會看到的結果:** 每個 TIFF,主控台會印出類似以下內容: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +此預覽可確認批次成功執行,且無需手動開啟每個檔案。 + +## 第五步 – 儲存結果(可選但實用) + +### H3: 將 OCR 輸出持久化為文字檔 + +若需要完整文字供後續處理,請在 `foreach` 迴圈內加入以下程式碼: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +現在每個 TIFF 會產生相對應的 `.txt` 檔,內含完整的 OCR 輸出——非常適合索引、搜尋或餵入語言模型。 + +## 第六步 – 執行示範並驗證 + +1. 建置專案:`dotnet build`。 +2. 執行:`dotnet run --project GpuBatchDemo.csproj`。 + +你應該會在主控台看到預覽行,且(若已加入可選步驟)會在來源影像旁產生一系列 `.txt` 檔案。 + +### H3: 常見問題與解決方法 + +| 症狀 | 可能原因 | 解決方式 | +|---------|--------------|-----| +| **`ocrResult.Text` 為空** | 影像過暗或 DPI 太低 | 預先處理影像(提升對比、放大)或設定 `ocrEngine.Settings.PreprocessImage = true`。 | +| **GPU 錯誤「CUDA driver version is insufficient」** | 驅動程式過舊 | 更新 GPU 驅動程式,或設定 `UseGpu = false` 強制使用 CPU。 | +| **例外「File not found」** | Linux/macOS 上的路徑分隔符錯誤 | 使用 `Path.Combine` 或正斜線 (`/`)。 | + +## 第七步 – 擴展規模(超過少量檔案) + +當你從少量 TIFF 擴展到數千個時,請考慮: + +* **平行處理:** 將 `foreach` 包裝在 `Parallel.ForEach` 中(確保引擎實例是執行緒安全的;否則每個執行緒建立一個實例)。 +* **分塊 I/O:** 分批讀取影像,以免耗盡記憶體。 +* **記錄日誌:** 將進度寫入日誌檔案;有助於在崩潰後恢復。 + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **請記住:** GPU 記憶體是共享的,過多平行 GPU 工作會實際降低效能。請先以少量執行緒測試。 + +## 完整可執行範例(可直接複製貼上) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +執行此程式將 **從影像辨識文字**、**從 TIFF 提取文字**,並有效示範 **如何批量 OCR**。 + +--- + +## 結論 + +現在你已擁有一個完整、端對端的 **如何在 C# 中使用 Aspose OCR 引擎批量 OCR** 範例。教學涵蓋了從設定專案、切換 GPU 加速、建立檔案清單、處理每張影像,到持久化結果的全部步驟。無論是從 TIFF 檔案或其他影像格式提取文字,都可套用相同模式——只需更換檔案副檔名。 + +準備好進一步了嗎?試著將 OCR 輸出整合至搜尋索引、餵入大型語言模型,或透過平行處理縮短大量批次的處理時間。沒有任何限制,而你已具備了構建的基礎。 + +有任何問題或想分享自己的批量 OCR 技巧嗎?在下方留言吧——祝編程愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/hongkong/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..8e483aa1 --- /dev/null +++ b/ocr/hongkong/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-01-01 +description: 預處理圖像 OCR 以提升準確度。了解如何辨識文字圖像、提升 OCR 準確度、載入圖像 OCR 並使用 Aspose OCR 顯示 OCR + 文字。 +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: zh-hant +og_description: 預處理圖像 OCR 以提升準確度。本指南展示如何辨識文字圖像、載入圖像 OCR、套用濾鏡,以及顯示 OCR 文字。 +og_title: 預處理圖像 OCR(C#)– 使用 Aspose OCR 提升準確度 +tags: +- Aspose OCR +- C# +- Image preprocessing +title: 在 C# 中預處理圖像 OCR – 使用 Aspose OCR 提升準確度 +url: /zh-hant/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – 使用 Aspose OCR 提升準確度 + +有沒有想過如何 **preprocess image ocr**,讓引擎真的能讀取頁面上的內容?你並不孤單——大多數開發者在面對雜訊多、傾斜的掃描圖時都會卡住。好消息是,只要採取幾個聰明的前處理步驟,就能把災難級的影像變成乾淨、可讀的文字。 + +在本教學中,我們將逐步示範一個完整、可直接執行的範例,能 **recognize text image** 檔案、**improve OCR accuracy**,最後在主控台 **display OCR text**。完成後,你將了解如何 **load image OCR** 資源、套用如傾斜校正與去噪的過濾器,並取得可靠的結果——全部使用 Aspose.OCR for .NET。 + +## 你將學會 + +- 如何建立 `OcrEngine` 實例並設定前處理過濾器。 +- 為何傾斜校正與去噪過濾器對 **improve OCR accuracy** 如此重要。 +- 取得 **load image ocr** 檔案並執行辨識的完整程式碼。 +- 如何以使用者友善的方式 **display OCR text**。 +- 在實務專案中可套用的技巧、常見陷阱與可選的微調。 + +### 前置條件 + +- 在機器上安裝 .NET 6+(或 .NET Framework 4.7+)。 +- Aspose.OCR 授權(免費試用版即可執行此示範)。 +- 基本的 C# 知識——不需要進階技巧。 + +如果上述項目有不熟悉的,請先暫停並安裝缺少的部分;其餘指南假設這些已就緒。 + +--- + +## preprocess image ocr – 設定過濾器 + +首先你需要了解 **why preprocessing matters**。OCR 引擎擅長讀取清晰、正面的文字,但實際掃描常會出現旋轉、模糊或背景雜訊。將清理過的影像提供給引擎,能大幅提升正確辨識的機率。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**這段程式碼在做什麼?** +- **Step 1** 建立引擎——Aspose OCR 函式庫的核心。 +- **Step 2** 加入兩個過濾器。`SkewCorrectionFilter` 會將影像旋轉回水平,`DenoiseFilter` 則平滑像素層級的雜訊。 +- **Step 3** 為可選但實用的設定;你可以限制引擎嘗試校正的最大角度,避免對已經水平的頁面過度旋轉。 +- **Step 4** 為 **load image OCR** 資料的步驟。請將 `YOUR_DIRECTORY/skewed_noisy.jpg` 替換為測試檔案的路徑。 +- **Step 5** 真正執行 OCR,產生 `OcrResult`。 +- **Step 6** 在主控台 **display OCR text**,即時取得回饋。 + +> **專業提示:** 若發現輸出仍有亂碼,請嘗試提高 `MaxAngle`,或在去噪步驟前加入 `ContrastFilter`。 + +## recognize text image – 正確載入檔案 + +常見的絆腳石是以錯誤的格式或 DPI **load image ocr**。Aspose.OCR 支援 PNG、JPEG、TIFF、BMP,甚至 PDF 形式的影像。然而,對於列印文件,300 DPI 或更高的解析度效果最佳。 + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +若處理多頁 TIFF,可迴圈遍歷每個影格: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**為何這對 improve OCR accuracy 很重要?** 較高的解析度保留每個字元的形狀,提供辨識器更多資料點。低 DPI 影像常會導致字形合併或斷裂,讓引擎誤判。 + +## improve OCR accuracy – 微調過濾器參數 + +預設的過濾器設定已相當不錯,但仍可進一步優化效能。 + +| 過濾器 | 關鍵屬性 | 典型值 | 調整時機 | +|--------|----------|--------|----------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | 影像傾斜嚴重(最高可達 30°)的情況。 | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | 噪點非常多的掃描;可提升至 `0.8`。 | +| `ContrastFilter` (optional) | `Level` | `1.2` | 對比度低的螢幕截圖。 | + +以下為同時自訂兩者的範例: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**邊緣情況:** 若影像同時包含手寫筆記與印刷文字,建議在去噪前加入 `BinarizationFilter`,以將前景與背景分離。 + +## display OCR text – 格式化輸出 + +純文字主控台輸出適合示範,但正式程式碼通常需要清理過的字串、換行,甚至 JSON。 + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +若 API 回應需要 JSON: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +現在你已以可供下游服務使用的格式 **display OCR text**。 + +## 完整範例 – 整合所有步驟 + +以下是最終的完整程式,你可以直接複製貼上到新的主控台專案中。它包含可選過濾器、高解析度影像載入,以及乾淨的輸出。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**預期的主控台輸出(範例):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +若使用不同檔案執行程式,文字與信心指標會相應變化。 + +## 常見問答 + +**問:如果我的影像已經是水平的呢?** +**答:** 傾斜過濾器會偵測到接近零度的角度,實際上不會執行任何操作,因此可以安全保留此過濾器。 + +**問:Aspose.OCR 是否支援英語以外的語言?** +**答:** 支援——只要在呼叫 `Recognize` 前設定 `ocrEngine.Settings.Language = OcrLanguage.Spanish;`(或任何支援的語言)。 + +**問:如何處理多頁 PDF?** +**答:** 先將每頁轉為影像(可使用 Aspose.PDF),再逐一送入同一個 `OcrEngine` 實例。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/text-recognition/_index.md b/ocr/hongkong/net/text-recognition/_index.md index 948767d8..b1e0401d 100644 --- a/ocr/hongkong/net/text-recognition/_index.md +++ b/ocr/hongkong/net/text-recognition/_index.md @@ -55,9 +55,17 @@ url: /zh-hant/net/text-recognition/ 使用 Aspose.OCR 釋放 .NET 中 OCR 的潛力。輕鬆從 PDF 中提取文字。立即下載以獲得無縫整合體驗。 ### [OCR影像辨識中的辨識表](./recognize-table/) 透過我們關於 OCR 影像辨識中表格辨識的綜合指南,釋放 Aspose.OCR for .NET 的潛力。 +### [C# OCR 教程:使用 Aspose OCR 從圖像提取文字](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +學習如何使用 Aspose OCR 在 C# 中從圖像中提取文字,提升您的文字辨識應用程式。 +### [C# OCR 教程 – 從圖像提取文字並匯出為 JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +學習如何使用 Aspose OCR 在 C# 中從圖像提取文字並匯出為 JSON,提升您的文字辨識應用程式。 +### [如何在 C# 中 OCR 圖像 – 將 JPG 轉換為 ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +學習使用 Aspose OCR 在 C# 中將 JPG 圖像轉換為 ePub 電子書,提升您的內容轉換能力。 +### [使用 Aspose OCR C# 識別俄文文字 – 完整多頁 PDF 指南](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +使用 Aspose OCR 在 C# 中識別俄文文字,提供完整的多頁 PDF 處理指南。 {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..cca34bc1 --- /dev/null +++ b/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR 教學示範如何從圖片提取文字,使用 Aspose OCR 對 JPG 檔案執行 OCR。學習載入圖片進行 OCR 並獲得精確結果。 +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: zh-hant +og_description: c# OCR 教學,逐步指導您從圖像提取文字、對 JPG 進行 OCR,以及使用 Aspose 載入圖像進行 OCR。 +og_title: c# OCR 教學 – 使用 Aspose OCR 從圖像提取文字 +tags: +- OCR +- C# +- Aspose +title: C# OCR 教學:使用 Aspose OCR 從圖像提取文字 +url: /zh-hant/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 教學 – 使用 Aspose OCR 從圖像提取文字 + +在尋找一個實際可用的 **c# ocr tutorial** 嗎?在本指南中,我們將示範如何使用 Aspose.OCR 函式庫 **從圖像提取文字** 以及 **對 JPG 檔案執行 OCR**。無論你是要建立收據掃描器、文件歸檔系統,或只是對從圖片讀取文字感到好奇,以下步驟都能讓你在幾分鐘內從零開始得到可執行的程式碼。 + +我們會涵蓋所有必需的內容:安裝套件、載入圖像以進行 OCR、設定語言資源、執行辨識引擎,以及處理最常見的陷阱。完成後,你將擁有一個獨立的主控台應用程式,能將辨識出的文字印在螢幕上——不需要任何外部服務。 + +## 需要的環境 + +- .NET 6.0 或更新版本(此程式碼亦相容 .NET Framework 4.6+) +- Visual Studio 2022、VS Code,或任何你偏好的 C# 編輯器 +- 含有俄文(西里爾字母)文字的圖像檔,例如 `receipt_ru.jpg` +- 首次執行時需要網路連線(Aspose 會自動下載語言資源) + +如果你已經具備上述條件,太好了——讓我們開始吧。 + +## 步驟 1:安裝 Aspose.OCR 並建立新專案 + +首先,將 Aspose.OCR NuGet 套件加入你的專案。於解決方案資料夾開啟終端機並執行: + +```bash +dotnet add package Aspose.OCR +``` + +> **小技巧:** 使用 `--version` 參數鎖定最新的穩定版,例如 `Aspose.OCR 23.9.0`。 + +接著,建立一個簡易的主控台專案(如果你已經有專案可略過此步): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +現在你有了一個乾淨的起點,之後可以貼上完整的範例程式碼。 + +## 步驟 2:載入圖像以進行 OCR + +載入圖像是任何 **c# ocr tutorial** 的第一個功能步驟。Aspose.OCR 支援檔案路徑、串流,甚至 `Bitmap`。在本例中,我們直接從磁碟載入: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **為什麼重要:** 明確載入圖像可讓引擎有清晰的目標,提升辨識精度——尤其在處理多頁 PDF 或混合格式輸入時。 + +## 步驟 3:設定語言與自動下載資源 + +Aspose.OCR 隨附可按需下載的語言套件。啟用自動下載可確保引擎在首次執行程式碼時取得俄文語言資料。 + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **說明:** +> • `AutoDownloadResources = true` 省去手動取得 `.dat` 檔案的步驟。 +> • 設定 `Language` 告訴引擎預期的字元集,顯著提升辨識速度與精度。 + +## 步驟 4:執行 OCR 並取得辨識文字 + +現在開始執行繁重的工作。`Recognize` 方法會處理圖像,並回傳包含擷取字串的 `OcrResult` 物件。 + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +執行程式後,你應該會看到類似以下的輸出: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **預期結果:** 具體輸出取決於原始圖像的品質,但 Aspose 基於神經網路的引擎通常能高忠實度處理乾淨的收據與印刷表單。 + +## 完整可執行範例 + +以下是結合所有步驟的 **完整、可執行程式碼**。將其複製貼上至 `Program.cs`,將 `YOUR_DIRECTORY` 替換為實際的資料夾路徑,然後執行 `dotnet run`。 + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **提示:** 若需 **從圖像提取文字** 的檔案類型不是 JPG(如 PNG、BMP、TIFF),只要更改副檔名即可——Aspose 都能處理。 + +## 步驟 5:常見問題與小技巧 + +| 問題 | 發生原因 | 解決方式 | +|-------|----------------|-----| +| **雜訊字元** | 低解析度圖像或過度壓縮 | 使用較高品質的來源,或使用 `Bitmap` 進行前處理(例如提升對比度) | +| **語言未被辨識** | 語言套件未下載 | 確保 `AutoDownloadResources` 為 `true`,且首次執行時機器具備網路連線 | +| **`ocrResult.Text` 為 null** | 圖像路徑不正確或檔案遺失 | 驗證路徑,載入前使用 `File.Exists` 檢查 | +| **效能延遲** | 大量圖像依序處理 | 在多次呼叫間重複使用同一個 `OcrEngine` 實例 | + +### 加分項目:在迴圈中讀取多個檔案 + +如果需要對資料夾中的 **JPG 檔案執行 OCR**,可將邏輯包在 `foreach` 迴圈中: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +此模式可順利擴展至收據處理流程。 + +## 結論 + +你剛完成了一個 **c# ocr tutorial**,示範如何使用 Aspose.OCR **從圖像提取文字**、**對 JPG 執行 OCR**,以及 **載入圖像以進行 OCR**。此範例程式展示了完整流程——從安裝 NuGet 套件到印出辨識出的西里爾文字——讓你可以立即將其複製到任何 .NET 專案中。 + +準備好進一步了嗎?試著將 `OcrLanguage.Russian` 換成 `OcrLanguage.English` 以辨識英文收據,或嘗試 `OcrEngine.Settings` 的各項設定(例如 `PageSegmentationMode`、`ImagePreprocessing`)來微調精度。你也可以將輸出整合至資料庫、產生 PDF,或送入翻譯 API。 + +如果遇到任何問題,請參考 Aspose.OCR 文件或在下方留言。祝開發愉快,願你的 OCR 結果永遠清晰如水晶! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..b148d808 --- /dev/null +++ b/ocr/hongkong/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR 教學,示範如何提取文字、載入影像進行 OCR,並使用 Aspose.OCR 將 JSON 寫入檔案 – 步驟說明指南. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: zh-hant +og_description: c# OCR 教學,逐步說明如何從圖像中提取文字、載入圖像以進行 OCR,並使用 Aspose.OCR 將 JSON 寫入檔案。 +og_title: c# OCR 教學 – 提取文字並匯出為 JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR 教學 – 從圖像提取文字並匯出為 JSON +url: /zh-hant/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 教學 – 從圖像提取文字並匯出為 JSON + +有沒有想過如何從掃描的發票中提取文字,而不需要花上數小時編寫自訂解析器?你並不孤單。在本 **c# OCR 教學** 中,我們將向你展示如何載入圖像進行 OCR、執行辨識引擎,然後 **將 JSON 寫入檔案**,以便將資料輸入下游系統。 + +想像你有一個收據資料夾,每個檔案分別命名為 `receipt1.png`、`receipt2.png`,而你需要一個快速的方法將它們轉換為可搜尋的 JSON 記錄。這就是我們要解決的問題,完成後你將擁有一個即時可執行的主控台應用程式,能做到上述功能。除了 Aspose.OCR 之外不需要額外的相依性,也沒有魔法—只有清晰、可重現的步驟。 + +> **你將學會** +> - 如何使用 Aspose.OCR **載入圖像進行 OCR**。 +> - 最佳的 **提取文字** 方法以及取得信心分數。 +> - 將 OCR 結果轉換為結構良好的 **OCR 圖像轉 JSON** 負載。 +> - 安全地 **將 JSON 寫入檔案** 並驗證輸出。 + +## 前置條件 + +- .NET 6 SDK 或更新版本(此程式碼亦可在 .NET Core 上執行)。 +- Visual Studio 2022 或任何你偏好的編輯器。 +- Aspose.OCR NuGet 套件(`Install-Package Aspose.OCR`)。 +- 想要處理的圖像檔案(PNG、JPG、BMP)— 示範中我們使用 `invoice.png`。 + +如果缺少上述任一項,請從 Microsoft 網站取得 SDK,並透過套件管理員主控台加入 NuGet 套件: + +```powershell +Install-Package Aspose.OCR +``` + +現在基礎已就緒,讓我們深入實作細節。 + +## 步驟 1:c# OCR 教學 – 初始化 OCR 引擎 + +在我們能 **載入圖像進行 OCR** 之前,需要先建立一個驅動辨識流程的引擎實例。`OcrEngine` 類別相當輕量,但將其包在 `using` 區塊中是一個好習慣,能即時釋放資源。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*小技巧:* 若計畫批次處理大量圖像,請重複使用同一個 `OcrEngine` 實例,而非每次都新建。這樣可減少記憶體開銷並提升速度。 + +## 步驟 2:載入圖像進行 OCR + +現在我們真正 **載入圖像進行 OCR**。Aspose.OCR 支援多種格式,你可以指向 PNG、JPEG,甚至是多頁 TIFF。`OcrImage.FromFile` 方法會讀取檔案並為辨識做準備。 + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **為什麼這很重要:** 單獨載入圖像讓你可以檢查其尺寸、DPI,或在送入引擎前先行前處理(例如二值化)。若圖像損毀,`FromFile` 會拋出明確的例外,你可以捕捉並記錄。 + +## 步驟 3:提取文字 – 執行辨識 + +手上有圖像後,我們終於可以 **提取文字** 了。`Recognize` 方法會回傳一個 `OcrResult` 物件,內含純文字、每個字的座標資料以及信心分數。 + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*邊緣情況:* 某些 PDF 包含隱藏的文字層。若將 PDF 頁面渲染成圖像後送入,引擎可能什麼也看不到。此時可先使用 Aspose.PDF 抽取隱藏層,必要時再使用 OCR。 + +## 步驟 4:OCR 圖像轉 JSON – 轉換結果 + +`OcrResult` 類別提供便利的 `ToJson()` 輔助方法,將整個結果集合(包括每個字的邊框與信心)序列化為 JSON 字串。這是實現 **OCR 圖像轉 JSON** 而不需自行編寫序列化程式的最簡潔方式。 + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +如果你偏好自訂結構,可遍歷 `ocrResult.Words` 並自行組成物件,但在大多數情況下內建的 JSON 已足夠且結構良好。 + +## 步驟 5:將 JSON 寫入檔案 + +現在來到最後一步:持久化 JSON 負載。`File.WriteAllText` 方法可確保檔案以原子方式建立(或覆寫)。請確認目標目錄已存在,否則會拋出 `DirectoryNotFoundException`。 + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*提示:* 若需要帶 BOM 的 UTF‑8 或其他編碼,請使用接受 `Encoding` 參數的重載方法。 + +## 步驟 6:驗證輸出 + +簡單的 `Console.WriteLine` 可告訴我們流程已成功完成。你也可以在檢視器中開啟 JSON 檔案以確認結構。 + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### 預期的 JSON 片段 + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON 包含每個字的位置信息,若之後想在 UI 中高亮顯示文字會很方便。 + +## 完整範例程式 + +以下是完整、可直接複製貼上的程式。將 `YOUR_DIRECTORY` 替換為實際存放圖像的路徑。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +執行程式(在專案資料夾中執行 `dotnet run`),你會在原始 PNG 旁看到 `invoice.json`。 + +## 常見陷阱與避免方法 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | 路徑拼寫錯誤或檔案遺失 | 使用 `Path.Combine` 並在呼叫 `FromFile` 前檢查 `File.Exists`。 | +| **Low confidence scores** | 圖像品質差、DPI 低 | 使用 `ocrImage.AdjustContrast` 前處理,或將圖像升級至 300 DPI。 | +| **JSON file empty** | `ocrResult` 回傳 null(引擎失敗) | 確認圖像格式受支援,且授權(若有)正確套用。 | +| **Performance bottleneck on large batches** | 每次迭代重新建立 `OcrEngine` | 在整個批次中重複使用單一 `OcrEngine` 實例,僅在最後釋放。 | + +## 往後步驟 + +既然你已掌握 **c# OCR 教學**,接下來可能想要: + +- **批次處理** 整個資料夾,並將 JSON 檔案彙總至單一資料庫。 +- **整合** 輸出至 Azure Cognitive Search,以實現可搜尋的 PDF。 +- **新增語言支援**,透過設定 `ocrEngine.Language = OcrLanguage.Spanish`(或任何支援的語言)。 +- **後處理** JSON,使用正規表達式抽取表格或鍵值對。 + +上述每個延伸功能皆建立在我們所討論的核心概念上:載入圖像進行 OCR、提取文字、轉換為 JSON,並將 JSON 寫入磁碟。 + +### 結論 + +在本 **c# OCR 教學** 中,我們逐步說明了 **載入圖像進行 OCR**、**提取文字**、將結果轉換為 **OCR 圖像轉 JSON** 負載,最後 **將 JSON 寫入檔案** 的全部流程。完整的程式碼範例可直接嵌入任何 .NET 專案,說明則提供了你在實務情境中調整解決方案所需的背景。 + +試著使用你自己的收據或發票來執行——調整圖像前處理、嘗試不同語言,觀察 JSON 輸出如何變化。若遇到任何問題,請回顧陷阱表或在下方留言。祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/hongkong/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..b8a4cdd9 --- /dev/null +++ b/ocr/hongkong/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-01-01 +description: 學習如何在 C# 中使用 Aspose OCR 進行光學字符辨識,並將 JPG 轉換為 ePub。本分步指南亦說明如何從圖像中提取文字。 +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: zh-hant +og_description: 如何在 C# 中進行 OCR 圖像辨識?跟隨本指南從圖像提取文字,並使用 Aspose OCR 將 JPG 轉換為 ePub。 +og_title: 如何在 C# 中對圖像進行 OCR – 將 JPG 轉換為 ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: 如何在 C# 中對圖片進行 OCR – 將 JPG 轉換為 ePub +url: /zh-hant/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中 OCR 圖像 – 將 JPG 轉換為 ePub + +有沒有想過直接在 C# 主控台應用程式中 **OCR 圖像** 檔案?你並不是唯一有此疑問的人。許多開發者在需要從照片中提取文字,並將文字打包成可閱讀的 ePub 書籍時,常會卡關。 + +在本教學中,我們將逐步示範一個完整且可執行的範例,該範例 **從圖像中提取文字**,將結果儲存為 ePub,並向你展示如何 **將 JPG 轉換為 ePub**,全程不離開 IDE。沒有多餘的說明,只有你今天就能複製貼上並執行的程式碼。 + +## 你將學會 + +- 如何在 .NET 專案中設定 Aspose OCR 引擎。 +- 使用 `OcrSaveFormat.Epub` 選項將 **圖像轉換為 ePub** 的完整步驟。 +- 處理常見問題的技巧,例如不支援的圖像格式或缺少字型。 +- 一個完整的 C# 程式,你現在就可以編譯並執行。 + +**先決條件**:.NET 6 SDK(或任何較新的 .NET 版本)、有效的 Aspose.OCR NuGet 套件,以及你想處理的圖像檔案(`input.jpg`)。如果你從未使用過 NuGet,只需開啟套件管理員主控台並執行 `Install-Package Aspose.OCR`。 + +準備好了嗎?讓我們開始吧。 + +## 第一步 – 如何 OCR 圖像並載入來源 + +你首先需要的是一個 OCR 引擎實例以及來源圖像。Aspose OCR 讓這個過程變得簡單:先建立一個 `OcrEngine`,再將從磁碟載入的 `OcrImage` 提供給它。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **為什麼這很重要** – 只初始化一次引擎可降低記憶體使用,且提前載入圖像讓你在執行繁重的 OCR 前驗證檔案路徑。 + +## 第二步 – 執行 OCR 並從圖像中提取文字 + +現在圖像已載入記憶體,請引擎辨識字元。`Recognize` 方法會回傳一個 `OcrResult` 物件,內含純文字、信心分數,甚至版面資訊。 + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **專業提示** – 如果你只需要文字而不需要 ePub,可以在此停止。`ocrResult.Text` 屬性是一個乾淨的字串,你可以將它傳遞給任何其他系統。 + +## 第三步 – 將結果儲存為 ePub 書籍(將 JPG 轉換為 ePub) + +Aspose OCR 可以直接將 OCR 結果序列化為多種格式,包括 ePub。此步驟示範如何在一行程式碼中 **將 JPG 轉換為 ePub**。 + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +執行程式後,你會在主控台看到提取的文字,且會在來源圖像旁產生一個新的 `book_page.epub` 檔案。使用任何 ePub 閱讀器(如 Calibre、Apple Books 等)開啟,你會看到 OCR 文字已整齊排版為單頁書籍。 + +### 預期輸出 + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +如果 ePub 能正確開啟,恭喜你——你剛完成了一個完整的 **c# OCR 範例**,將 JPEG 轉換為可攜式 ePub。 + +## 第四步 – 轉換圖像為 ePub 時的常見問題 + +即使使用穩定的函式庫,你仍可能遇到一些障礙。以下是快速 FAQ: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **不支援的圖像格式** | Aspose OCR 需要光柵格式(JPG、PNG、BMP)。 | 先將圖像轉換為 JPG 或 PNG,例如使用 `System.Drawing.Image`。 | +| **空白輸出** | 圖像品質低或壓縮過度。 | 提高 DPI、使用更清晰的掃描,或套用圖像前處理 (`ocrEngine.Preprocess`)。 | +| **ePub 中缺少字型** | 預設的 ePub 寫入器使用系統字型,可能未嵌入。 | 將 `ocrEngine.Config.FontsDirectory` 設為包含所需 .ttf 檔案的資料夾。 | +| **ePub 檔案過大** | 高解析度圖像會作為獨立頁面嵌入。 | 使用 `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`。 | + +提前處理這些問題,可避免日後追蹤錯誤。 + +## 第五步 – 擴充範例(進階應用) + +現在你已擁有可運作的 **將圖像轉換為 ePub** 流程,可能會想知道還能做什麼。以下是幾個你明天可以嘗試的想法: + +1. **批次處理** – 迭代資料夾中的 JPG,為每張圖像產生一個 ePub,或將它們合併為多章節的 ePub。 +2. **語言選擇** – 設定 `ocrEngine.Language = Language.English;` 或任何支援的語言以提升準確度。 +3. **版面保留** – 先使用 `OcrSaveFormat.Html`,再將 HTML 包裝成 ePub,以獲得更豐富的格式。 +4. **雲端部署** – 將程式碼包裝成 Azure Function 或 AWS Lambda,提供 OCR‑to‑ePub 的 Web 服務。 + +上述每項擴充皆建立在我們剛剛討論的核心 **如何 OCR 圖像** 邏輯之上。 + +## 完整可執行程式碼(即貼即用) + +以下是一整段程式碼。將 `YOUR_DIRECTORY` 替換為你的圖像檔案實際路徑。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **請記得** – 必須已安裝 `Aspose.OCR` NuGet 套件,且目標 .NET 執行環境至少為 .NET 5,以獲得最佳相容性。 + +## 結論 + +我們剛剛說明了在 C# 中 **OCR 圖像** 檔案,並將掃描結果轉換為乾淨的 ePub 書籍——本質上是一個 **將 JPG 轉換為 ePub** 的工作流程,可直接嵌入任何專案。依照上述步驟,你將能 **從圖像中提取文字**、處理常見的例外情況,並將解決方案擴充至批次作業或雲端服務。 + +如果你想探索下一步,可嘗試將 ePub 輸出改為 PDF(`OcrSaveFormat.Pdf`),或將 OCR 文字送入翻譯 API。掌握基礎後,想像空間無限。 + +對特定圖像格式有疑問,或想看多頁 ePub 範例嗎?留下評論,我很樂意協助。祝程式開發順利,享受將圖片變成書本的樂趣! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/hongkong/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..9cb1174b --- /dev/null +++ b/ocr/hongkong/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-01-01 +description: 使用 Aspose OCR C# 即時辨識俄文;學習辨識中文、讀取 PDF 頁數,並於同一個教學中轉換 PDF 頁面文字。 +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: zh-hant +og_description: 使用 Aspose OCR C# 快速辨識俄文文字。本教學亦涵蓋如何辨識中文文字、讀取 PDF 頁數,以及將 PDF 頁面文字轉換。 +og_title: 使用 Aspose OCR C# 識別俄文文本 – 完整指南 +tags: +- Aspose OCR +- C# +- PDF processing +title: 使用 Aspose OCR C# 識別俄文文本 – 完整多頁 PDF 指南 +url: /zh-hant/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR C# 辨識俄文文字 – 完整多頁 PDF 教學 + +是否曾需要在混合語言的 PDF 中 **辨識俄文文字**,並且想知道如何在不為每一頁都使用不同工具的情況下完成?你並不孤單。在許多實務專案中,你會收到一個包含英文、俄文,甚至中文的單一 PDF,且仍希望得到一個乾淨的文字輸出。 + +在本教學中,我們將完整示範如何使用 **Aspose OCR C#** **辨識俄文文字**(以及其他語言),同時示範如何 **讀取 PDF 頁數**、**辨識中文文字**,以及將 **轉換 PDF 頁面文字** 為方便的 Console 輸出。全程不依賴外部服務,也沒有隱藏步驟——只要純粹的 C# 程式碼,直接複製貼上即可執行。 + +> **你將學會的內容** +> * 一個可執行的 C# Console 應用程式,能處理多頁 PDF。 +> * 每頁語言的選擇(俄文、中文、英文)。 +> * 查詢 PDF 頁數並擷取每頁文字的技巧。 +> * 可套用於自己專案的提示、常見問題與擴充方式。 + +--- + +## 前置條件 + +- .NET 6.0 或更新版本(程式碼同樣適用於 .NET Framework 4.7+)。 +- 已安裝 **Aspose.OCR for .NET** NuGet 套件(`dotnet add package Aspose.OCR`)。 +- 一個包含多種語言的 PDF 檔案;示範中使用 `mixed_lang.pdf`。 +- 具備 C# Console 應用程式的基本概念。 + +如果缺少上述任一項,請從 NuGet 取得最新的 Aspose OCR,並將 PDF 放置在專案資料夾可存取的位置。 + +--- + +## 第一步 – 初始化 Aspose OCR 引擎 + +首先需要建立 `OcrEngine` 的實例。此物件負責保存所有設定(例如語言),並執行繁重的 OCR 工作。 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **為什麼這很重要:** +> 引擎是可重複使用的,避免為每一頁都建立新實例而浪費記憶體。重複使用同一個引擎也能即時切換語言,這對於在某一頁 **辨識俄文文字**、在另一頁 **辨識中文文字** 是必須的。 + +--- + +## 第二步 – 載入 PDF 並取得頁數 + +在開始辨識之前,我們需要先取得 PDF 物件以及它的頁數。Aspose OCR 會將每一頁視為一個 `OcrImage`。 + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **提示:** 若 PDF 檔案非常大,建議先讀取頁數,再決定是處理全部頁面或只處理部份頁面。 + +--- + +## 第三步 – 為每頁對應所需語言 + +Aspose OCR 支援多種語言,但必須告訴它每一頁要使用哪種語言。以下範例建立一個 `Dictionary`,鍵值為從 0 起算的頁索引。 + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **此步驟關鍵性說明:** +> 若沒有這個對映表,OCR 引擎會對所有頁面使用單一預設語言,導致俄文或中文文字產生亂碼。此步驟直接讓 **辨識俄文文字** 與 **辨識中文文字** 正確執行。 + +--- + +## 第四步 – 迴圈處理所有頁面、設定語言並辨識文字 + +接著我們遍歷每一頁,依照對映表切換語言,然後呼叫 `Recognize`。結果會存於 `OcrResult`,再從中取出純文字。 + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### 預期的 Console 輸出 + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **流程說明:** +> * 迴圈會遵循前面 **讀取 PDF 頁數** 所印出的頁數。 +> * 每次迭代透過更改 `ocrEngine.Settings.Language`,確保第 2 頁能正確 **辨識俄文文字**、第 3 頁能正確 **辨識中文文字**。 +> * `Console.WriteLine` 的使用等同於 **轉換 PDF 頁面文字** 為人類可讀的字串。 + +--- + +## 第五步 – 執行、驗證與微調 + +1. 建置專案(`dotnet build`)。 +2. 執行程式(`dotnet run`)。 +3. 將 Console 輸出與原始 PDF 內容比對。 + +若發現缺字,請考慮: + +- 透過設定 `ocrEngine.Settings.DetectTextOrientation = true;` 來 **提升 OCR 準確度**。 +- 若內建的俄文或中文字典已過時,可提供自訂語言包。 +- 載入 PDF 時調整 DPI(`OcrImage.FromFile(path, 300)`),對低解析度掃描檔可改善辨識效果。 + +--- + +## 加分項:處理邊緣案例 + +### 若頁面的語言未在對映表中? + +程式已預設回退至英文,你也可以自行加入記錄警告的回退機制: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### 能否處理超過三種語言的 PDF? + +當然可以。只要在 `languageMap` 中加入更多索引與對應的 `OcrLanguage`(例如 `OcrLanguage.French`),迴圈即可自動處理任意頁數與語言組合。 + +### 如何將結果輸出至檔案而非 Console? + +將 `Console.WriteLine` 改為 `File.AppendAllText("output.txt", …)`,或使用 `StringBuilder` 於迴圈結束後一次寫入檔案。 + +--- + +## 圖片說明 + +![辨識俄文文字範例](/images/recognize-russian-text.png "顯示俄文文字 OCR 輸出的螢幕截圖") + +*上圖示範在混合語言 PDF 上執行 **辨識俄文文字** 後的 Console 輸出情形。* + +--- + +## 結論 + +我們完整示範了如何使用 **Aspose OCR C#** 從多頁 PDF 中 **辨識俄文文字**(同時也能 **辨識中文文字**)。透過讀取 PDF 頁數、為每頁對映正確語言,並逐頁迭代辨識,你可以將 **轉換 PDF 頁面文字** 為純文字字串,方便儲存、索引或進一步分析。 + +簡而言之: + +- **初始化** 單一 `OcrEngine`。 +- **載入** PDF 並 **讀取 PDF 頁數**。 +- **對映** 每頁語言(俄文、中文等)。 +- **迭代**、設定 `ocrEngine.Settings.Language`,並 **辨識** 每頁。 +- **輸出** 或保存擷取的文字。 + +歡迎將此模式套用至更大型的文件,加入錯誤處理,或將結果匯入搜尋索引。每頁語言選擇的核心概念,使得在混合語言 PDF 中可靠 **辨識俄文文字** 成為可能。 + +如果你的情境是掃描圖像而非 PDF,使用方式相同,只需將 `OcrImage.FromFile` 改為 `OcrImage.FromStream` 或 `FromBitmap` 即可。祝開發順利,OCR 準確率天天提升! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/ocr-configuration/_index.md b/ocr/hungarian/net/ocr-configuration/_index.md index 1c23339c..850e22b3 100644 --- a/ocr/hungarian/net/ocr-configuration/_index.md +++ b/ocr/hungarian/net/ocr-configuration/_index.md @@ -38,10 +38,12 @@ Az Aspose.OCR segítségével felszabadíthatja az OCR képfelismerés erejét a ### [OCR-művelet nyelvválasztással az OCR képfelismerésben](./ocr-operation-with-language-selection/) Fedezze fel a hatékony OCR-képességeket az Aspose.OCR for .NET segítségével. Zökkenőmentesen vonja ki a szöveget a képekből. ### [OCROművelet listával az OCR képfelismerésben](./ocr-operation-with-list/) -Engedje ki az Aspose.OCR-ben rejlő lehetőségeket a .NET számára. Könnyedén végrehajthatja az OCR képfelismerést listák segítségével. Növelje alkalmazásaiban a termelékenységet és az adatkinyerést. +Engedje ki az Aspose.OCR-ben rejlő lehetőségeket a .NET számára. Könnyen végrehajthatja az OCR képfelismerést listák segítségével. Növelje alkalmazásaiban a termelékenységet és az adatkinyerést. +### [Hogyan alkalmazzon licencet az Aspose OCR-ben – Lépésről‑lépésre C# útmutató](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Ismerje meg, hogyan aktiválhatja a licencet az Aspose OCR .NET könyvtárban C# nyelven, részletes lépésekkel. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/hungarian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..d51ad7bd --- /dev/null +++ b/ocr/hungarian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Hogyan alkalmazzuk az Aspose OCR licencet C#-ban. Tanulja meg, hogyan + olvassa be a fájlt, állítsa be az Aspose licencet, használja a MemoryStream-et, + és töltse be a licencet hatékonyan. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: hu +og_description: Hogyan alkalmazzuk az Aspose OCR licencet C#-ban. Kövesse ezt az útmutatót + a licencfájl beolvasásához, az Aspose licenc beállításához, a MemoryStream használatához + és a beállítás ellenőrzéséhez. +og_title: Hogyan alkalmazz licencet az Aspose OCR-ben – Teljes C# útmutató +tags: +- Aspose +- OCR +- C# +- Licensing +title: Hogyan alkalmazz licencet az Aspose OCR-ben – Lépésről lépésre C# útmutató +url: /hu/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan alkalmazz licencet az Aspose OCR‑ben – Teljes C# útmutató + +Valaha is elgondolkodtál már azon, **hogyan alkalmazz licencet** az Aspose OCR‑hez anélkül, hogy homályos dokumentációt kellene keresned? Nem vagy egyedül. A legtöbb fejlesztő ugyanarra a problémára bukkan: képesek beolvasni a fájlt, de nem tudják, hogyan kell helyesen átadni a könyvtárnak. Ebben az útmutatóban minden részletet végigvesszük – a `.lic` fájl lemezről történő betöltésétől a `SetLicense` meghívásáig egy `MemoryStream`‑mel. A végére egy működő megoldást kapsz, amelyet bármely .NET projektbe beilleszthetsz. + +Továbbá bemutatjuk, hogyan **olvassuk be a fájlt** biztonságosan, a helyes **Aspose licenc beállítását**, és miért a **MemoryStream** a legtisztább megközelítés. Ha érdekel, **hogyan töltsük be a licencet** különböző környezetekben, azokra a tippek is benne vannak. Nincs szükség külső hivatkozásokra – csak tiszta, másolás‑beillesztés‑kész kód. + +## Előkövetelmények + +- .NET 6.0 vagy újabb (a kód működik .NET Core‑dal és .NET Framework‑kel egyaránt) +- Aspose.OCR NuGet csomag telepítve (`Install-Package Aspose.OCR`) +- Egy érvényes `Aspose.OCR.lic` fájl, amelyet az alkalmazás elérhet +- Alapvető ismeretek C#‑ban és Visual Studio‑ban (vagy bármely kedvelt IDE‑ben) + +> **Pro tipp:** Tartsd a licencfájlt a forráskód‑kezelő mappádon kívül, hogy elkerüld a véletlen commit‑okat. + +## 1. lépés: Hogyan olvassuk be a fájlt – A licenc bájtjainak betöltése + +Az első dolog, amire szükségünk van, a licencfájl nyers bájt tömbje. A `File.ReadAllBytes` használata egyszerű és hatékony, és automatikusan világos kivételt dob, ha az útvonal hibás. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Miért fontos:** A fájl közvetlen memóriába olvasása elkerüli a fájl‑kezelő szivárgásokat, és tiszta bájt tömböt ad, amivel később dolgozhatunk. Emellett a metódus újrahasználható konzol‑alkalmazásokban, webszolgáltatásokban vagy Azure Functions‑ben is. + +## 2. lépés: Hogyan használjuk a MemoryStream‑et – A licenc stream előkészítése + +Az Aspose `License.SetLicense` túlterhelése egy `Stream`‑et vár. A bájt tömb `MemoryStream`‑be csomagolása az idiomatikus módja annak, hogy ezt a követelményt teljesítsük anélkül, hogy újra a fájlrendszert érintenénk. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Kulcsfontosságú meglátás:** A `MemoryStream` könnyű és gyorsan felszabadul. Emellett lehetővé teszi, hogy ugyanazt a bájt tömböt több könyvtárhoz is újrahasználjuk, ha valaha több Aspose termék licencét kell alkalmazni. + +## 3. lépés: Aspose licenc beállítása – A „hogyan alkalmazz licencet” magja + +Most, hogy van egy `MemoryStream`‑ünk, a licenc alkalmazása egyetlen sorban megoldható. A `License` osztály az `Aspose.OCR` névtérben található, ezért győződj meg róla, hogy a megfelelő `using` direktívát felvetted. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Ha a licenc érvénytelen vagy lejárt, a `SetLicense` csendben hibátlanul visszatér, és a könyvtár próbaverzióban működik. Annak biztosítására, hogy a licenc valóban aktiválva van, ellenőrizhetsz egy olyan funkciót, amely csak a licencelt verzióban érhető el (például az OCR pontossági beállításokat), vagy egyszerűen a később kiírt megerősítő üzenetre támaszkodhatsz. + +## 4. lépés: Hogyan töltsük be a licencet – Összeállítás egyben + +Az alábbiakban a teljes, futtatható konzolprogram látható, amely bemutatja, **hogyan töltsük be a licencet** lemezről, használja a `MemoryStream`‑et, és ellenőrzi, hogy a licenc sikeresen alkalmazva lett-e. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Várt kimenet + +``` +License applied successfully. You can now perform OCR operations. +``` + +Ha látod az üzenetet, a könyvtár teljesen licencelt, és készen áll a termelés‑szintű OCR feladatokra. + +## Gyakori buktatók és hogyan kerüld el őket + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **FileNotFoundException** a licenc beolvasásakor | Az útvonal hibás vagy a fájl nincs telepítve az alkalmazással | Használj abszolút útvonalat vagy ágyazd be a licencet erőforrásként (lásd az alábbi „alternatív betöltés” részt) | +| **Licenc nincs alkalmazva, de nincs hiba** | `SetLicense` csendben visszatér a próbaverzióra, ha a stream üres vagy sérült | Ellenőrizd, hogy `licenseData.Length > 0` legyen a `MemoryStream` létrehozása előtt | +| **MemoryStream nincs felszabadítva** | `using` elfelejtése miatt a nem kezelt erőforrások maradnak | Mindig csomagold a streamet egy `using` blokkba, ahogy a példában látható | + +### Alternatíva: Licenc beágyazása beágyazott erőforrásként + +Ha nem szeretnél külön `.lic` fájlt szállítani, add hozzá a projekthez, állítsd a **Build Action**‑t **Embedded Resource**‑ra, és olvasd be így: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Ezután hívd meg a `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` metódust, és folytasd ugyanazzal a `MemoryStream` megközelítéssel. + +## Összegzés + +Áttekintettük, **hogyan alkalmazz licencet** az Aspose OCR‑hez a kezdetektől a végéig: a fájl beolvasása, egy `MemoryStream` létrehozása, a `SetLicense` meghívása, és az aktiválás megerősítése. E lépések követésével kiküszöbölöd a találgatást, elkerülöd a gyakori hibákat, és biztosítod, hogy az OCR motorod teljes funkcionalitással működjön. + +Ezután érdemes lehet **hogyan olvassuk be a fájlt** aszinkron módon nagy áteresztőképességű szolgáltatásokhoz, vagy mélyebben belemerülni a fejlett OCR beállításokba most, hogy a licenc helyesen be legyen töltve. Bármelyik útvonalat is választod, a minta ugyanaz marad – olvasás, stream, beállítás, ellenőrzés. + +Van kérdésed a széljegyekkel kapcsolatban, például a licenc betöltése ASP.NET Core környezetben vagy több Aspose termék licencének kezelése? Hagyj egy megjegyzést alább, és jó kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/ocr-optimization/_index.md b/ocr/hungarian/net/ocr-optimization/_index.md index b92ca485..7bcd0a16 100644 --- a/ocr/hungarian/net/ocr-optimization/_index.md +++ b/ocr/hungarian/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Fedezze fel az Aspose.OCR-t .NET-hez. Növelje az OCR pontosságát előfeldolgo Növelje az OCR pontosságát az Aspose.OCR for .NET segítségével. Helyesírások javítása, szótárak testreszabása és hibamentes szövegfelismerés problémamentesen. ### [Mentse el a többoldalas eredményt dokumentumként az OCR képfelismerésben](./save-multipage-result-as-document/) Engedje ki az Aspose.OCR-ben rejlő lehetőségeket a .NET számára. Ezzel az átfogó, lépésenkénti útmutatóval könnyedén mentheti a többoldalas OCR-eredményeket dokumentumként. +### [Kötegelt OCR C#-ban az Aspose OCR motorral](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Tudja meg, hogyan végezhet tömeges OCR-feldolgozást C#-ban az Aspose OCR motor használatával. +### [Képfeldolgozás OCR C#-ban – Pontosság növelése az Aspose OCR-rel](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Fedezze fel, hogyan előfeldolgozhatja a képeket C#-ban az Aspose OCR segítségével a pontosság növelése érdekében. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/hungarian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..51f7570b --- /dev/null +++ b/ocr/hungarian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-01-01 +description: Hogyan végezzünk kötegelt OCR-t az Aspose OCR Engine segítségével C#-ban. + Tanulja meg, hogyan ismerje fel a szöveget képeken, és hogyan nyerjen ki szöveget + TIFF-fájlokból GPU-gyorsítással. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: hu +og_description: Hogyan végezzünk kötegelt OCR-t C#-ban az Aspose OCR motorral. Ez + az útmutató megmutatja, hogyan ismerhetünk fel szöveget képekből, és hogyan vonhatunk + ki szöveget TIFF fájlokból hatékonyan. +og_title: Hogyan végezzünk kötegelt OCR-t C#-ban – Teljes Aspose útmutató +tags: +- OCR +- C# +- Aspose +- GPU +title: Hogyan végezzünk kötegelt OCR-t C#-ban az Aspose OCR motorral +url: /hu/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan végezzünk kötegelt OCR-t C#-ban az Aspose OCR motorral + +Valaha is elgondolkodtál **arról, hogyan végezzünk kötegelt OCR-t**, amikor egy mappában tucatnyi beolvasott dokumentum hever? Nem vagy egyedül – sok fejlesztő szembesül ezzel a problémával, amikor az egykép‑felismerésről egy teljes gyűjtemény feldolgozására vált. A jó hír, hogy az Aspose OCR ezt gyerekjátéká teszi, akár CPU‑n, akár a GPU gyorsítást használva. + +Ebben az útmutatóban egy teljes, futtatható példán keresztül vezetünk végig, amely **képekből szöveget ismer fel** és akár **TIFF fájlokból is kinyer szöveget** tömegesen. Nincsenek homályos „lásd a dokumentációt” rövidítések – csak egy önálló megoldás, amelyet ma másolhatsz‑beilleszthetsz és futtathatsz. + +## Előkövetelmények + +* .NET 6.0 vagy újabb telepítve (a kód a .NET 6‑ra céloz, de a .NET 5 is működik). +* Aspose.OCR for .NET NuGet csomag (mind CPU, mind GPU verzió elérhető; telepítsd a hardverednek megfelelőt). +* Egy mappa néhány mintat TIFF vagy PNG fájllal, amelyeket fel szeretnél dolgozni. +* Visual Studio 2022 vagy bármely kedvelt IDE. + +> **Pro tipp:** Ha a GPU verziót tervezed használni, ellenőrizd, hogy a grafikus driver naprakész-e, és hogy a CUDA 11+ telepítve van. A motor automatikusan visszaáll CPU‑ra, ha nem talál kompatibilis GPU‑t. + +## 1. lépés – A projekt beállítása és az Aspose.OCR telepítése + +### H2: Új konzolos alkalmazás létrehozása és az Aspose.OCR hozzáadása + +Nyiss egy terminált (vagy a Package Manager Console‑t a Visual Studio‑ban) és futtasd: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Ha GPU‑támogatott licenced van, add hozzá a GPU csomagot helyette: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Ennyi—most a projekted hivatkozik az OCR könyvtárra, amelyet a **kötegelt OCR**-hez fogunk használni. + +## 2. lépés – Az OCR motor inicializálása (CPU vagy GPU) + +### H2: Hogyan végezzünk kötegelt OCR-t – Motor inicializálása + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Miért fontos:** A `UseGpu` átkapcsolásával az Aspose dönt a leggyorsabb útról. Ha a GPU nem érhető el, a motor csendben visszakapcsol CPU‑ra, így a kötegelt feladat soha nem omlik össze hiányzó hardver miatt. + +## 3. lépés – A feldolgozandó fájlok összegyűjtése + +### H2: Szöveg felismerése képekről – Fájllista összeállítása + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Széljegyzet:** Ha különböző formátumok keverékével dolgozol, módosítsd a keresési mintát `"*.*"`‑re, és a cikluson belül szűrd a kiterjesztést. Ez rugalmasabbá teszi a kötegelt feldolgozást. + +## 4. lépés – Minden kép feldolgozása és előnézet megjelenítése + +### H2: Szöveg kinyerése TIFF-ből – Fájlok bejárása + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Ami látható lesz:** Minden TIFF esetén a konzol valami ilyesmit ír ki: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Ez az előnézet megerősíti, hogy a köteg sikeresen lefutott anélkül, hogy minden fájlt kézzel meg kellene nyitni. + +## 5. lépés – Eredmények mentése (opcionális, de hasznos) + +### H3: OCR kimenet mentése szövegfájlokba + +Ha a teljes szövegre downstream feldolgozáshoz van szükséged, add hozzá ezt a `foreach` cikluson belül: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Most minden TIFF-hez egy hozzá tartozó `.txt` fájl jön létre, amely a teljes OCR kimenetet tartalmazza – tökéletes indexeléshez, kereséshez vagy nyelvi modellbe való betápláláshoz. + +## 6. lépés – A demó futtatása és ellenőrzése + +1. Építsd fel a projektet: `dotnet build`. +2. Futtasd: `dotnet run --project GpuBatchDemo.csproj`. + +Látnod kell a konzolra kiírt előnézeti sorokat, és (ha hozzáadtad az opcionális lépést) egy sor `.txt` fájlt a forrásképek mellett. + +### H3: Gyakori hibák és megoldások + +| Tünet | Valószínű ok | Megoldás | +|---------|--------------|-----| +| **Üres `ocrResult.Text`** | Túl sötét kép vagy alacsony DPI | Előfeldolgozás (kontraszt növelése, felméretezés) vagy `ocrEngine.Settings.PreprocessImage = true` beállítása. | +| **GPU hiba: „CUDA driver version is insufficient”** | Elavult driver | Frissítsd a GPU drivert, vagy állítsd `UseGpu = false`-ra a CPU kényszerítéséhez. | +| **Kivétel: „File not found”** | Hibás útvonal-elválasztó Linux/macOS rendszeren | Használd a `Path.Combine`‑t vagy a perjel (`/`) karaktert. | + +## 7. lépés – Méretezés (több fájl esetén) + +Amikor néhány TIFF‑ról több ezerre váltasz, fontold meg a következőket: + +* **Párhuzamos feldolgozás:** A `foreach`-t `Parallel.ForEach`‑be helyezd (győződj meg róla, hogy a motor példány szálbiztos; egyébként hozz létre egyet szálanként). +* **Darabolt I/O:** Olvasd a képeket kötegekben, hogy elkerüld a RAM kimerülését. +* **Naplózás:** Írd a folyamatot egy naplófájlba; segít a visszaállításban egy összeomlás után. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Ne feledd:** A GPU memória megosztott, így túl sok párhuzamos GPU feladat indítása valójában lelassíthat. Először néhány szállal tesztelj. + +## Teljes működő példa (másolás-beillesztés kész) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +A program futtatása **képekből szöveget fog felismerni**, **TIFF‑ből szöveget nyer ki**, és hatékonyan bemutatja, **hogyan végezzünk kötegelt OCR-t**. + +## Következtetés + +Most már egy szilárd, vég‑től‑végig példát rendelkezel arra, **hogyan végezzünk kötegelt OCR-t** C#‑ban az Aspose OCR motorjával. Az útmutató mindent lefedett a projekt beállításától, a GPU gyorsítás átkapcsolásán, a fájllista összeállításán, a képek feldolgozásán, egészen az eredmények mentéséig. Akár TIFF‑ből, akár bármely más képformátumból nyersz szöveget, ugyanaz a minta alkalmazható – csak cseréld ki a fájlkiterjesztéseket. + +Készen állsz a következő lépésre? Próbáld meg integrálni az OCR kimenetet egy keresőindexbe, betáplálni a szöveget egy nagy nyelvi modellbe, vagy kísérletezz a párhuzamos feldolgozással, hogy perceket takaríts meg hatalmas kötegek esetén. A határ a csillagos ég, és már megvan az alap, amire építhetsz. + +Van kérdésed vagy szeretnéd megosztani a saját kötegelt OCR trükkjeidet? Hagyj egy megjegyzést alább – jó kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/hungarian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..4439976a --- /dev/null +++ b/ocr/hungarian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Előfeldolgozza a képet OCR-hez a pontosság növelése érdekében. Tanulja + meg, hogyan ismerje fel a szöveges képet, javítsa az OCR pontosságát, töltse be + a képet OCR-rel, és jelenítse meg az OCR szöveget az Aspose OCR használatával. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: hu +og_description: Előfeldolgozza a képes OCR-t a pontosság növelése érdekében. Ez az + útmutató bemutatja, hogyan ismerje fel a szöveges képet, hogyan töltse be a képet + OCR-rel, hogyan alkalmazzon szűrőket, és hogyan jelenítse meg az OCR szöveget. +og_title: Képek OCR előfeldolgozása C#-ban – Pontosság növelése az Aspose OCR-rel +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Képek OCR előfeldolgozása C#-ban – Pontosság növelése az Aspose OCR-rel +url: /hu/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Gondoltad már, hogyan **preprocess image ocr** úgy, hogy a motor tényleg elolvassa, mi van az oldalon? Nem vagy egyedül – a legtöbb fejlesztő akadályba ütközik, amikor egy zajos, ferde beolvasás nem működik együtt. A jó hír, hogy néhány okos előfeldolgozási lépés egy katasztrófa‑zónás képet tiszta, olvasható szöveggé változtathat. + +Ebben az útmutatóban végigvezetünk egy teljes, azonnal futtatható példán, amely **recognize text image** fájlokat, **improve OCR accuracy**, és végül **display OCR text** a konzolon. A végére megtanulod, hogyan **load image OCR** eszközöket, csatolj szűrőket, mint a ferde korrekció és a zajcsökkentés, és megbízható eredményeket érj el – mindezt az Aspose.OCR for .NET segítségével. + +## Mit fogsz megtanulni + +- Hogyan hozzunk létre egy `OcrEngine` példányt és konfiguráljuk az előfeldolgozási szűrőket. +- Miért fontosak a ferde korrekciós és zajcsökkentő szűrők a **improve OCR accuracy** érdekében. +- A pontos kód a **load image ocr** fájlok betöltéséhez és a felismerés futtatásához. +- Hogyan **display OCR text** felhasználóbarát módon. +- Tippek, buktatók és opcionális finomhangolások, amelyeket valós projektekben alkalmazhatsz. + +### Előfeltételek + +- .NET 6+ (vagy .NET Framework 4.7+) telepítve a gépeden. +- Aspose.OCR licenc (az ingyenes próba verzió működik ebben a demóban). +- Alap C# ismeretek – nincs szükség haladó trükkökre. + +Ha bármelyik ismeretlennek tűnik, állj meg és telepítsd a hiányzó elemeket; a további útmutató feltételezi, hogy ezek már rendelkezésre állnak. + +--- + +## preprocess image ocr – Szűrők beállítása + +Az első dolog, amit értened kell, az **why preprocessing matters**. Az OCR motorok kiválóak a tiszta, egyenes szöveg olvasásában, de a valós beolvasások gyakran szenvednek forgástól, elmosódástól vagy háttérzajtól. Ha egy megtisztított képet adsz a motorba, jelentősen növeled a helyes átirat esélyét. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Mi történik itt?** +- **Step 1** létrehozza a motort – az Aspose OCR könyvtár szíve. +- **Step 2** két szűrőt csatol. A `SkewCorrectionFilter` visszaforgatja a képet vízszintesre, míg a `DenoiseFilter` kisimítja a pixel‑szintű zajt. +- **Step 3** opcionális, de hasznos; korlátozhatod a maximális szöget, amelyet a motor korrigálni próbál, így elkerülve a túlzott forgást már egyenes oldalakon. +- **Step 4** az a hely, ahol **load image OCR** adatokat töltesz be. Cseréld le a `YOUR_DIRECTORY/skewed_noisy.jpg`-t a tesztfájlod elérési útjára. +- **Step 5** ténylegesen futtatja az OCR-t és egy `OcrResult`-ot hoz létre. +- **Step 6** **display OCR text** a konzolon, azonnali visszajelzést adva. + +> **Pro tip:** Ha észreveszed, hogy a kimenet még mindig torz karaktereket tartalmaz, próbáld növelni a `MaxAngle` értékét vagy adj hozzá egy `ContrastFilter`-t a zajcsökkentés előtt. + +--- + +## recognize text image – Fájlok helyes betöltése + +Egy gyakori akadály az **load image ocr** helytelen formátummal vagy DPI-vel. Az Aspose.OCR támogatja a PNG, JPEG, TIFF, BMP és még a PDF‑alapú képeket is. Azonban a motor a legjobban 300 DPI vagy annál magasabb felbontással működik nyomtatott dokumentumok esetén. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Ha egy többoldalas TIFF-szel dolgozol, végigiterálhatsz minden kereten: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** A magasabb felbontás megőrzi minden karakter alakját, több adatpontot biztosítva a felismerőnek. Az alacsony DPI-s képek gyakran összeolvadó vagy törött karaktereket eredményeznek, amelyeket a motor félreértelmez. + +--- + +## improve OCR accuracy – Szűrőparaméterek finomhangolása + +Az alapértelmezett szűrőbeállítások jó kiindulópontot jelentenek, de még extra teljesítményt nyomhatunk ki belőlük. + +| Szűrő | Kulcs tulajdonság | Tipikus érték | Mikor módosítani | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Images that are heavily tilted (up to 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Very noisy scans; increase to `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Low‑contrast screenshots. | + +Példa a testreszabásra: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Ha a képed kézírásos jegyzeteket és nyomtatott szöveget is tartalmaz, érdemes lehet egy `BinarizationFilter`-t hozzáadni a zajcsökkentés előtt, hogy elválaszd az előtért a háttértől. + +--- + +## display OCR text – A kimenet formázása + +Az egyszerű konzolos kimenet demókhoz működik, de a termelési kódban gyakran szükség van megtisztított karakterláncokra, sortörésekre vagy akár JSON-re is. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Ha JSON-ra van szükséged egy API válaszhoz: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Most már **display OCR text** olyan formátumban, amelyet a downstream szolgáltatások felhasználhatnak. + +--- + +## Teljes működő példa – Összeállítás + +Az alábbiakban a végleges, önálló programot találod, amelyet beilleszthetsz egy új konzolprojektbe. Opcionális szűrőket, nagy felbontású kép betöltést és tiszta kimenetet tartalmaz. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Expected console output (sample):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Ha a programot egy másik fájllal futtatod, a szöveg és a megbízhatóság ennek megfelelően változni fog. + +--- + +## Gyakori kérdések és válaszok + +**Q: Mi van, ha a kép már egyenes?** +A: A ferde szűrő majdnem nulla szöget fog észlelni, így lényegében nem csinál semmit, ezért nyugodtan bekapcsolva hagyhatod. + +**Q: Támogatja az Aspose.OCR más nyelveket is, mint az angol?** +A: Igen – egyszerűen állítsd be a `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (vagy bármely támogatott nyelvet) a `Recognize` hívása előtt. + +**Q: Hogyan kezelem a többoldalas PDF-eket?** +A: Konvertáld minden oldalt képpé (az Aspose.PDF ezt meg tudja csinálni), majd egyesével add át ugyanahhoz a `OcrEngine` példányhoz. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/text-recognition/_index.md b/ocr/hungarian/net/text-recognition/_index.md index 61ddd9f7..629907af 100644 --- a/ocr/hungarian/net/text-recognition/_index.md +++ b/ocr/hungarian/net/text-recognition/_index.md @@ -55,9 +55,16 @@ Bővítse .NET-alkalmazásait az Aspose.OCR segítségével a hatékony képszö Az Aspose.OCR segítségével tárja fel az OCR-ben rejlő lehetőségeket a .NET-ben. Könnyedén bontsa ki a szöveget a PDF-ekből. Töltse le most a zökkenőmentes integrációs élményért. ### [Táblázat felismerése az OCR képfelismerésben](./recognize-table/) A .NET-hez készült Aspose.OCR-ben rejlő lehetőségeket az OCR-képfelismerés tábláinak felismeréséről szóló átfogó útmutatónkkal tárja fel. +### [c# OCR oktatóanyag: Szöveg kinyerése képből az Aspose OCR segítségével](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +### [c# OCR oktatóanyag – Szöveg kinyerése képekből és exportálás JSON-ba](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +### [Hogyan OCR képet C#-ban – JPG konvertálása ePub-be](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Ismerje meg, hogyan használhatja az Aspose.OCR-t C#-ban JPG képek OCR-hez, majd konvertálja a szöveget ePub formátumba. +### [orosz szöveg felismerése Aspose OCR C#‑vel – Teljes többoldalas PDF útmutató](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Tanulja meg, hogyan ismerje fel az orosz nyelvű szöveget többoldalas PDF-ekben az Aspose OCR C# segítségével. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..0aeba263 --- /dev/null +++ b/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR útmutató, amely bemutatja, hogyan lehet szöveget kinyerni egy + képből, OCR-t végrehajtani JPG fájlokon az Aspose OCR használatával. Tanulja meg, + hogyan töltsön be képet OCR-hez, és érjen el pontos eredményeket. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: hu +og_description: c# OCR oktatóanyag, amely végigvezet a képről történő szövegkivonáson, + a JPG-re végzett OCR-en, és az Aspose használatával történő képek betöltésén OCR-hez. +og_title: c# OCR útmutató – Szöveg kinyerése képből az Aspose OCR-rel +tags: +- OCR +- C# +- Aspose +title: 'c# OCR útmutató: Szöveg kinyerése képből az Aspose OCR-rel' +url: /hu/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Bemutató – Szöveg kinyerése képből az Aspose OCR-rel + +Egy **c# ocr tutorial**-ra van szükséged, ami tényleg működik? Ebben az útmutatóban megmutatjuk, hogyan **nyerheted ki a szöveget egy képből** és hogyan **végezhetsz OCR-t JPG** fájlokon az Aspose.OCR könyvtár segítségével. Akár egy nyugtavizsgáló, egy dokumentumarchíváló rendszert építesz, vagy egyszerűen csak kíváncsi vagy a képeken lévő szöveg olvasására, az alábbi lépések néhány perc alatt a nulláról működő kódig vezetnek. + +Mindent lefedünk, amire szükséged van: a csomag telepítése, kép betöltése OCR-hez, nyelvi erőforrások konfigurálása, a felismerő motor futtatása, és a leggyakoribb buktatók kezelése. A végére egy önálló konzolalkalmazásod lesz, amely kiírja a felismert szöveget a konzolra – külső szolgáltatások nélkül. + +## Amire szükséged lesz + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.6+ verzióval is működik) +- Visual Studio 2022, VS Code vagy bármelyik kedvenc C# szerkesztő +- Egy olyan kép fájl, amely orosz (cirill) szöveget tartalmaz, például `receipt_ru.jpg` +- Internetkapcsolat az első futtatáshoz (az Aspose automatikusan letölti a nyelvi erőforrásokat) + +Ha már megvannak ezek, nagyszerű—merüljünk el. + +## 1. lépés: Aspose.OCR telepítése és új projekt létrehozása + +Először is, add hozzá az Aspose.OCR NuGet csomagot a projektedhez. Nyiss egy terminált a megoldás mappájában és futtasd: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tipp:** Használd a `--version` kapcsolót a legújabb stabil kiadás rögzítéséhez, például `Aspose.OCR 23.9.0`. + +Ezután hozz létre egy egyszerű konzolprojektet (ugord ezt, ha már van egy). + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Most már egy tiszta kiinduló állapotod van, ahová később beillesztheted a teljes mintakódot. + +## 2. lépés: Kép betöltése OCR-hez + +A kép betöltése az első funkcionális lépés minden **c# ocr tutorial**-ban. Az Aspose.OCR elfogadja a fájl útvonalat, egy streamet vagy akár egy `Bitmap`-et is. A példánkban egyszerűen a lemezről töltjük be: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Miért fontos:** A kép kifejezett betöltésével egyértelmű célt adsz a motor számára, ami javítja a pontosságot – különösen többoldalas PDF-ek vagy vegyes formátumú bemenetek esetén. + +## 3. lépés: Nyelv és automatikus letöltés beállítása + +Az Aspose.OCR nyelvi csomagokkal érkezik, amelyeket igény szerint letölthetsz. Az automatikus letöltés engedélyezése biztosítja, hogy a motor az első futtatáskor letöltse a orosz nyelvi adatokat. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Magyarázat:** +> • `AutoDownloadResources = true` eltávolítja a `.dat` fájlok kézi letöltésének lépését. +> • A `Language` beállítása megmondja a motornak, milyen karakterkészletet várjon, ami drámaian növeli a felismerési sebességet és pontosságot. + +## 4. lépés: OCR futtatása és a felismert szöveg lekérése + +Most jön a nehéz munka. A `Recognize` metódus feldolgozza a képet és egy `OcrResult` objektumot ad vissza, amely a kinyert szöveget tartalmazza. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +A program futtatásakor valami ilyesmit kell látnod: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Mire számíthatsz:** A pontos kimenet a forráskép minőségétől függ, de az Aspose neurális hálózaton alapuló motorja általában tiszta nyugtákat és nyomtatott űrlapokat magas hűséggel kezel. + +## Teljes működő példa + +Az alábbi **teljes, futtatható kód** kombinálja az összes lépést. Másold be a `Program.cs`-be, cseréld le a `YOUR_DIRECTORY`-t a tényleges mappára, és futtasd a `dotnet run` parancsot. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tipp:** Ha **szöveget kell kinyerni képfájlokból** más formátumban, mint JPG (PNG, BMP, TIFF), egyszerűen változtasd meg a fájlkiterjesztést – az Aspose mindet kezeli. + +## 5. lépés: Gyakori buktatók és pro tippek + +| Probléma | Miért fordul elő | Megoldás | +|----------|-------------------|----------| +| **Garbage characters** | Alacsony felbású kép vagy erős tömörítés | Használj jobb minőségű forrást, vagy előfeldolgozd `Bitmap`-kel (pl. kontraszt növelése) | +| **Language not recognized** | A nyelvi csomag nincs letöltve | Győződj meg róla, hogy `AutoDownloadResources` `true`, és a gépnek van internetkapcsolata az első futtatáskor | +| **Null `ocrResult.Text`** | Helytelen képútvonal vagy hiányzó fájl | Ellenőrizd az útvonalat, használj `File.Exists`-t a betöltés előtt | +| **Performance lag** | Nagy mennyiségű kép sorozatos feldolgozása | Használj egyetlen `OcrEngine` példányt több hívásnál újra | + +### Bónusz: Több fájl beolvasása ciklusban + +Ha egy mappában lévő **JPG** fájlokon kell **OCR-t végezni**, csomagold be a logikát egy `foreach`-be: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Ez a minta jól skálázható nyugta‑feldolgozó csővezetékekhez. + +## Összegzés + +Most befejeztél egy **c# ocr tutorial**-t, amely megmutatja, hogyan **nyerheted ki a szöveget egy képből**, hogyan **végezhetsz OCR-t JPG** fájlokon, és hogyan **tölts be képet OCR-hez** az Aspose.OCR használatával. A mintaprogram bemutatja a teljes folyamatot – a NuGet csomag telepítésétől a felismert cirill szöveg kiírásáig – így azonnal beillesztheted bármely .NET projektbe. + +Készen állsz a következő lépésre? Próbáld megcserélni a `OcrLanguage.Russian`-t `OcrLanguage.English`-re, hogy angol nyugtákat ismerjen fel, vagy kísérletezz az `OcrEngine.Settings` beállításokkal (pl. `PageSegmentationMode`, `ImagePreprocessing`) a pontosság finomhangolásához. Az eredményt be is illesztheted egy adatbázisba, generálhatsz PDF-eket, vagy továbbíthatod egy fordító API-hoz. + +Ha bármilyen problémába ütközöl, nézd meg az Aspose.OCR dokumentációt vagy hagyj egy megjegyzést alább. Boldog kódolást, és legyen az OCR eredményed mindigálytiszta! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..093055ef --- /dev/null +++ b/ocr/hungarian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR útmutató, amely bemutatja, hogyan lehet szöveget kinyerni, képet + betölteni OCR-hez, és JSON-t fájlba írni az Aspose.OCR használatával – lépésről + lépésre útmutató. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: hu +og_description: c# OCR oktatóanyag, amely lépésről lépésre bemutatja, hogyan lehet + szöveget kinyerni képekből, betölteni a képet OCR-hez, és JSON-t írni fájlba az + Aspose.OCR segítségével. +og_title: c# OCR útmutató – Szöveg kinyerése és exportálása JSON-ba +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR útmutató – Szöveg kinyerése képekből és exportálás JSON-be +url: /hu/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Képek szövegének kinyerése és exportálása JSON-ba + +Valaha is elgondolkodtál, hogyan lehet szöveget kinyerni egy beolvasott számláról anélkül, hogy órákat töltenél egyedi elemzők írásával? Nem vagy egyedül. Ebben a **c# OCR tutorial**‑ban pontosan megmutatjuk, hogyan tölts be egy képet OCR‑hez, futtasd a felismerő motorját, majd **írj JSON‑t fájlba**, hogy az adatokat továbbadhassuk az alrendszereknek. + +Képzeld el, hogy van egy mappád a nyugtákkal, mindegyik `receipt1.png`, `receipt2.png` néven, és gyors módra van szükséged, hogy kereshető JSON rekordokká alakítsd őket. Ez a probléma, amelyet megoldunk, és a végére egy azonnal futtatható konzolalkalmazást kapsz, amely pontosan ezt teszi. Nincs extra függőség az Aspose.OCR‑on kívül, és nincs varázslat – csak tiszta, reprodukálható lépések. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Előkövetelmények + +- .NET 6 SDK vagy újabb (a kód .NET Core‑on is működik). +- Visual Studio 2022 vagy bármely kedvenc szerkesztőd. +- Aspose.OCR NuGet csomag (`Install-Package Aspose.OCR`). +- Egy képfájl (PNG, JPG, BMP), amelyet feldolgozni szeretnél – a bemutatóhoz `invoice.png`‑t használunk. + +Ha valamelyik hiányzik, töltsd le az SDK‑t a Microsoft oldaláról, és add hozzá a NuGet csomagot a Package Manager Console‑on keresztül: + +```powershell +Install-Package Aspose.OCR +``` + +Most, hogy az alapok megvannak, merüljünk el a tényleges megvalósításban. + +## 1. lépés: c# OCR tutorial – OCR motor inicializálása + +Mielőtt **load image for OCR**‑t végezhetnénk, szükségünk van egy motorpéldányra, amely a felismerési folyamatot vezérli. Az `OcrEngine` osztály könnyű, de jó gyakorlat egy `using` blokkba helyezni, hogy az erőforrások gyorsan felszabaduljanak. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Ha sok képet szeretnél kötegelt módon feldolgozni, használd újra ugyanazt az `OcrEngine` példányt az új példányok létrehozása helyett minden egyes alkalommal. Ez csökkenti a memóriahasználatot és felgyorsítja a folyamatot. + +## 2. lépés: Load image for OCR + +Most ténylegesen **load image for OCR**‑t hajtunk végre. Az Aspose.OCR számos formátumot támogat, így egy PNG, JPEG vagy akár többoldalas TIFF fájlra is mutathatsz. Az `OcrImage.FromFile` metódus beolvassa a fájlt és előkészíti a felismeréshez. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** A kép külön betöltése lehetővé teszi a méretek, DPI vagy akár az előfeldolgozás (pl. binarizálás) ellenőrzését, mielőtt a motorhoz küldenéd. Ha a kép sérült, a `FromFile` egy egyértelmű kivételt dob, amelyet elkapni és naplózni lehet. + +## 3. lépés: How to extract text – Run the recognition + +A képpel a kezünkben végre **how to extract text**‑et tudunk végrehajtani. A `Recognize` metódus egy `OcrResult` objektumot ad vissza, amely nem csak a nyers szöveget, hanem pozíciós adatokat és a bizalmi pontszámokat is tartalmaz minden egyes szóhoz. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Egyes PDF‑ek láthatatlan szövegrétegeket tartalmaznak. Ha egy PDF‑oldalt képként adsz a motorhoz, előfordulhat, hogy semmit sem lát. Ilyen esetekben érdemes először az Aspose.PDF‑et használni a rejtett réteg kinyerésére, majd csak szükség esetén OCR‑t alkalmazni. + +## 4. lépés: OCR image to JSON – Convert the result + +Az `OcrResult` osztály egy kényelmes `ToJson()` segédfüggvényt kínál, amely az egész eredményhalmazt – beleértve minden szó határoló dobozát és bizalmi értékét – JSON‑sztringgé sorosítja. Ez a legegyszerűbb módja a **OCR image to JSON** elérésének saját sorosító írása nélkül. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Ha egyedi sémát szeretnél, iterálhatsz a `ocrResult.Words` elemein és saját objektumot építhetsz, de a legtöbb esetben a beépített JSON elegendő és már jól strukturált. + +## 5. lépés: Write JSON to file + +Most jön a puzzle utolsó darabja: a JSON payload mentése. A `File.WriteAllText` metódus biztosítja, hogy a fájl atomikusan létrejön (vagy felülíródik). Győződj meg róla, hogy a célkönyvtár létezik, különben `DirectoryNotFoundException`-t kapsz. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* Ha UTF‑8‑at BOM‑mal vagy más kódolást igényelsz, használd azt a túlterhelést, amely egy `Encoding` argumentumot fogad. + +## 6. lépés: Verify the output + +Egy gyors `Console.WriteLine` jelzi, hogy a folyamat sikeresen befejeződött. A JSON fájlt megnyithatod egy nézőben is, hogy ellenőrizd a struktúrát. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +A JSON tartalmazza minden szó helyzetét, ami hasznos, ha később UI‑ban szeretnéd kiemelni a szöveget. + +## Full Working Example + +Az alábbiakban a teljes, másolás‑beillesztésre kész program látható. Cseréld le a `YOUR_DIRECTORY`‑t a tényleges útvonalra, ahol a képed található. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Futtasd a programot (`dotnet run` a projekt mappájából), és megtalálod az `invoice.json`‑t az eredeti PNG mellé. + +## Common Pitfalls & How to Avoid Them + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **FileNotFoundException** a kép betöltésekor | Elgépelés vagy hiányzó fájl | Használd a `Path.Combine`‑t és ellenőrizd a `File.Exists`‑t a `FromFile` hívása előtt. | +| **Low confidence scores** | Gyenge képminőség, alacsony DPI | Előfeldolgozás `ocrImage.AdjustContrast`‑el vagy a kép felbontásának 300 DPI‑ra növelése. | +| **JSON file empty** | `ocrResult` null értéket adott vissza (a motor hibázott) | Ellenőrizd, hogy a képformátum támogatott-e, és hogy a licenc (ha van) helyesen van-e alkalmazva. | +| **Performance bottleneck on large batches** | `OcrEngine` újra‑létrehozása minden iterációban | Használd újra egyetlen `OcrEngine` példányt a kötegelt feldolgozás során, és csak a végén dobja el. | + +## Next Steps + +Most, hogy elsajátítottad a **c# OCR tutorial**‑t, érdemes lehet: + +- **Batch process** egy teljes mappát, és az JSON fájlokat egyetlen adatbázisba aggregálni. +- **Integrate** a kimenetet az Azure Cognitive Search‑el, hogy kereshető PDF‑eket kapj. +- **Add language support** a `ocrEngine.Language = OcrLanguage.Spanish` beállítással (vagy bármely támogatott nyelvvel). +- **Post‑process** a JSON‑t táblázatok vagy kulcs‑érték párok kinyerésére reguláris kifejezésekkel. + +Mindezek a kiterjesztések a lefektetett alapokra épülnek: képek betöltése OCR‑hez, szöveg kinyerése, JSON‑ra konvertálás és a JSON lemezre írása. + +--- + +### Conclusion + +Ebben a **c# OCR tutorial**‑ban végigvezettük a szükséges lépéseket a **load image for OCR**, **how to extract text**, az eredmény **OCR image to JSON** payload‑ra alakítása, majd végül a **write JSON to file** folyamatát. A teljes kódpélda készen áll bármely .NET projektbe való beillesztésre, és a magyarázatok megadják a szükséges kontextust, hogy a megoldást valós környezetben is testre szabhassad. + +Próbáld ki a saját nyugtáiddal vagy számláiddal – finomítsd a kép előfeldolgozást, kísérletezz különböző nyelvekkel, és figyeld, ahogy a JSON kimenet növekszik. Ha elakadsz, nézd át a problémákat tartalmazó táblázatot, vagy hagyj egy megjegyzést alább. Boldog kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/hungarian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..462b152b --- /dev/null +++ b/ocr/hungarian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Tanulja meg, hogyan lehet OCR-t végezni képen C#-ban, és JPG-t ePub formátumba + konvertálni az Aspose OCR használatával. Ez a lépésről‑lépésre útmutató azt is bemutatja, + hogyan lehet szöveget kinyerni a képből. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: hu +og_description: Hogyan OCR-eljünk képet C#-ban? Kövesd ezt az útmutatót a képről szöveg + kinyeréséhez és a JPG ePub formátumba konvertálásához az Aspose OCR-rel. +og_title: Hogyan OCR-eljünk képet C#-ban – JPG konvertálása ePub-ba +tags: +- Aspose OCR +- C# +- ePub conversion +title: Hogyan OCR-eljünk képet C#-ban – JPG konvertálása ePub-ba +url: /hu/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan OCR-eljünk képet C#‑ban – JPG konvertálása ePub‑ba + +Gondolkodtál már azon, **hogyan OCR-eljünk képet** közvetlenül egy C# konzolalkalmazásból? Nem vagy egyedül. Sok fejlesztő akad el, amikor egy fényképről kell szöveget kinyerni, majd azt egy olvasható ePub könyvbe csomagolni. + +Ebben a bemutatóban egy teljes, futtatható példán keresztül mutatjuk be, hogyan **nyerünk ki szöveget képből**, mentjük az eredményt ePub‑ként, és hogyan **konvertáljuk a JPG‑t ePub‑ba** anélkül, hogy elhagynád a fejlesztői környezetet. Nincs felesleges szöveg, csak a kód, amit ma másolhatsz‑beilleszthetsz és futtathatsz. + +## Mit fogsz megtanulni + +- Hogyan állítsd be az Aspose OCR motorját egy .NET projektben. +- A pontos lépések a **kép konvertálása ePub‑ra** az `OcrSaveFormat.Epub` opció használatával. +- Tippek a gyakori buktatók kezelésére, mint a nem támogatott képfájlformátumok vagy hiányzó betűtípusok. +- Egy teljes C# program, amelyet most azonnal lefordíthatsz és futtathatsz. + +**Előfeltételek**: .NET 6 SDK (vagy bármely friss .NET verzió), egy érvényes Aspose.OCR NuGet csomag, és egy képfájl (`input.jpg`), amelyet feldolgozni szeretnél. Ha még soha nem használtad a NuGet‑et, egyszerűen nyisd meg a Package Manager Console‑t és futtasd a `Install-Package Aspose.OCR` parancsot. + +Készen állsz? Merüljünk el benne. + +## 1. lépés – Hogyan OCR-eljünk képet és töltsük be a forrást + +Az első dolog, amire szükséged van, egy OCR motor példány és egy forráskép. Az Aspose OCR ezt egyszerűvé teszi: létrehozol egy `OcrEngine`‑t, majd betáplálod egy lemezről betöltött `OcrImage`‑et. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Miért fontos** – A motor egyszeri inicializálása alacsony memóriahasználatot biztosít, és a kép korai betöltése lehetővé teszi a fájlútvonal ellenőrzését, mielőtt a nehéz OCR munka elkezdődne. + +## 2. lépés – OCR futtatása és szöveg kinyerése a képből + +Most, hogy a kép a memóriában van, kérd meg a motort, hogy ismerje fel a karaktereket. A `Recognize` metódus egy `OcrResult` objektumot ad vissza, amely tartalmazza a nyers szöveget, a megbízhatósági pontszámokat és még az elrendezési információkat is. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro tipp** – Ha csak a szövegre van szükséged, és nem az ePub‑ra, itt megállhatsz. Az `ocrResult.Text` tulajdonság egy tiszta karakterlánc, amelyet bármely más rendszerbe továbbíthatsz. + +## 3. lépés – Az eredmény mentése ePub könyvként (JPG konvertálása ePub‑ba) + +Az Aspose OCR közvetlenül sorosíthatja az OCR eredményt több formátumba, köztük az ePub‑ba is. Ez a lépés pontosan megmutatja, hogyan **konvertáljuk a JPG‑t ePub‑ba** egyetlen sorban. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +A program futtatásakor a kinyert szöveg megjelenik a konzolon, és egy új `book_page.epub` fájl jelenik meg a forráskép mellett. Nyisd meg bármely ePub‑olvasóval (Calibre, Apple Books stb.), és a OCR‑szöveget egyoldalas könyvként, szépen formázva fogod látni. + +### Várt kimenet + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Ha az ePub helyesen nyílik meg, gratulálok – éppen befejeztél egy teljes **c# OCR példát**, amely egy JPEG‑et hordozható ePub‑vá alakít. + +## 4. lépés – Gyakori problémák képek ePub‑ba konvertálásakor + +Még egy megbízható könyvtárral is előfordulhatnak akadályok. Íme egy gyors GYIK: + +| Probléma | Miért fordul elő | Hogyan javítsuk | +|----------|------------------|-----------------| +| **Nem támogatott képfájl formátum** | Az Aspose OCR raster formátumokat (JPG, PNG, BMP) vár. | Először konvertáld a képet JPG‑ra vagy PNG‑ra, például a `System.Drawing.Image`‑el. | +| **Üres kimenet** | Alacsony képminőség vagy erős tömörítés. | Növeld a DPI‑t, használj tisztább beolvasást, vagy alkalmazz előfeldolgozást (`ocrEngine.Preprocess`). | +| **Hiányzó betűtípusok az ePub‑ban** | Az alapértelmezett ePub‑író rendszerbetűtípusokat használ, amelyek nem biztos, hogy beágyazottak. | Állítsd be az `ocrEngine.Config.FontsDirectory`‑t egy olyan mappára, ahol a szükséges .ttf fájlok vannak. | +| **Nagy ePub fájl** | Magas felbontású képek külön oldalként kerülnek beágyazásra. | Használd az `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` beállítást. | + +Ezek korai kezelése megakadályozza, hogy később hibákat keress. + +## 5. lépés – A példa bővítése (az alapokon túl) + +Most, hogy működő **kép konvertálása ePub‑ra** folyamatod van, biztosan érdekel, mi még lehetséges. Íme néhány ötlet, amit holnap kipróbálhatsz: + +1. **Kötegelt feldolgozás** – Egy mappában lévő JPG‑k bejárása, egy ePub generálása képenként, vagy több fejezetből álló ePub összeállítása. +2. **Nyelvválasztás** – Állítsd be `ocrEngine.Language = Language.English;` vagy bármely támogatott nyelvet a pontosság növeléséhez. +3. **Elrendezés megőrzése** – Először `OcrSaveFormat.Html`‑t használj, majd a HTML‑t csomagold ePub‑ba a gazdagabb formázásért. +4. **Felhőbe telepítés** – Csomagold a kódot Azure Function‑be vagy AWS Lambda‑ba, hogy OCR‑t‑ePub‑ot webszolgáltatásként kínálj. + +Mindez a **hogyan OCR-eljünk képet** logikán alapul, amelyet most lefedtünk. + +## Teljes működő kód (másolás‑beillesztés kész) + +Az alábbiakban a teljes program egy blokkban látható. Cseréld le a `YOUR_DIRECTORY`‑t a képfájlod tényleges elérési útjára. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Ne feledd** – A `Aspose.OCR` NuGet csomagot telepíteni kell, és a cél .NET futtatókörnyezetnek legalább .NET 5‑nek kell lennie a legjobb kompatibilitás érdekében. + +## Összegzés + +Épp most mutattuk be, **hogyan OCR-eljünk képet** C#‑ban, és hogyan alakítsuk ezeket a beolvasásokat tiszta ePub könyvekké – gyakorlatilag egy **JPG konvertálása ePub‑ba** munkafolyamatot, amelyet bármely projektbe be lehet illeszteni. A fenti lépések követésével képes leszel **szöveget kinyerni képből**, kezelni a gyakori széljegyeket, és a megoldást kötegelt feladatokra vagy felhőszolgáltatásokra bővíteni. + +Ha kíváncsi vagy a következő logikus lépésre, próbáld meg az ePub kimenetet PDF‑re (`OcrSaveFormat.Pdf`) cserélni, vagy az OCR‑szöveget egy fordítási API‑ba továbbítani. A lehetőségek csak a képzeleted szabhatnak határt, miután elsajátítottad az alapokat. + +Van kérdésed egy adott képfájlformátummal kapcsolatban, vagy szeretnél egy többoldalas ePub példát látni? Írj egy megjegyzést, és szívesen segítek. Boldog kódolást, és élvezd a képek könyvekké alakítását! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/hungarian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..881d19a0 --- /dev/null +++ b/ocr/hungarian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-01-01 +description: Az orosz szöveg azonnali felismerése az Aspose OCR C# használatával. + Tanulja meg a kínai szöveg felismerését, a PDF oldalszám olvasását, és a PDF oldal + szövegének konvertálását egyetlen útmutatóban. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: hu +og_description: Ismerje fel gyorsan az orosz szöveget az Aspose OCR C# segítségével. + Ez az útmutató azt is bemutatja, hogyan lehet felismerni a kínai szöveget, kiolvasni + a PDF oldalszámát, és átalakítani a PDF oldal szövegét. +og_title: Orosz szöveg felismerése az Aspose OCR C#-val – Teljes útmutató +tags: +- Aspose OCR +- C# +- PDF processing +title: Orosz szöveg felismerése Aspose OCR C#-val – Teljes többoldalas PDF útmutató +url: /hu/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# orosz szöveg felismerése Aspose OCR C#‑vel – Teljes többoldalas PDF útmutató + +Valaha is szükséged volt **orosz szöveg felismerésére** egy olyan PDF-ben, amely nyelveket kever, és elgondolkodtál, hogyan lehet ezt megoldani anélkül, hogy minden oldalhoz külön eszközt kellene használnod? Nem vagy egyedül. Sok valós projektben egyetlen PDF-et kapsz, amely különböző oldalakon angolt, oroszt és még kínait is tartalmaz, és mégis egyetlen, tiszta szövegkimenetet szeretnél. + +Ebben az útmutatóban pontosan megmutatjuk, hogyan **orosz szöveg felismerése** (és más nyelveket) használva a **Aspose OCR C#**‑t, miközben bemutatjuk, hogyan **pdf oldal számának olvasása**, **kínai szöveg felismerése**, és **pdf oldal szövegének konvertálása** egy kényelmes konzol kiíratásba. Nincsenek külső szolgáltatások, rejtett lépések – csak tiszta C# kód, amelyet egyszerűen másolhatsz és futtathatsz. + +> **Mit fogsz megtanulni** +> * Egy futtatható C# konzolalkalmazás, amely többoldalas PDF-et dolgoz fel. +> * Oldalankénti nyelvválasztás (orosz, kínai, angol). +> * Technikák a PDF oldal számának lekérdezésére és az egyes oldalak szövegének kinyerésére. +> * Tippek, buktatók és kiegészítések, amelyeket saját projektjeidben alkalmazhatsz. + +## Előkövetelmények + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.7+‑on is működik). +- **Aspose.OCR for .NET** NuGet csomag telepítve (`dotnet add package Aspose.OCR`). +- Egy PDF fájl, amely vegyes nyelveket tartalmaz; a bemutatóhoz a `mixed_lang.pdf` fájlt használjuk. +- Alapvető ismeretek a C# konzolalkalmazásokról. + +Ha valamelyik hiányzik, szerezd be a legújabb Aspose OCR‑t a NuGet‑ről, és helyezd a PDF‑et egy olyan helyre, amely elérhető a projekt mappájából. + +## 1. lépés – Az Aspose OCR motor inicializálása + +Az első dolog, amire szükséged van, egy `OcrEngine` példány. Ez az objektum tárolja az összes beállítást (például a nyelvet), és elvégzi a nehéz munkát. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Miért fontos:** +> A motor újrahasználható, így nem pazarolunk memóriát minden oldalhoz új példány létrehozásával. Újrahasználata lehetővé teszi a nyelv dinamikus változtatását, ami elengedhetetlen a **orosz szöveg felismeréséhez** egy oldalon és a **kínai szöveg felismeréséhez** egy másikon. + +## 2. lépés – A PDF betöltése és az oldalak számának meghatározása + +Mielőtt elkezdenénk a felismerést, szükségünk van a PDF objektumra és az oldal számra. Az Aspose OCR minden oldalt `OcrImage`‑ként kezel. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tipp:** Ha a PDF nagy, érdemes előbb leolvasni a számot, és eldönteni, hogy az összes oldalt vagy csak egy részhalmazt dolgozzuk fel. + +## 3. lépés – Minden oldal hozzárendelése a kívánt nyelvhez + +Az Aspose OCR sok nyelvet támogat, de meg kell mondanod, melyiket használja az egyes oldalakhoz. Az alábbiakban létrehozunk egy `Dictionary`‑t, ahol a kulcs a nulláról induló oldalindex. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Miért kulcsfontosságú:** +> Ezen térkép nélkül az OCR motor egyetlen alapértelmezett nyelvet próbálna minden oldalra, ami torz kimenetet eredményezne orosz vagy kínai szöveg esetén. Ez a lépés közvetlenül lehetővé teszi a **orosz szöveg felismerését** és a **kínai szöveg felismerését** helyesen. + +## 4. lépés – Az összes oldal bejárása, nyelv beállítása és szöveg felismerése + +Most minden oldalon végigiterálunk, a térkép alapján váltjuk a nyelvet, és meghívjuk a `Recognize`‑t. Az eredményt az `OcrResult` tárolja, amelyből a tiszta szöveget nyerjük ki. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Várható konzol kimenet + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **A folyamat magyarázata:** +> * A ciklus tiszteletben tartja a korábban kiírt **pdf oldal számának olvasása** értéket. +> * Az `ocrEngine.Settings.Language` minden iterációban történő cseréjével biztosítjuk a pontos **orosz szöveg felismerését** a 2. oldalon és a **kínai szöveg felismerését** a 3. oldalon. +> * A `Console.WriteLine` utasítások hatékonyan **pdf oldal szövegének konvertálását** végzik ember által olvasható karakterlánccá. + +## 5. lépés – Futtatás, ellenőrzés és finomhangolás + +1. A projekt felépítése (`dotnet build`). +2. Futtatás (`dotnet run`). +3. A konzol kimenet összehasonlítása az eredeti PDF‑el. + +Ha hiányzó karaktereket észlelsz, fontold meg: + +- **Az OCR pontosságának növelését** a `ocrEngine.Settings.DetectTextOrientation = true;` beállítással. +- **Egy egyedi nyelvi csomag biztosítását**, ha a beépített orosz vagy kínai szótárak elavultak. +- **A DPI módosítását** a PDF betöltésekor (`OcrImage.FromFile(path, 300)`), ami javíthatja a felismerést alacsony felbontású beolvasásoknál. + +## Bónusz: Szélsőséges esetek kezelése + +### Mi van, ha egy oldal nyelve nincs a térképben? + +A kód már most visszaesik az angolra, de hozzáadhatsz egy tartalékot is, amely figyelmeztetést naplóz: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Feldolgozhatunk-e több mint három nyelvet tartalmazó PDF‑eket? + +Természetesen. Bővítsd a `languageMap`‑et további indexekkel és támogatott `OcrLanguage` értékekkel (pl. `OcrLanguage.French`). A ciklus bármennyi oldalt kezelni fog. + +### Hogyan exportáljuk az eredményeket fájlba a konzol helyett? + +Cseréld le a `Console.WriteLine` hívásokat `File.AppendAllText("output.txt", …)`‑re, vagy használj egy `StringBuilder`‑t, amelyet a ciklus után egyszer írsz ki. + +## Kép illusztráció + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*A fenti kép bemutatja a konzol kimenetet, amikor **orosz szöveg felismerése** történik egy vegyes nyelvű PDF‑en.* + +## Összegzés + +Áttekintettünk egy teljes, vég‑től‑végig példát, amely megmutatja, hogyan **orosz szöveg felismerése** (és a **kínai szöveg felismerése**) egy többoldalas PDF‑ből az **Aspose OCR C#** használatával. A PDF oldal számának leolvasásával, az egyes oldalak megfelelő nyelvhez való hozzárendelésével és a dokumentum bejárásával **pdf oldal szövegének konvertálását** egyszerű karakterláncokká tudod elvégezni, amelyek készen állnak a tárolásra, indexelésre vagy további elemzésre. + +Röviden: + +- **Inicializáld** egyetlen `OcrEngine`‑t. +- **Töltsd be** a PDF‑et és **olvasd ki a pdf oldal számát**. +- **Térképezd** az oldalakat nyelvekre (orosz, kínai, stb.). +- **Iterálj**, állítsd be az `ocrEngine.Settings.Language`‑t, és **ismerd fel** minden oldalt. +- **Kimenet** vagy mentsd el a kinyert szöveget. + +Nyugodtan alkalmazd ezt a mintát nagyobb dokumentumokra, adj hozzá hibakezelést, vagy csatlakoztasd az eredményeket egy keresőindexhez. A lényeges ötlet – oldalankénti nyelvválasztás – változatlan marad, és ez teszi lehetővé a megbízható **orosz szöveg felismerését** vegyes nyelvű PDF‑ekben. + +Másik szituációd van, például képek beolvasása PDF‑ek helyett? Ugyanaz a motor működik; csak cseréld le az `OcrImage.FromFile`‑t `OcrImage.FromStream`‑re vagy `FromBitmap`‑ra. Boldog kódolást, és legyen az OCR‑ed mindig pontos! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/ocr-configuration/_index.md b/ocr/indonesian/net/ocr-configuration/_index.md index 1cc534ea..07e9dda0 100644 --- a/ocr/indonesian/net/ocr-configuration/_index.md +++ b/ocr/indonesian/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Buka kekuatan pengenalan gambar OCR di .NET dengan Aspose.OCR. Ekstrak teks deng Buka kemampuan OCR yang kuat dengan Aspose.OCR untuk .NET. Ekstrak teks dari gambar dengan mulus. ### [Operasi OCRO dengan Daftar dalam Pengenalan Gambar OCR](./ocr-operation-with-list/) Buka potensi Aspose.OCR untuk .NET. Lakukan pengenalan gambar OCR dengan mudah menggunakan daftar. Tingkatkan produktivitas dan ekstraksi data dalam aplikasi Anda. +### [Cara Menerapkan Lisensi di Aspose OCR – Panduan Langkah demi Langkah C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Pelajari cara mengaktifkan lisensi Aspose OCR dalam aplikasi C# Anda dengan panduan langkah demi langkah. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/indonesian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..bbca0e9e --- /dev/null +++ b/ocr/indonesian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Cara menerapkan lisensi untuk Aspose OCR di C#. Pelajari cara membaca + file, mengatur lisensi Aspose, menggunakan MemoryStream, dan memuat lisensi secara + efisien. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: id +og_description: Cara menerapkan lisensi untuk Aspose OCR di C#. Ikuti panduan ini + untuk membaca file lisensi, mengatur lisensi Aspose, menggunakan MemoryStream, dan + memverifikasi pengaturannya. +og_title: Cara Menerapkan Lisensi di Aspose OCR – Tutorial Lengkap C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Cara Menerapkan Lisensi di Aspose OCR – Panduan Langkah demi Langkah C# +url: /id/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menerapkan Lisensi di Aspose OCR – Panduan Lengkap C# + +Pernah bertanya-tanya **bagaimana cara menerapkan lisensi** untuk Aspose OCR tanpa harus mencari dokumentasi yang samar? Anda tidak sendirian. Kebanyakan pengembang mengalami masalah yang sama: mereka dapat membaca file, tetapi tidak tahu cara yang tepat untuk memasukkannya ke dalam perpustakaan. Dalam tutorial ini kami akan membahas setiap detail—dari memuat file `.lic` dari disk hingga memanggil `SetLicense` dengan `MemoryStream`. Pada akhir tutorial Anda akan memiliki solusi yang berfungsi dan dapat langsung dipasang ke proyek .NET apa pun. + +Kami juga akan membahas **cara membaca file** dengan aman, cara **menetapkan lisensi Aspose** yang tepat, dan mengapa menggunakan **MemoryStream** adalah pendekatan paling bersih. Jika Anda penasaran tentang **cara memuat lisensi** di lingkungan yang berbeda, tip tersebut juga disertakan. Tidak memerlukan referensi eksternal—hanya kode siap salin‑tempel. + +## Prasyarat + +- .NET 6.0 atau lebih baru (kode ini bekerja dengan .NET Core dan .NET Framework) +- Paket NuGet Aspose.OCR terpasang (`Install-Package Aspose.OCR`) +- File `Aspose.OCR.lic` yang valid ditempatkan di lokasi yang dapat dijangkau aplikasi Anda +- Familiaritas dasar dengan C# dan Visual Studio (atau IDE lain yang Anda sukai) + +> **Tips pro:** Simpan file lisensi di luar folder kontrol sumber Anda untuk menghindari commit tidak sengaja. + +## Langkah 1: Cara Membaca File – Memuat Byte Lisensi + +Hal pertama yang kita butuhkan adalah array byte mentah dari file lisensi. Menggunakan `File.ReadAllBytes` sederhana dan efisien, serta secara otomatis melempar pengecualian yang jelas jika path salah. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Mengapa ini penting:** Membaca file langsung ke memori menghindari kebocoran handle file dan memberi kita array byte bersih untuk diproses nanti. Ini juga membuat metode dapat digunakan kembali di aplikasi konsol, layanan web, atau Azure Functions. + +## Langkah 2: Cara Menggunakan MemoryStream – Menyiapkan Stream Lisensi + +Overload `License.SetLicense` milik Aspose mengharapkan sebuah `Stream`. Membungkus array byte dalam `MemoryStream` adalah cara idiomatik untuk memenuhi kebutuhan tersebut tanpa harus mengakses sistem file lagi. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Wawasan utama:** `MemoryStream` ringan dan cepat dibuang. Ia juga memungkinkan Anda menggunakan kembali array byte yang sama untuk beberapa perpustakaan jika Anda perlu menerapkan lebih dari satu lisensi produk Aspose. + +## Langkah 3: Menetapkan Lisensi Aspose – Inti dari “cara menerapkan lisensi” + +Setelah kita memiliki `MemoryStream`, menerapkan lisensi menjadi satu baris kode. Kelas `License` berada di namespace `Aspose.OCR`, jadi pastikan Anda telah menambahkan directive `using` yang tepat. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Jika lisensi tidak valid atau sudah kedaluwarsa, `SetLicense` akan gagal secara diam‑diam, dan perpustakaan akan beroperasi dalam mode percobaan. Untuk memastikan sepenuhnya, Anda dapat memeriksa fitur yang hanya tersedia pada versi berlisensi (misalnya pengaturan akurasi OCR) atau cukup mengandalkan pesan konfirmasi yang akan kami cetak nanti. + +## Langkah 4: Cara Memuat Lisensi – Menggabungkan Semua + +Berikut adalah program konsol lengkap yang dapat dijalankan, yang mendemonstrasikan **cara memuat lisensi** dari disk, menggunakan `MemoryStream`, dan memverifikasi bahwa lisensi berhasil diterapkan. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Output yang Diharapkan + +``` +License applied successfully. You can now perform OCR operations. +``` + +Jika Anda melihat pesan tersebut, perpustakaan sudah berlisensi penuh dan siap untuk tugas OCR produksi. + +## Kesalahan Umum & Cara Menghindarinya + +| Masalah | Mengapa Terjadi | Solusi | +|-------|----------------|-----| +| **FileNotFoundException** saat membaca lisensi | Path salah atau file tidak disertakan bersama aplikasi | Gunakan path absolut atau sematkan lisensi sebagai resource (lihat “pemuat alternatif” di bawah) | +| **Lisensi tidak diterapkan tetapi tidak ada error** | `SetLicense` secara diam‑diam kembali ke mode percobaan jika stream kosong atau rusak | Pastikan `licenseData.Length > 0` sebelum membuat `MemoryStream` | +| **MemoryStream tidak dibuang** | Lupa menambahkan `using` menyebabkan sumber daya tidak terkelola tetap terbuka | Selalu bungkus stream dalam blok `using` seperti yang ditunjukkan | + +### Alternatif: Menyematkan Lisensi sebagai Embedded Resource + +Jika Anda lebih suka tidak mengirim file `.lic` terpisah, tambahkan ke proyek Anda, atur **Build Action** menjadi **Embedded Resource**, dan baca seperti ini: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Kemudian panggil `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` dan lanjutkan dengan pendekatan `MemoryStream` yang sama. + +## Kesimpulan + +Kami telah membahas **cara menerapkan lisensi** untuk Aspose OCR dari awal hingga akhir: membaca file, membuat `MemoryStream`, memanggil `SetLicense`, dan mengonfirmasi aktivasi. Dengan mengikuti langkah‑langkah ini Anda menghilangkan tebakan, menghindari kesalahan umum, dan memastikan mesin OCR Anda berjalan dalam mode fitur penuh. + +Selanjutnya, Anda dapat mengeksplorasi **cara membaca file** secara asynchronous untuk layanan dengan throughput tinggi, atau menyelami pengaturan OCR lanjutan sekarang lisensi sudah terpasang dengan benar. Bagaimanapun, pola tetap sama—baca, stream, set, verifikasi. + +Punya pertanyaan tentang kasus khusus, seperti memuat lisensi di lingkungan ASP.NET Core atau menangani beberapa lisensi produk Aspose? Tinggalkan komentar di bawah, dan selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/ocr-optimization/_index.md b/ocr/indonesian/net/ocr-optimization/_index.md index 5400cdb4..cb9ffe05 100644 --- a/ocr/indonesian/net/ocr-optimization/_index.md +++ b/ocr/indonesian/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Jelajahi Aspose.OCR untuk .NET. Tingkatkan akurasi OCR dengan filter pra-pemrose Tingkatkan akurasi OCR dengan Aspose.OCR untuk .NET. Perbaiki ejaan, sesuaikan kamus, dan dapatkan pengenalan teks bebas kesalahan dengan mudah. ### [Simpan Hasil Multihalaman sebagai Dokumen dalam Pengenalan Gambar OCR](./save-multipage-result-as-document/) Buka potensi Aspose.OCR untuk .NET. Simpan hasil OCR multi halaman dengan mudah sebagai dokumen dengan panduan langkah demi langkah yang komprehensif ini. +### [Cara Batch OCR di C# dengan Mesin OCR Aspose](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Pelajari cara melakukan OCR secara batch di C# menggunakan mesin OCR Aspose untuk meningkatkan efisiensi pemrosesan gambar. +### [Pra-pemrosesan gambar OCR di C# – Tingkatkan Akurasi dengan Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Pelajari cara pra‑pemrosesan gambar OCR di C# untuk meningkatkan akurasi dengan Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/indonesian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..96981959 --- /dev/null +++ b/ocr/indonesian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-01-01 +description: Cara melakukan OCR batch menggunakan Aspose OCR Engine di C#. Pelajari + cara mengenali teks dari gambar dan mengekstrak teks dari file TIFF dengan akselerasi + GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: id +og_description: Cara melakukan OCR batch di C# dengan Aspose OCR Engine. Panduan ini + menunjukkan cara mengenali teks dari gambar dan mengekstrak teks dari file TIFF + secara efisien. +og_title: Cara Batch OCR di C# – Panduan Lengkap Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Cara Batch OCR di C# dengan Mesin OCR Aspose +url: /id/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Batch OCR di C# dengan Aspose OCR Engine + +Pernah bertanya‑tanya **bagaimana cara batch OCR** ketika Anda memiliki puluhan dokumen hasil pemindaian yang berada di dalam folder? Anda tidak sendirian—banyak pengembang mengalami hal yang sama saat beralih dari pengenalan gambar tunggal ke pemrosesan seluruh koleksi. Kabar baiknya, Aspose OCR membuatnya sangat mudah, baik Anda menjalankannya di CPU maupun memanfaatkan akselerasi GPU. + +Dalam tutorial ini kami akan menelusuri contoh lengkap yang dapat dijalankan yang **mengenali teks dari gambar** dan bahkan **mengekstrak teks dari file TIFF** secara massal. Tidak ada jalan pintas “lihat dokumentasi” yang samar—hanya solusi mandiri yang dapat Anda salin‑tempel dan jalankan hari ini. + +## Prasyarat + +Sebelum kita mulai, pastikan Anda memiliki: + +* .NET 6.0 atau yang lebih baru terpasang (kode menargetkan .NET 6, tetapi .NET 5 juga berfungsi). +* Paket NuGet Aspose.OCR untuk .NET (versi CPU dan GPU tersedia; instal yang sesuai dengan perangkat keras Anda). +* Sebuah folder dengan beberapa file TIFF atau PNG contoh yang ingin Anda proses. +* Visual Studio 2022 atau IDE lain pilihan Anda. + +> **Tips pro:** Jika Anda berencana menggunakan versi GPU, pastikan driver grafis Anda terbaru dan CUDA 11+ terpasang. Mesin akan beralih ke CPU secara otomatis jika tidak menemukan GPU yang kompatibel. + +## Langkah 1 – Siapkan Proyek dan Instal Aspose.OCR + +### H2: Buat Aplikasi Konsol Baru dan Tambahkan Aspose.OCR + +Buka terminal (atau Package Manager Console di Visual Studio) dan jalankan: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Jika Anda memiliki lisensi yang mendukung GPU, tambahkan paket GPU sebagai gantinya: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Itu saja—proyek Anda kini merujuk ke pustaka OCR yang akan kita gunakan untuk **batch OCR**. + +## Langkah 2 – Inisialisasi Mesin OCR (CPU atau GPU) + +### H2: Cara Batch OCR – Inisialisasi Mesin + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Mengapa ini penting:** Dengan mengatur `UseGpu`, Anda membiarkan Aspose menentukan jalur tercepat. Jika GPU tidak tersedia, mesin secara diam‑diam beralih kembali ke CPU, sehingga pekerjaan batch Anda tidak akan crash karena hardware yang hilang. + +## Langkah 3 – Kumpulkan File yang Ingin Diproses + +### H2: Mengenali Teks dari Gambar – Membuat Daftar File + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Catatan kasus tepi:** Jika Anda memiliki campuran format, ubah pola pencarian menjadi `"*.*"` dan saring berdasarkan ekstensi di dalam loop. Ini membuat batch tetap fleksibel. + +## Langkah 4 – Proses Setiap Gambar dan Tampilkan Pratinjau + +### H2: Ekstrak Teks dari TIFF – Loop Melalui File + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Apa yang akan Anda lihat:** Untuk setiap TIFF, konsol mencetak sesuatu seperti: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Pratinjau itu mengonfirmasi batch berhasil tanpa harus membuka setiap file secara manual. + +## Langkah 5 – Simpan Hasil (Opsional tapi Berguna) + +### H3: Simpan Output OCR ke File Teks + +Jika Anda memerlukan teks lengkap untuk pemrosesan selanjutnya, tambahkan ini di dalam loop `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Sekarang setiap TIFF mendapatkan file `.txt` pendamping yang berisi output OCR lengkap—sempurna untuk pengindeksan, pencarian, atau memberi makan ke model bahasa. + +## Langkah 6 – Jalankan Demo dan Verifikasi + +1. Bangun proyek: `dotnet build`. +2. Jalankan: `dotnet run --project GpuBatchDemo.csproj`. + +Anda akan melihat baris pratinjau tercetak ke konsol, dan (jika Anda menambahkan langkah opsional) serangkaian file `.txt` di samping gambar sumber Anda. + +### H3: Kesalahan Umum & Cara Memperbaikinya + +| Gejala | Penyebab Kemungkinan | Solusi | +|---------|----------------------|--------| +| **Kosong `ocrResult.Text`** | Gambar terlalu gelap atau DPI rendah | Pra‑proses gambar (tingkatkan kontras, perbesar) atau setel `ocrEngine.Settings.PreprocessImage = true`. | +| **Kesalahan GPU “Versi driver CUDA tidak cukup”** | Driver usang | Perbarui driver GPU, atau setel `UseGpu = false` untuk memaksa CPU. | +| **Pengecualian “File tidak ditemukan”** | Pemilih path salah pada Linux/macOS | Gunakan `Path.Combine` atau garis miring maju (`/`). | + +## Langkah 7 – Skalakan (Lebih dari Beberapa File) + +Saat Anda beralih dari beberapa TIFF ke ribuan, pertimbangkan: + +* **Pemrosesan paralel:** Bungkus `foreach` dalam `Parallel.ForEach` (pastikan instance mesin thread‑safe; jika tidak, buat satu per thread). +* **I/O berpotongan:** Baca gambar dalam batch untuk menghindari kehabisan RAM. +* **Logging:** Tulis progres ke file log; membantu melanjutkan setelah crash. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Ingat:** Memori GPU bersifat bersama, jadi memunculkan terlalu banyak pekerjaan GPU paralel justru dapat memperlambat Anda. Uji dengan beberapa thread terlebih dahulu. + +## Contoh Kerja Penuh (Siap Salin‑Tempel) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Menjalankan program ini akan **mengenali teks dari gambar**, **mengekstrak teks dari TIFF**, dan mendemonstrasikan **cara batch OCR** secara efisien. + +--- + +## Kesimpulan + +Anda kini memiliki contoh lengkap, ujung‑ke‑ujung tentang **cara batch OCR** di C# menggunakan mesin OCR Aspose. Tutorial ini mencakup semua mulai dari menyiapkan proyek, mengaktifkan akselerasi GPU, membangun daftar file, memproses setiap gambar, hingga menyimpan hasil. Baik Anda mengekstrak teks dari file TIFF atau format gambar lainnya, pola yang sama dapat diterapkan—cukup ganti ekstensi file. + +Siap untuk langkah selanjutnya? Cobalah mengintegrasikan output OCR dengan indeks pencarian, beri makan teks ke model bahasa besar, atau bereksperimen dengan pemrosesan paralel untuk menghemat menit pada batch besar. Langit adalah batasnya, dan Anda sudah memiliki fondasi untuk membangunnya. + +Punya pertanyaan atau ingin berbagi trik batch‑OCR Anda? Tinggalkan komentar di bawah—selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/indonesian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..da6a587a --- /dev/null +++ b/ocr/indonesian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: praproses gambar OCR untuk meningkatkan akurasi. Pelajari cara mengenali + teks pada gambar, meningkatkan akurasi OCR, memuat gambar OCR, dan menampilkan teks + OCR menggunakan Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: id +og_description: praproses OCR gambar untuk meningkatkan akurasi. Panduan ini menunjukkan + cara mengenali teks pada gambar, memuat OCR gambar, menerapkan filter, dan menampilkan + teks OCR. +og_title: praproses OCR gambar di C# – Tingkatkan Akurasi dengan Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: praproses gambar OCR di C# – Tingkatkan akurasi dengan Aspose OCR +url: /id/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Tingkatkan Akurasi dengan Aspose OCR + +Pernah bertanya-tanya bagaimana **preprocess image ocr** sehingga mesin benar‑benar membaca apa yang ada di halaman? Anda tidak sendirian—banyak pengembang menemui kebuntuan ketika pemindaian yang berisik dan miring menolak bekerja. Kabar baiknya, beberapa langkah pra‑pemrosesan cerdas dapat mengubah gambar zona bencana menjadi teks bersih yang dapat dibaca. + +Dalam tutorial ini kita akan menelusuri contoh lengkap yang siap dijalankan untuk **recognize text image** file, **improve OCR accuracy**, dan akhirnya **display OCR text** di konsol. Pada akhir tutorial Anda akan tahu cara **load image OCR** aset, menambahkan filter seperti koreksi kemiringan dan pengurangan noise, serta mendapatkan hasil yang dapat diandalkan—semua dengan Aspose.OCR untuk .NET. + +## Apa yang Akan Anda Pelajari + +- Cara membuat instance `OcrEngine` dan mengonfigurasi filter pra‑pemrosesan. +- Mengapa filter koreksi kemiringan dan pengurangan noise penting untuk **improve OCR accuracy**. +- Kode tepat untuk **load image ocr** file dan menjalankan pengenalan. +- Cara **display OCR text** dengan cara yang ramah pengguna. +- Tips, jebakan, dan penyesuaian opsional yang dapat Anda terapkan dalam proyek dunia nyata. + +### Prasyarat + +- .NET 6+ (atau .NET Framework 4.7+) terpasang di mesin Anda. +- Lisensi Aspose.OCR (versi percobaan gratis cukup untuk demo ini). +- Pengetahuan dasar C#—tidak memerlukan trik lanjutan. + +Jika ada yang belum familiar, cukup jeda dan pasang komponen yang kurang; sisanya mengasumsikan semuanya sudah siap. + +--- + +## preprocess image ocr – Menyiapkan Filter + +Hal pertama yang perlu Anda pahami adalah **mengapa preprocessing penting**. Mesin OCR hebat dalam membaca teks yang tajam dan lurus, tetapi pemindaian dunia nyata sering mengalami rotasi, blur, atau noise latar belakang. Dengan memberi mesin gambar yang sudah dibersihkan, peluang transkripsi yang benar meningkat secara signifikan. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Apa yang terjadi di sini?** +- **Langkah 1** membuat engine—inti dari pustaka Aspose OCR. +- **Langkah 2** menambahkan dua filter. `SkewCorrectionFilter` memutar gambar kembali ke posisi horizontal, sementara `DenoiseFilter` menghaluskan noise pada tingkat piksel. +- **Langkah 3** bersifat opsional namun berguna; Anda dapat membatasi sudut maksimum yang akan dikoreksi engine, sehingga menghindari over‑rotation pada halaman yang sudah lurus. +- **Langkah 4** adalah tempat Anda **load image OCR** data. Ganti `YOUR_DIRECTORY/skewed_noisy.jpg` dengan path ke file uji Anda. +- **Langkah 5** menjalankan OCR dan menghasilkan `OcrResult`. +- **Langkah 6** **display OCR text** di konsol, memberikan umpan balik langsung. + +> **Pro tip:** Jika output masih berisi karakter kacau, coba tingkatkan `MaxAngle` atau tambahkan `ContrastFilter` sebelum langkah denoise. + +--- + +## recognize text image – Memuat File dengan Benar + +Salah satu hal yang sering membuat bingung adalah **load image ocr** dengan format atau DPI yang salah. Aspose.OCR mendukung PNG, JPEG, TIFF, BMP, dan bahkan gambar berbasis PDF. Namun, engine bekerja paling baik dengan DPI 300 atau lebih tinggi untuk dokumen cetak. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Jika Anda menangani TIFF multi‑halaman, Anda dapat melakukan loop pada setiap frame: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Mengapa ini penting untuk improve OCR accuracy?** Resolusi yang lebih tinggi mempertahankan bentuk setiap karakter, memberi pengenalan lebih banyak titik data. Gambar dengan DPI rendah sering menghasilkan glyph yang menyatu atau terputus, yang akan disalahartikan engine. + +--- + +## improve OCR accuracy – Menyesuaikan Parameter Filter + +Pengaturan filter default adalah titik awal yang baik, tetapi Anda dapat mengoptimalkan kinerjanya lebih jauh. + +| Filter | Properti Kunci | Nilai Tipikal | Kapan Disesuaikan | +|--------|----------------|---------------|-------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (derajat) | Gambar yang sangat miring (hingga 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Scan sangat berisik; naikkan menjadi `0.8`. | +| `ContrastFilter` (opsional) | `Level` | `1.2` | Screenshot dengan kontras rendah. | + +Contoh menyesuaikan keduanya: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Kasus khusus:** Jika gambar Anda berisi catatan tulisan tangan dan teks cetak, Anda mungkin ingin menambahkan `BinarizationFilter` sebelum denoise untuk memisahkan latar depan dari latar belakang. + +--- + +## display OCR text – Memformat Output + +Output konsol biasa cukup untuk demo, tetapi kode produksi sering memerlukan string yang dibersihkan, baris baru, atau bahkan JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Jika Anda memerlukan JSON untuk respons API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Sekarang Anda telah **display OCR text** dalam format yang dapat dikonsumsi layanan hilir. + +--- + +## Contoh Lengkap yang Berfungsi – Menggabungkan Semua + +Berikut adalah program akhir yang berdiri sendiri, dapat Anda salin‑tempel ke proyek konsol baru. Program ini mencakup filter opsional, pemuatan gambar resolusi tinggi, dan output bersih. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Output konsol yang diharapkan (contoh):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Jika Anda menjalankan program dengan file yang berbeda, teks dan tingkat kepercayaan akan berubah sesuai. + +--- + +## Pertanyaan Umum & Jawaban + +**T: Bagaimana jika gambar saya sudah lurus?** +J: Filter kemiringan akan mendeteksi sudut mendekati nol dan pada dasarnya tidak melakukan apa‑apa, sehingga Anda dapat membiarkannya tetap aktif. + +**T: Apakah Aspose.OCR mendukung bahasa selain Inggris?** +J: Ya—cukup atur `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (atau bahasa lain yang didukung) sebelum memanggil `Recognize`. + +**T: Bagaimana cara menangani PDF multi‑halaman?** +J: Konversi setiap halaman menjadi gambar (Aspose.PDF dapat melakukannya) dan berikan satu per satu ke instance `OcrEngine` yang sama. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/text-recognition/_index.md b/ocr/indonesian/net/text-recognition/_index.md index 7aee7bb8..18874b59 100644 --- a/ocr/indonesian/net/text-recognition/_index.md +++ b/ocr/indonesian/net/text-recognition/_index.md @@ -55,9 +55,17 @@ Tingkatkan aplikasi .NET Anda dengan Aspose.OCR untuk pengenalan teks gambar yan Buka potensi OCR di .NET dengan Aspose.OCR. Ekstrak teks dari PDF dengan mudah. Unduh sekarang untuk pengalaman integrasi yang lancar. ### [Kenali Tabel dalam Pengenalan Gambar OCR](./recognize-table/) Buka potensi Aspose.OCR untuk .NET dengan panduan komprehensif kami tentang mengenali tabel dalam pengenalan gambar OCR. +### [Tutorial OCR C#: Ekstrak Teks dari Gambar dengan Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Pelajari cara mengekstrak teks dari gambar menggunakan Aspose OCR dalam aplikasi C# dengan langkah-langkah mudah. +### [Tutorial OCR C# – Ekstrak Teks dari Gambar dan Ekspor ke JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Pelajari cara mengekstrak teks dari gambar menggunakan Aspose OCR di C# dan mengekspor hasilnya ke format JSON dengan mudah. +### [Cara OCR Gambar di C# – Mengonversi JPG ke ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Pelajari cara menggunakan Aspose.OCR di C# untuk mengubah gambar JPG menjadi file ePub dengan mudah. +### [Mengenali Teks Rusia dengan Aspose OCR C# – Panduan PDF Multi‑Halaman Lengkap](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Pelajari cara mengenali teks berbahasa Rusia dalam PDF multi‑halaman menggunakan Aspose OCR dengan C# secara lengkap. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..89e115de --- /dev/null +++ b/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial OCR C# yang menunjukkan cara mengekstrak teks dari gambar, melakukan + OCR pada file JPG menggunakan Aspose OCR. Pelajari cara memuat gambar untuk OCR + dan mendapatkan hasil yang akurat. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: id +og_description: Tutorial OCR C# yang memandu Anda melalui pengekstrakan teks dari + gambar, melakukan OCR pada JPG, dan memuat gambar untuk OCR menggunakan Aspose. +og_title: c# tutorial OCR – Ekstrak Teks dari Gambar dengan Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'tutorial OCR c#: Ekstrak Teks dari Gambar dengan Aspose OCR' +url: /id/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tutorial c# OCR – Ekstrak Teks dari Gambar dengan Aspose OCR + +Mencari **c# ocr tutorial** yang benar‑benar berfungsi? Dalam panduan ini kami akan menunjukkan cara **mengekstrak teks dari gambar** dan **melakukan OCR pada file JPG** menggunakan pustaka Aspose.OCR. Baik Anda sedang membangun pemindai struk, pengarsip dokumen, atau sekadar penasaran membaca teks dari foto, langkah‑langkah di bawah ini akan membawa Anda dari nol hingga kode yang berfungsi dalam hitungan menit. + +Kami akan membahas semua yang Anda perlukan: menginstal paket, memuat gambar untuk OCR, mengonfigurasi sumber daya bahasa, menjalankan mesin pengenalan, dan menangani jebakan paling umum. Pada akhir tutorial Anda akan memiliki aplikasi konsol mandiri yang mencetak teks yang dikenali ke konsol—tanpa layanan eksternal. + +## Apa yang Anda Butuhkan + +- .NET 6.0 atau lebih baru (kode ini juga bekerja dengan .NET Framework 4.6+) +- Visual Studio 2022, VS Code, atau editor C# apa pun yang Anda sukai +- File gambar yang berisi teks Rusia (Cyrillic), misalnya `receipt_ru.jpg` +- Koneksi internet untuk pertama kali dijalankan (Aspose akan mengunduh sumber daya bahasa secara otomatis) + +Jika Anda sudah memiliki semua ini, bagus—mari kita mulai. + +## Langkah 1: Instal Aspose.OCR dan Buat Proyek Baru + +Pertama‑tama, tambahkan paket NuGet Aspose.OCR ke proyek Anda. Buka terminal di folder solusi Anda dan jalankan: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Gunakan flag `--version` untuk mengunci ke rilis stabil terbaru, misalnya `Aspose.OCR 23.9.0`. + +Selanjutnya, buat proyek konsol sederhana (lewatkan langkah ini jika Anda sudah memilikinya): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Sekarang Anda memiliki kanvas bersih di mana Anda dapat menempelkan kode contoh lengkap nanti. + +## Langkah 2: Muat Gambar untuk OCR + +Memuat gambar adalah langkah fungsional pertama dalam **c# ocr tutorial** apa pun. Aspose.OCR menerima jalur file, aliran, atau bahkan `Bitmap`. Untuk contoh kami, kami akan tetap sederhana dan memuat dari disk: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Mengapa ini penting:** Dengan memuat gambar secara eksplisit, Anda memberi mesin target yang jelas, yang meningkatkan akurasi—terutama saat menangani PDF multi‑halaman atau input berformat campuran. + +## Langkah 3: Konfigurasi Bahasa dan Unduh Sumber Daya Otomatis + +Aspose.OCR dilengkapi dengan paket bahasa yang dapat diunduh sesuai permintaan. Mengaktifkan unduhan otomatis memastikan mesin mengambil data bahasa Rusia pada kali pertama Anda menjalankan kode. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Penjelasan:** +> • `AutoDownloadResources = true` menghilangkan langkah manual mengunduh file `.dat`. +> • Menetapkan `Language` memberi tahu mesin kumpulan karakter apa yang diharapkan, secara dramatis meningkatkan kecepatan dan akurasi pengenalan. + +## Langkah 4: Jalankan OCR dan Dapatkan Teks yang Diakui + +Sekarang pekerjaan berat terjadi. Metode `Recognize` memproses gambar dan mengembalikan objek `OcrResult` yang berisi string yang diekstrak. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Saat Anda mengeksekusi program, Anda akan melihat sesuatu seperti: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Apa yang diharapkan:** Output tepatnya tergantung pada kualitas gambar sumber, tetapi mesin berbasis jaringan saraf Aspose biasanya menangani struk bersih dan formulir cetak dengan fidelitas tinggi. + +## Contoh Lengkap yang Berfungsi + +Berikut adalah **kode lengkap yang dapat dijalankan** yang menggabungkan semua langkah. Salin‑tempel ke `Program.cs`, ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya, dan jalankan `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Jika Anda perlu **mengekstrak teks dari gambar** dengan format selain JPG (PNG, BMP, TIFF), cukup ubah ekstensi file—Aspose menangani semuanya. + +## Langkah 5: Kendala Umum & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Karakter sampah** | Gambar beresolusi rendah atau kompresi berat | Gunakan sumber yang berkualitas lebih tinggi, atau pra‑proses dengan `Bitmap` (mis., tingkatkan kontras) | +| **Bahasa tidak dikenali** | Paket bahasa tidak diunduh | Pastikan `AutoDownloadResources` bernilai `true` dan mesin memiliki akses internet pada kali pertama | +| **Null `ocrResult.Text`** | Jalur gambar salah atau file tidak ada | Verifikasi jalur, gunakan `File.Exists` sebelum memuat | +| **Keterlambatan kinerja** | Batch besar gambar diproses secara berurutan | Pakai satu instance `OcrEngine` untuk semua pemanggilan | + +### Bonus: Membaca Banyak File dalam Loop + +Jika Anda perlu **melakukan OCR pada JPG** di sebuah folder, bungkus logika dalam `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Pola ini skalabel dengan baik untuk pipeline pemrosesan struk. + +## Kesimpulan + +Anda baru saja menyelesaikan **c# ocr tutorial** yang menunjukkan cara **mengekstrak teks dari gambar**, **melakukan OCR pada JPG**, dan **memuat gambar untuk OCR** menggunakan Aspose.OCR. Program contoh ini memperlihatkan alur lengkap—dari menginstal paket NuGet hingga mencetak teks Cyrillic yang dikenali—sehingga Anda dapat menyalinnya ke proyek .NET mana pun secara langsung. + +Siap untuk langkah berikutnya? Coba ganti `OcrLanguage.Russian` dengan `OcrLanguage.English` untuk mengenali struk berbahasa Inggris, atau bereksperimen dengan opsi `OcrEngine.Settings` (mis., `PageSegmentationMode`, `ImagePreprocessing`) untuk menyempurnakan akurasi. Anda juga dapat mengintegrasikan output ke basis data, menghasilkan PDF, atau mengirimnya ke API terjemahan. + +Jika Anda mengalami kendala, periksa dokumentasi Aspose.OCR atau tinggalkan komentar di bawah. Selamat coding, semoga hasil OCR Anda selalu jernih! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..16585242 --- /dev/null +++ b/ocr/indonesian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial OCR C# yang menunjukkan cara mengekstrak teks, memuat gambar + untuk OCR, dan menulis JSON ke file menggunakan Aspose.OCR – panduan langkah demi + langkah. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: id +og_description: Tutorial OCR c# yang memandu Anda melalui cara mengekstrak teks dari + gambar, memuat gambar untuk OCR, dan menulis JSON ke file menggunakan Aspose.OCR. +og_title: tutorial OCR c# – Ekstrak Teks dan Ekspor ke JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Tutorial OCR c# – Ekstrak Teks dari Gambar dan Ekspor ke JSON +url: /id/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Ekstrak Teks dari Gambar dan Ekspor ke JSON + +ern bertanya‑tanya bagaimana cara mengekstrak teks dari faktur yang dipindai tanpa menghabiskan berjam‑jam menulis parser khusus? Anda tidak sendirian. Dalam **c# OCR tutorial** ini kami akan menunjukkan secara tepat cara memuat gambar untuk OCR, menjalankan mesin pengenalan, dan kemudian **menulis JSON ke file** sehingga Anda dapat mengirim data ke sistem hilir. + +Bayangkan Anda memiliki folder berisi kwitansi, masing‑masing bernama `receipt1.png`, `receipt2.png`, dan Anda membutuhkan cara cepat untuk mengubahnya menjadi catatan JSON yang dapat dicari. Itulah masalah yang akan kami selesaikan, dan pada akhir Anda akan memiliki aplikasi konsol siap‑jalankan yang melakukan hal itu. Tanpa dependensi tambahan selain Aspose.OCR, dan tanpa sulap—hanya langkah‑langkah yang jelas dan dapat direproduksi. + +> **Apa yang akan Anda pelajari** +> - Cara **load image for OCR** menggunakan Aspose.OCR. +> - Cara terbaik untuk **how to extract text** dan mendapatkan skor kepercayaan. +> - Mengonversi hasil OCR menjadi payload **OCR image to JSON** yang terstruktur rapi. +> - Aman **write JSON to file** dan memverifikasi output. + +## Prasyarat + +- .NET 6 SDK atau yang lebih baru (kode ini juga berfungsi di .NET Core). +- Visual Studio 2022 atau editor apa pun yang Anda sukai. +- Paket NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- File gambar (PNG, JPG, BMP) yang ingin Anda proses – untuk demo kami akan menggunakan `invoice.png`. + +Jika Anda kekurangan salah satu dari ini, unduh SDK dari situs Microsoft dan tambahkan paket NuGet melalui Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Sekarang dasar‑dasarnya sudah siap, mari kita selami implementasi sebenarnya. + +## Langkah 1: c# OCR tutorial – Inisialisasi Mesin OCR + +Sebelum kita dapat **load image for OCR**, kita memerlukan sebuah instance mesin yang akan menggerakkan proses pengenalan. Kelas `OcrEngine` ringan, namun praktik yang baik adalah membungkusnya dalam blok `using` sehingga sumber daya dilepaskan dengan cepat. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Jika Anda berencana memproses banyak gambar dalam satu batch, gunakan kembali instance `OcrEngine` yang sama alih‑alih membuat yang baru setiap kali. Ini mengurangi beban memori dan mempercepat proses. + +## Langkah 2: Muat gambar untuk OCR + +Sekarang kita benar‑benar **load image for OCR**. Aspose.OCR mendukung berbagai format, sehingga Anda dapat menunjuk ke PNG, JPEG, atau bahkan TIFF multi‑halaman. Metode `OcrImage.FromFile` membaca file dan menyiapkannya untuk pengenalan. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Mengapa ini penting:** Memuat gambar secara terpisah memungkinkan Anda memeriksa dimensi, DPI, atau bahkan melakukan pra‑proses (misalnya binarisasi) sebelum mengirimnya ke mesin. Jika gambar rusak, `FromFile` akan melempar pengecualian yang jelas, yang dapat Anda tangkap dan log. + +## Langkah 3: Cara mengekstrak teks – Jalankan pengenalan + +Dengan gambar di tangan, kita akhirnya dapat **how to extract text** darinya. Metode `Recognize` mengembalikan objek `OcrResult` yang berisi tidak hanya teks biasa tetapi juga data posisi dan skor kepercayaan untuk setiap kata. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Beberapa PDF mengandung lapisan teks tak terlihat. Jika Anda memberi halaman PDF yang dirender sebagai gambar, mesin mungkin tidak melihat apa‑apa. Dalam kasus tersebut, pertimbangkan menggunakan Aspose.PDF untuk mengekstrak lapisan tersembunyi terlebih dahulu, kemudian baru beralih ke OCR bila diperlukan. + +## Langkah 4: OCR image to JSON – Konversi hasil + +Kelas `OcrResult` menyediakan helper `ToJson()` yang nyaman untuk menyerialkan seluruh set hasil—termasuk kotak pembatas setiap kata dan skor kepercayaan—ke dalam string JSON. Ini cara paling bersih untuk mencapai **OCR image to JSON** tanpa menulis serializer sendiri. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Jika Anda lebih suka skema khusus, Anda dapat mengiterasi `ocrResult.Words` dan membangun objek Anda sendiri, tetapi untuk kebanyakan skenario JSON bawaan sudah cukup dan sudah terstruktur dengan baik. + +## Langkah 5: Tulis JSON ke file + +Kini tiba bagian akhir dari puzzle: menyimpan payload JSON. Metode `File.WriteAllText` memastikan file dibuat (atau ditimpa) secara atomik. Pastikan direktori target ada, bila tidak Anda akan mendapat `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* Jika Anda membutuhkan UTF‑8 dengan BOM atau encoding lain, gunakan overload yang menerima argumen `Encoding`. + +## Langkah 6: Verifikasi output + +Sebuah `Console.WriteLine` singkat memberi tahu kita proses selesai dengan sukses. Anda juga dapat membuka file JSON di penampil untuk mengonfirmasi strukturnya. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Potongan JSON yang Diharapkan + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON mencakup lokasi setiap kata, yang berguna bila Anda nanti ingin menyorot teks dalam UI. + +## Contoh Lengkap yang Berfungsi + +Berikut adalah program lengkap yang siap disalin‑tempel. Ganti `YOUR_DIRECTORY` dengan jalur sebenarnya tempat gambar Anda berada. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Jalankan program (`dotnet run` dari folder proyek) dan Anda akan menemukan `invoice.json` berdampingan dengan PNG asli Anda. + +## Kesalahan Umum & Cara Menghindarinya + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** saat memuat gambar | Salah ketik jalur atau file tidak ada | Gunakan `Path.Combine` dan periksa `File.Exists` sebelum memanggil `FromFile`. | +| **Low confidence scores** | Kualitas gambar buruk, DPI rendah | Pra‑proses dengan `ocrImage.AdjustContrast` atau tingkatkan gambar ke 300 DPI. | +| **JSON file empty** | `ocrResult` mengembalikan null (mesin gagal) | Pastikan format gambar didukung dan lisensi (jika ada) diterapkan dengan benar. | +| **Performance bottleneck on large batches** | Membuat ulang `OcrEngine` tiap iterasi | Gunakan kembali satu instance `OcrEngine` untuk seluruh batch, disposes hanya di akhir. | + +## Langkah Selanjutnya + +Sekarang Anda telah menguasai **c# OCR tutorial**, Anda mungkin ingin: + +- **Batch process** seluruh folder dan menggabungkan file JSON menjadi satu basis data. +- **Integrate** output dengan Azure Cognitive Search untuk PDF yang dapat dicari. +- **Add language support** dengan mengatur `ocrEngine.Language = OcrLanguage.Spanish` (atau bahasa lain yang didukung). +- **Post‑process** JSON untuk mengekstrak tabel atau pasangan kunci‑nilai menggunakan ekspresi reguler. + +Setiap ekstensi ini dibangun di atas konsep inti yang telah kami bahas: memuat gambar untuk OCR, mengekstrak teks, mengonversi ke JSON, dan menulis JSON ke disk. + +--- + +### Kesimpulan + +Dalam **c# OCR tutorial** ini kami menelusuri setiap langkah yang diperlukan untuk **load image for OCR**, **how to extract text**, mengubah hasil menjadi payload **OCR image to JSON**, dan akhirnya **write JSON to file**. Contoh kode lengkap siap disisipkan ke proyek .NET apa pun, dan penjelasan memberi Anda konteks untuk menyesuaikan solusi dengan skenario dunia nyata. + +Cobalah dengan kumpulan kwitansi atau faktur Anda sendiri—sesuaikan pra‑proses gambar, bereksperimen dengan bahasa berbeda, dan saksikan output JSON berkembang. Jika Anda menemui kendala, tinjau kembali tabel kesalahan atau tinggalkan komentar di bawah. Selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/indonesian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..f1d3ba49 --- /dev/null +++ b/ocr/indonesian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-01-01 +description: Pelajari cara melakukan OCR pada gambar di C# dan mengonversi JPG ke + ePub menggunakan Aspose OCR. Panduan langkah demi langkah ini juga menunjukkan cara + mengekstrak teks dari gambar. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: id +og_description: Cara melakukan OCR gambar di C#? Ikuti panduan ini untuk mengekstrak + teks dari gambar dan mengonversi JPG ke ePub dengan Aspose OCR. +og_title: Cara OCR Gambar di C# – Mengonversi JPG ke ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Cara OCR Gambar di C# – Mengonversi JPG ke ePub +url: /id/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara OCR Gambar di C# – Mengonversi JPG ke ePub + +Pernah bertanya-tanya **bagaimana cara OCR gambar** secara langsung dari aplikasi konsol C#? Anda bukan satu-satunya. Banyak pengembang mengalami kebuntuan ketika mereka perlu mengambil teks dari foto dan kemudian mengemas teks tersebut ke dalam buku ePub yang dapat dibaca. + +Dalam tutorial ini kami akan membahas contoh lengkap yang dapat dijalankan yang **mengekstrak teks dari gambar**, menyimpan hasilnya sebagai ePub, dan menunjukkan cara **mengonversi JPG ke ePub** tanpa meninggalkan IDE Anda. Tanpa basa‑basi, hanya kode yang dapat Anda salin‑tempel dan jalankan hari ini. + +## Apa yang Akan Anda Pelajari + +- Cara menyiapkan mesin Aspose OCR dalam proyek .NET. +- Langkah‑langkah tepat untuk **mengonversi gambar ke epub** menggunakan opsi `OcrSaveFormat.Epub`. +- Tips untuk menangani jebakan umum seperti format gambar yang tidak didukung atau font yang hilang. +- Program C# lengkap yang dapat Anda kompilasi dan jalankan sekarang juga. + +**Prasyarat**: .NET 6 SDK (atau versi .NET terbaru apa pun), paket NuGet Aspose.OCR yang valid, dan file gambar (`input.jpg`) yang ingin Anda proses. Jika Anda belum pernah menggunakan NuGet sebelumnya, cukup buka Package Manager Console dan jalankan `Install-Package Aspose.OCR`. + +Siap? Mari kita mulai. + +## Langkah 1 – Cara OCR Gambar dan Memuat Sumber + +Hal pertama yang Anda butuhkan adalah sebuah instance mesin OCR dan gambar sumber. Aspose OCR membuat ini sederhana: Anda membuat sebuah `OcrEngine`, lalu memberinya sebuah `OcrImage` yang dimuat dari disk. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Mengapa ini penting** – Menginisialisasi mesin hanya sekali menjaga penggunaan memori tetap rendah, dan memuat gambar lebih awal memungkinkan Anda memverifikasi jalur file sebelum pekerjaan OCR yang berat dimulai. + +## Langkah 2 – Jalankan OCR dan Ekstrak Teks dari Gambar + +Setelah gambar berada di memori, minta mesin untuk mengenali karakter. Metode `Recognize` mengembalikan objek `OcrResult` yang berisi teks polos, skor kepercayaan, dan bahkan informasi tata letak. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Tip pro** – Jika Anda hanya membutuhkan teks dan bukan ePub, Anda dapat berhenti di sini. Properti `ocrResult.Text` adalah string bersih yang dapat Anda alirkan ke sistem lain mana pun. + +## Langkah 3 – Simpan Hasil sebagai Buku ePub (Mengonversi JPG ke ePub) + +Aspose OCR dapat langsung menyerialisasi hasil OCR ke beberapa format, termasuk ePub. Langkah ini menunjukkan secara tepat cara **mengonversi JPG ke ePub** dalam satu baris. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Saat Anda menjalankan program, Anda akan melihat teks yang diekstrak dicetak ke konsol, dan file `book_page.epub` baru muncul di samping gambar sumber Anda. Buka file tersebut di pembaca ePub apa pun (Calibre, Apple Books, dll.) dan Anda akan menemukan teks OCR terformat dengan baik sebagai buku satu halaman. + +### Output yang Diharapkan + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Jika ePub terbuka dengan benar, selamat—Anda baru saja menyelesaikan **contoh OCR c#** lengkap yang mengubah JPEG menjadi ePub portabel. + +## Langkah 4 – Masalah Umum Saat Mengonversi Gambar ke ePub + +Bahkan dengan perpustakaan yang solid, Anda mungkin menemui beberapa hambatan. Berikut FAQ singkat: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **Unsupported image format** | Aspose OCR mengharapkan format raster (JPG, PNG, BMP). | Convert the image to JPG or PNG first, e.g., with `System.Drawing.Image`. | +| **Blank output** | Kualitas gambar rendah atau kompresi berlebihan. | Increase DPI, use a clearer scan, or apply image preprocessing (`ocrEngine.Preprocess`). | +| **Missing fonts in ePub** | Penulis ePub default menggunakan font sistem yang mungkin tidak disematkan. | Set `ocrEngine.Config.FontsDirectory` to a folder with the required .ttf files. | +| **Large ePub file** | Gambar beresolusi tinggi disematkan sebagai halaman terpisah. | Use `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +## Langkah 5 – Memperluas Contoh (Lebih dari Dasar) + +Setelah Anda memiliki alur kerja **mengonversi gambar ke epub** yang berfungsi, Anda mungkin bertanya-tanya apa lagi yang dapat Anda lakukan. Berikut beberapa ide yang dapat Anda coba besok: + +1. **Pemrosesan batch** – Loop melalui folder berisi JPG, menghasilkan satu ePub per gambar, atau menggabungkannya menjadi ePub multi‑bab. +2. **Pemilihan bahasa** – Set `ocrEngine.Language = Language.English;` atau bahasa lain yang didukung untuk meningkatkan akurasi. +3. **Pelestarian tata letak** – Gunakan `OcrSaveFormat.Html` terlebih dahulu, lalu bungkus HTML tersebut dalam ePub untuk format yang lebih kaya. +4. **Penyebaran ke cloud** – Bungkus kode dalam Azure Function atau AWS Lambda untuk menawarkan OCR‑to‑ePub sebagai layanan web. + +Setiap ekstensi ini dibangun di atas logika inti **cara OCR gambar** yang baru saja kami bahas. + +## Kode Lengkap yang Berfungsi (Siap Salin‑Tempel) + +Berikut seluruh program dalam satu blok. Ganti `YOUR_DIRECTORY` dengan jalur sebenarnya ke file gambar Anda. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Ingat** – Paket NuGet `Aspose.OCR` harus diinstal, dan runtime .NET target harus setidaknya .NET 5 untuk kompatibilitas terbaik. + +## Kesimpulan + +Kami baru saja membahas **cara OCR gambar** dalam C# dan mengubah pemindaian tersebut menjadi buku ePub bersih—sebenarnya alur kerja **mengonversi JPG ke ePub** yang dapat Anda masukkan ke proyek mana pun. Dengan mengikuti langkah‑langkah di atas Anda akan dapat **mengekstrak teks dari gambar**, menangani kasus tepi umum, dan memperluas solusi ke pekerjaan batch atau layanan cloud. + +Jika Anda penasaran dengan langkah logis berikutnya, coba ganti output ePub dengan PDF (`OcrSaveFormat.Pdf`) atau alirkan teks OCR ke API terjemahan. Langit adalah batasnya setelah Anda menguasai dasar‑dasarnya. + +Ada pertanyaan tentang format gambar tertentu, atau ingin melihat contoh ePub multi‑halaman? Tinggalkan komentar, dan saya akan dengan senang hati membantu. Selamat coding, dan nikmati mengubah gambar menjadi buku! + +![contoh cara OCR gambar](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/indonesian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..c8e6211a --- /dev/null +++ b/ocr/indonesian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: Kenali teks Rusia secara instan menggunakan Aspose OCR C#. Pelajari cara + mengenali teks Cina, membaca jumlah halaman PDF, dan mengonversi teks halaman PDF + dalam satu tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: id +og_description: Mengenali teks Rusia dengan cepat menggunakan Aspose OCR C#. Tutorial + ini juga mencakup cara mengenali teks Cina, membaca jumlah halaman PDF, dan mengonversi + teks halaman PDF. +og_title: Mengenali teks Rusia dengan Aspose OCR C# – Panduan Lengkap +tags: +- Aspose OCR +- C# +- PDF processing +title: Mengenali teks Rusia dengan Aspose OCR C# – Panduan PDF Multi‑Halaman Lengkap +url: /id/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# mengenali teks Rusia dengan Aspose OCR C# – Tutorial PDF Multi‑Halaman Lengkap + +Pernahkah Anda perlu **mengenali teks Rusia** dalam PDF yang mencampur bahasa, dan bertanya‑tanya bagaimana melakukannya tanpa harus menggunakan alat terpisah untuk setiap halaman? Anda tidak sendirian. Dalam banyak proyek dunia nyata, Anda akan mendapatkan satu PDF yang berisi bahasa Inggris, Rusia, bahkan Mandarin pada halaman‑halaman yang berbeda, dan Anda tetap menginginkan output teks yang bersih dan tunggal. + +Dalam panduan ini kami akan menunjukkan secara tepat cara **mengenali teks Rusia** (dan bahasa lain) menggunakan **Aspose OCR C#**, sekaligus mendemonstrasikan cara **membaca jumlah halaman PDF**, **mengenali teks Mandarin**, dan **mengonversi teks halaman PDF** menjadi dump konsol yang praktis. Tanpa layanan eksternal, tanpa langkah tersembunyi—hanya kode C# murni yang dapat Anda salin‑tempel dan jalankan. + +> **Apa yang akan Anda dapatkan** +> * Aplikasi konsol C# yang dapat dijalankan dan memproses PDF multi‑halaman. +> * Pemilihan bahasa per halaman (Rusia, Mandarin, Inggris). +> * Teknik untuk menanyakan jumlah halaman PDF dan mengekstrak teks tiap halaman. +> * Tips, jebakan, dan ekstensi yang dapat Anda terapkan pada proyek Anda sendiri. + +--- + +## Prasyarat + +- .NET 6.0 atau lebih baru (kode ini juga bekerja pada .NET Framework 4.7+). +- Paket NuGet **Aspose.OCR for .NET** terpasang (`dotnet add package Aspose.OCR`). +- File PDF yang berisi bahasa campuran; untuk demo kami akan menggunakan `mixed_lang.pdf`. +- Familiaritas dasar dengan aplikasi konsol C#. + +Jika Anda belum memiliki salah satu dari ini, unduh Aspose OCR terbaru dari NuGet dan letakkan PDF Anda di lokasi yang dapat dijangkau dari folder proyek. + +--- + +## Langkah 1 – Inisialisasi Mesin Aspose OCR + +Hal pertama yang Anda butuhkan adalah sebuah instance dari `OcrEngine`. Objek ini menyimpan semua pengaturan (seperti bahasa) dan melakukan pekerjaan berat. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Mengapa ini penting:** +> Mesin dapat dipakai ulang, sehingga kita tidak membuang memori dengan membuat instance baru untuk setiap halaman. Menggunakannya kembali juga memungkinkan kita mengubah bahasa secara dinamis, yang sangat penting untuk **mengenali teks Rusia** pada satu halaman dan **mengenali teks Mandarin** pada halaman lain. + +--- + +## Langkah 2 – Muat PDF dan Cari Tahu Berapa Banyak Halamannya + +Sebelum mulai mengenali, kita perlu objek PDF dan jumlah halamannya. Aspose OCR memperlakukan setiap halaman sebagai `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** Jika PDF sangat besar, Anda mungkin ingin membaca jumlah halaman terlebih dahulu dan memutuskan apakah akan memproses semua halaman atau hanya sebagian. + +--- + +## Langkah 3 – Pemetaan Setiap Halaman ke Bahasa yang Diinginkan + +Aspose OCR mendukung banyak bahasa, tetapi Anda harus memberi tahu bahasa mana yang akan dipakai untuk tiap halaman. Di bawah ini kami membuat `Dictionary` di mana kuncinya adalah indeks halaman berbasis nol. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Mengapa ini krusial:** +> Tanpa peta ini, mesin OCR akan mencoba satu bahasa default untuk semua halaman, menghasilkan output yang berantakan untuk teks Rusia atau Mandarin. Langkah ini secara langsung memungkinkan **mengenali teks Rusia** dan **mengenali teks Mandarin** dengan benar. + +--- + +## Langkah 4 – Loop Melalui Semua Halaman, Atur Bahasa, dan Kenali Teks + +Sekarang kami iterasi setiap halaman, mengganti bahasa berdasarkan peta, dan memanggil `Recognize`. Hasilnya disimpan dalam `OcrResult`, dari mana kami mengekstrak teks polos. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Output Konsol yang Diharapkan + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Penjelasan alur:** +> * Loop menghormati **membaca jumlah halaman PDF** yang kami cetak sebelumnya. +> * Dengan menukar `ocrEngine.Settings.Language` setiap iterasi, kami menjamin **mengenali teks Rusia** pada halaman 2 dan **mengenali teks Mandarin** pada halaman 3 secara akurat. +> * Pernyataan `Console.WriteLine` secara efektif **mengonversi teks halaman PDF** menjadi string yang dapat dibaca manusia. + +--- + +## Langkah 5 – Jalankan, Verifikasi, dan Sesuaikan + +1. Bangun proyek (`dotnet build`). +2. Jalankan (`dotnet run`). +3. Bandingkan output konsol dengan PDF asli. + +Jika Anda menemukan karakter yang hilang, pertimbangkan: + +- **Meningkatkan akurasi OCR** dengan mengatur `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Menyediakan paket bahasa khusus** jika kamus Rusia atau Mandarin bawaan sudah usang. +- **Menyesuaikan DPI** saat memuat PDF (`OcrImage.FromFile(path, 300)`), yang dapat meningkatkan pengenalan pada pemindaian beresolusi rendah. + +--- + +## Bonus: Menangani Kasus Pinggir + +### Bagaimana jika bahasa sebuah halaman tidak ada dalam peta? + +Kode sudah kembali ke bahasa Inggris, tetapi Anda juga dapat menambahkan fallback yang mencatat peringatan: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Bisakah kami memproses PDF dengan lebih dari tiga bahasa? + +Tentu saja. Perluas `languageMap` dengan indeks tambahan dan nilai `OcrLanguage` yang didukung (misalnya, `OcrLanguage.French`). Loop akan menangani berapa pun jumlah halaman. + +### Bagaimana cara mengekspor hasil ke file alih‑alih konsol? + +Ganti pemanggilan `Console.WriteLine` dengan `File.AppendAllText("output.txt", …)` atau gunakan `StringBuilder` yang Anda tulis sekali setelah loop selesai. + +--- + +## Ilustrasi Gambar + +![contoh mengenali teks Rusia](/images/recognize-russian-text.png "Tangkapan layar yang menunjukkan output OCR untuk teks Rusia") + +*Gambar di atas memperlihatkan output konsol ketika **mengenali teks Rusia** dilakukan pada PDF berbahasa campuran.* + +--- + +## Kesimpulan + +Kami telah menelusuri contoh lengkap end‑to‑end yang menunjukkan cara **mengenali teks Rusia** (dan juga **mengenali teks Mandarin**) dari PDF multi‑halaman menggunakan **Aspose OCR C#**. Dengan membaca jumlah halaman PDF, memetakan tiap halaman ke bahasa yang tepat, dan melakukan iterasi melalui dokumen, Anda dapat **mengonversi teks halaman PDF** menjadi string polos yang siap disimpan, diindeks, atau dianalisis lebih lanjut. + +Singkatnya: + +- **Inisialisasi** satu `OcrEngine`. +- **Muat** PDF dan **baca jumlah halaman PDF**. +- **Peta** halaman ke bahasa (Rusia, Mandarin, dll.). +- **Iterasi**, atur `ocrEngine.Settings.Language`, dan **kenali** tiap halaman. +- **Keluarkan** atau simpan teks yang diekstrak. + +Silakan sesuaikan pola ini untuk dokumen yang lebih besar, tambahkan penanganan error, atau hubungkan hasilnya ke indeks pencarian. Ide utama—pemilihan bahasa per halaman—tetap sama, dan itulah yang membuat **mengenali teks Rusia** menjadi dapat diandalkan pada PDF berbahasa campuran. + +Punya skenario berbeda, seperti memindai gambar alih‑alih PDF? Mesin yang sama bekerja; cukup ganti `OcrImage.FromFile` dengan `OcrImage.FromStream` atau `FromBitmap`. Selamat coding, semoga OCR Anda selalu akurat! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/ocr-configuration/_index.md b/ocr/italian/net/ocr-configuration/_index.md index 661c8d64..d28baa35 100644 --- a/ocr/italian/net/ocr-configuration/_index.md +++ b/ocr/italian/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Sblocca la potenza del riconoscimento delle immagini OCR in .NET con Aspose.OCR. Sblocca potenti funzionalità OCR con Aspose.OCR per .NET. Estrai testo dalle immagini senza problemi. ### [Operazione OCR con elenco nel riconoscimento immagini OCR](./ocr-operation-with-list/) Sblocca il potenziale di Aspose.OCR per .NET. Esegui senza sforzo il riconoscimento delle immagini OCR con gli elenchi. Aumenta la produttività e l'estrazione dei dati nelle tue applicazioni. +### [Come applicare la licenza in Aspose OCR – Guida passo‑passo C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Scopri come applicare la licenza in Aspose OCR con una guida passo‑passo in C#. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/italian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..3a9c6848 --- /dev/null +++ b/ocr/italian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Come applicare la licenza per Aspose OCR in C#. Scopri come leggere il + file, impostare la licenza Aspose, utilizzare MemoryStream e caricare la licenza + in modo efficiente. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: it +og_description: Come applicare la licenza per Aspose OCR in C#. Segui questa guida + per leggere il file di licenza, impostare la licenza Aspose, utilizzare MemoryStream + e verificare la configurazione. +og_title: Come applicare la licenza in Aspose OCR – Tutorial completo C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Come applicare la licenza in Aspose OCR – Guida passo‑passo C# +url: /it/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come applicare la licenza in Aspose OCR – Guida completa C# + +Ti sei mai chiesto **come applicare la licenza** per Aspose OCR senza dover inseguire documenti poco chiari? Non sei solo. La maggior parte degli sviluppatori si imbatte nello stesso ostacolo: riescono a leggere il file, ma non sanno come fornirlo correttamente alla libreria. In questo tutorial percorreremo ogni dettaglio—dal caricamento del file `.lic` dal disco alla chiamata a `SetLicense` con un `MemoryStream`. Alla fine avrai una soluzione funzionante da inserire in qualsiasi progetto .NET. + +Tratteremo anche **come leggere il file** in modo sicuro, il modo corretto di **impostare la licenza Aspose**, e perché usare un **MemoryStream** è l'approccio più pulito. Se sei curioso di sapere **come caricare la licenza** in ambienti diversi, troverai anche quei suggerimenti. Nessun riferimento esterno necessario—solo codice pronto da copiare‑incollare. + +## Prerequisiti + +- .NET 6.0 o versioni successive (il codice funziona sia con .NET Core che con .NET Framework) +- Pacchetto NuGet Aspose.OCR installato (`Install-Package Aspose.OCR`) +- Un file `Aspose.OCR.lic` valido posizionato in un percorso accessibile dall'applicazione +- Familiarità di base con C# e Visual Studio (o qualsiasi IDE preferito) + +> **Suggerimento professionale:** Mantieni il file di licenza al di fuori della cartella di controllo del codice sorgente per evitare commit accidentali. + +## Passo 1: Come leggere il file – Caricare i byte della licenza + +La prima cosa di cui abbiamo bisogno è l'array di byte grezzo del file di licenza. Usare `File.ReadAllBytes` è semplice ed efficiente, e genera automaticamente un'eccezione chiara se il percorso è errato. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Perché è importante:** Leggere il file direttamente in memoria evita perdite di handle e ci fornisce un array di byte pulito da utilizzare successivamente. Inoltre rende il metodo riutilizzabile in console app, servizi web o Azure Functions. + +## Passo 2: Come usare MemoryStream – Preparare lo stream della licenza + +L'overload `License.SetLicense` di Aspose si aspetta uno `Stream`. Avvolgere l'array di byte in un `MemoryStream` è il modo idiomatico per soddisfare tale requisito senza toccare nuovamente il file system. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Intuizione chiave:** `MemoryStream` è leggero e si elimina rapidamente. Consente anche di riutilizzare lo stesso array di byte per più librerie se dovessi applicare licenze di più prodotti Aspose. + +## Passo 3: Impostare la licenza Aspose – Il nucleo di “come applicare la licenza” + +Ora che abbiamo un `MemoryStream`, applicare la licenza è una singola riga. La classe `License` si trova nello spazio dei nomi `Aspose.OCR`, quindi assicurati di aver aggiunto la direttiva `using` corretta. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Se la licenza è invalida o scaduta, `SetLicense` fallirà silenziosamente e la libreria opererà in modalità trial. Per essere assolutamente sicuri, puoi verificare una funzionalità disponibile solo nella versione con licenza (ad esempio le impostazioni di accuratezza OCR) o semplicemente fare affidamento sul messaggio di conferma che stamperemo più avanti. + +## Passo 4: Come caricare la licenza – Mettere tutto insieme + +Di seguito trovi il programma console completo e eseguibile che dimostra **come caricare la licenza** dal disco, usare un `MemoryStream` e verificare che la licenza sia stata applicata correttamente. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Output previsto + +``` +License applied successfully. You can now perform OCR operations. +``` + +Se vedi il messaggio, la libreria è completamente licenziata e pronta per attività OCR di livello produttivo. + +## Problemi comuni e come evitarli + +| Problema | Perché accade | Soluzione | +|----------|---------------|-----------| +| **FileNotFoundException** durante la lettura della licenza | Il percorso è errato o il file non è stato distribuito con l'app | Usa un percorso assoluto o incorpora la licenza come risorsa (vedi “caricamento alternativo” sotto) | +| **Licenza non applicata ma nessun errore** | `SetLicense` ricade silenziosamente in modalità trial se lo stream è vuoto o corrotto | Verifica che `licenseData.Length > 0` prima di creare il `MemoryStream` | +| **MemoryStream non eliminato** | Dimenticare il `using` lascia risorse non gestite in sospeso | Avvolgi sempre lo stream in un blocco `using` come mostrato | + +### Alternativa: Incorporare la licenza come risorsa incorporata + +Se preferisci non distribuire un file `.lic` separato, aggiungilo al progetto, imposta **Build Action** su **Embedded Resource**, e leggilo così: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Poi chiama `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` e continua con lo stesso approccio `MemoryStream`. + +## Conclusione + +Abbiamo coperto **come applicare la licenza** per Aspose OCR dall'inizio alla fine: lettura del file, creazione di un `MemoryStream`, chiamata a `SetLicense` e conferma dell'attivazione. Seguendo questi passaggi elimini le ipotesi, eviti errori comuni e garantisci che il tuo motore OCR funzioni in modalità completa. + +Successivamente, potresti esplorare **come leggere il file** in modo asincrono per servizi ad alto throughput, o approfondire le impostazioni OCR avanzate ora che la licenza è correttamente caricata. In ogni caso, il modello rimane lo stesso—leggi, stream, imposta, verifica. + +Hai domande su casi particolari, come caricare la licenza in un ambiente ASP.NET Core o gestire più licenze di prodotti Aspose? Lascia un commento qui sotto, e buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/ocr-optimization/_index.md b/ocr/italian/net/ocr-optimization/_index.md index ff77eb0c..7e81411d 100644 --- a/ocr/italian/net/ocr-optimization/_index.md +++ b/ocr/italian/net/ocr-optimization/_index.md @@ -30,6 +30,9 @@ Massimizza la precisione dell'OCR con Aspose.OCR per tutorial .NET. Esegui l'OCR Migliora la precisione dell'OCR con Aspose.OCR per .NET esplorando[filtri di preelaborazione](./preprocessing-filters-for-image/)Scaricalo ora e scopri come ottimizzare le tue immagini prima del riconoscimento. Questo tutorial garantisce un'integrazione perfetta, aumentando la precisione e l'efficienza. +## Preelaborazione immagine OCR in C# – Aumenta l'accuratezza con Aspose OCR +Scopri come migliorare la precisione dell'OCR preelaborando le immagini in C# con Aspose OCR. + ## Correzione dei risultati con controllo ortografico nel riconoscimento delle immagini OCR Ottieni una precisione OCR senza precedenti con[Aspose.OCR per .NET](./result-correction-with-spell-checking/). Il nostro tutorial sulla correzione dei risultati con il controllo ortografico ti consente di personalizzare dizionari, correggere l'ortografia e garantire un riconoscimento del testo senza errori senza sforzo. Immergiti in un mondo di precisione con Aspose.OCR. @@ -46,13 +49,17 @@ Esplora l'integrazione perfetta dell'OCR con Aspose.OCR per .NET. Riconoscere il Sblocca il potenziale di Aspose.OCR per .NET con la nostra guida completa. Scopri passo dopo passo come preparare i rettangoli per il riconoscimento delle immagini. Migliora le tue applicazioni .NET con una perfetta integrazione OCR. ### [Filtri di preelaborazione per l'immagine nel riconoscimento delle immagini OCR](./preprocessing-filters-for-image/) Esplora Aspose.OCR per .NET. Aumenta la precisione dell'OCR con i filtri di preelaborazione. Scaricalo ora per un'integrazione perfetta. +### [Preelaborazione immagine OCR in C# – Aumenta l'accuratezza con Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Scopri come migliorare la precisione dell'OCR preelaborando le immagini in C# con Aspose OCR. ### [Correzione dei risultati con controllo ortografico nel riconoscimento delle immagini OCR](./result-correction-with-spell-checking/) Migliora la precisione dell'OCR con Aspose.OCR per .NET. Correggi l'ortografia, personalizza i dizionari e ottieni facilmente un riconoscimento del testo senza errori. ### [Salva risultato multipagina come documento nel riconoscimento immagine OCR](./save-multipage-result-as-document/) Sblocca il potenziale di Aspose.OCR per .NET. Salva facilmente i risultati OCR di più pagine come documenti con questa guida passo passo completa. +### [Come eseguire OCR batch in C# con il motore OCR di Aspose](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Scopri come elaborare più immagini simultaneamente usando Aspose OCR in C# per migliorare l'efficienza del tuo flusso di lavoro. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/italian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..eceac1cc --- /dev/null +++ b/ocr/italian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: Come eseguire OCR batch utilizzando Aspose OCR Engine in C#. Impara a + riconoscere il testo dalle immagini ed estrarre il testo dai file TIFF con accelerazione + GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: it +og_description: Come eseguire OCR batch in C# con Aspose OCR Engine. Questa guida + ti mostra come riconoscere il testo dalle immagini ed estrarre il testo dai file + TIFF in modo efficiente. +og_title: Come eseguire OCR batch in C# – Guida completa di Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Come eseguire l'OCR batch in C# con il motore OCR di Aspose +url: /it/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come eseguire OCR batch in C# con il motore OCR di Aspose + +Ti sei mai chiesto **come eseguire OCR batch** quando hai dozzine di documenti scansionati in una cartella? Non sei solo—molti sviluppatori incontrano lo stesso ostacolo passando dal riconoscimento di una singola immagine all'elaborazione di un'intera collezione. La buona notizia è che Aspose OCR lo rende un gioco da ragazzi, sia che tu stia usando una CPU sia che sfrutti l'accelerazione GPU. + +In questo tutorial vedremo un esempio completo e eseguibile che **rileva il testo dalle immagini** e persino **estrae il testo dai file TIFF** in blocco. Niente scorciatoie vaghe tipo “vedi la documentazione”—solo una soluzione autonoma che puoi copiare‑incollare ed eseguire subito. + +## Prerequisiti + +* .NET 6.0 o versioni successive installate (il codice è destinato a .NET 6, ma funziona anche con .NET 5). +* Pacchetto NuGet Aspose.OCR per .NET (sono disponibili versioni CPU e GPU; installa quella che corrisponde al tuo hardware). +* Una cartella con alcuni file TIFF o PNG di esempio che desideri elaborare. +* Visual Studio 2022 o qualsiasi IDE tu preferisca. + +> **Consiglio professionale:** Se prevedi di usare la versione GPU, verifica che il driver grafico sia aggiornato e che CUDA 11+ sia installato. Il motore tornerà automaticamente alla CPU se non trova una GPU compatibile. + +## Passo 1 – Configura il progetto e installa Aspose.OCR + +### H2: Crea una nuova app console e aggiungi Aspose.OCR + +Apri un terminale (o la Package Manager Console in Visual Studio) ed esegui: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Se disponi di una licenza abilitata per GPU, aggiungi invece il pacchetto GPU: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Fatto—il tuo progetto ora fa riferimento alla libreria OCR che useremo per **OCR batch**. + +## Passo 2 – Inizializza il motore OCR (CPU o GPU) + +### H2: Come eseguire OCR batch – Inizializzazione del motore + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Perché è importante:** Attivando `UseGpu`, lasci che Aspose scelga il percorso più veloce. Se la GPU non è disponibile, il motore passa silenziosamente alla CPU, così il tuo lavoro batch non va in crash per mancanza di hardware. + +## Passo 3 – Raccogli i file da elaborare + +### H2: Rileva testo dalle immagini – Costruzione della lista dei file + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Nota caso limite:** Se hai un mix di formati, cambia il pattern di ricerca in `"*.*"` e filtra per estensione all'interno del ciclo. Questo mantiene il batch flessibile. + +## Passo 4 – Elabora ogni immagine e mostra un'anteprima + +### H2: Estrai testo da TIFF – Cicla attraverso i file + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Cosa vedrai:** Per ogni TIFF, la console stampa qualcosa del tipo: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Quell'anteprima conferma che il batch è riuscito senza dover aprire manualmente ogni file. + +## Passo 5 – Salva i risultati (Opzionale ma utile) + +### H3: Persisti l'output OCR in file di testo + +Se ti serve il testo completo per elaborazioni successive, aggiungi questo all'interno del ciclo `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Ora ogni TIFF ottiene un file `.txt` associato contenente l'output OCR completo—perfetto per indicizzazione, ricerca o per alimentare un modello linguistico. + +## Passo 6 – Esegui la demo e verifica + +1. Compila il progetto: `dotnet build`. +2. Esegui: `dotnet run --project GpuBatchDemo.csproj`. + +Dovresti vedere le righe di anteprima stampate nella console e (se hai aggiunto il passo opzionale) una serie di file `.txt` accanto alle tue immagini di origine. + +### H3: Problemi comuni e come risolverli + +| Sintomo | Causa probabile | Soluzione | +|---------|-----------------|-----------| +| **Empty `ocrResult.Text`** | Immagine troppo scura o DPI basso | Pre‑processare le immagini (aumentare contrasto, ingrandire) o impostare `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Driver obsoleto | Aggiorna il driver GPU, oppure imposta `UseGpu = false` per forzare la CPU. | +| **Exception “File not found”** | Separatore di percorso errato su Linux/macOS | Usa `Path.Combine` o slash (`/`). | + +## Passo 7 – Scalare (Oltre pochi file) + +Quando passi da una manciata di TIFF a migliaia, considera: + +* **Parallel processing:** Avvolgi il `foreach` in `Parallel.ForEach` (assicurati che l'istanza del motore sia thread‑safe; altrimenti creane una per thread). +* **Chunked I/O:** Leggi le immagini in batch per evitare di esaurire la RAM. +* **Logging:** Scrivi l'avanzamento in un file di log; aiuta a riprendere dopo un crash. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Ricorda:** La memoria GPU è condivisa, quindi avviare troppi job GPU in parallelo può effettivamente rallentare. Prova prima con pochi thread. + +## Esempio completo funzionante (pronto per copia‑incolla) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Eseguendo questo programma **rileverà il testo dalle immagini**, **estrarrà il testo da TIFF**, e dimostrerà **come eseguire OCR batch** in modo efficiente. + +--- + +## Conclusione + +Ora hai un esempio solido, end‑to‑end di **come eseguire OCR batch** in C# usando il motore OCR di Aspose. Il tutorial ha coperto tutto, dalla configurazione del progetto, all'attivazione dell'accelerazione GPU, alla costruzione della lista dei file, all'elaborazione di ogni immagine e alla persistenza dei risultati. Che tu stia estraendo testo da file TIFF o da qualsiasi altro formato immagine, lo stesso schema si applica—basta cambiare le estensioni dei file. + +Pronto per il passo successivo? Prova a integrare l'output OCR con un indice di ricerca, alimenta il testo in un modello di linguaggio di grandi dimensioni, o sperimenta il processing parallelo per risparmiare minuti su batch massivi. Il cielo è il limite, e hai le basi per costruire. + +Hai domande o vuoi condividere i tuoi trucchi per OCR batch? Lascia un commento qui sotto—buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/italian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..3fa50323 --- /dev/null +++ b/ocr/italian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,270 @@ +--- +category: general +date: 2026-01-01 +description: Preprocessare l'immagine OCR per migliorare l'accuratezza. Scopri come + riconoscere il testo in un'immagine, migliorare l'accuratezza dell'OCR, caricare + l'immagine OCR e visualizzare il testo OCR usando Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: it +og_description: Preprocessare l'OCR dell'immagine per migliorare l'accuratezza. Questa + guida mostra come riconoscere il testo nell'immagine, caricare l'OCR dell'immagine, + applicare filtri e visualizzare il testo OCR. +og_title: Preelaborazione OCR di immagini in C# – Migliora l'accuratezza con Aspose + OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Preelaborazione OCR di immagini in C# – Migliora l'accuratezza con Aspose OCR +url: /it/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Ti sei mai chiesto come **preprocessare l'OCR delle immagini** in modo che il motore legga davvero ciò che è sulla pagina? Non sei solo: la maggior parte degli sviluppatori si blocca quando una scansione rumorosa e inclinata rifiuta di collaborare. La buona notizia è che alcuni passaggi intelligenti di pre‑elaborazione possono trasformare un’immagine caotica in testo pulito e leggibile. + +In questo tutorial percorreremo un esempio completo, pronto all’uso, che **recognize text image** file, **improve OCR accuracy**, e infine **display OCR text** sulla console. Alla fine saprai come **load image OCR** risorse, applicare filtri come la correzione di inclinazione e la riduzione del rumore, e ottenere risultati affidabili — tutto con Aspose.OCR per .NET. + +## What You’ll Learn + +- Come creare un’istanza di `OcrEngine` e configurare i filtri di pre‑elaborazione. +- Perché i filtri di correzione dell’inclinazione e di denoise sono importanti per **improve OCR accuracy**. +- Il codice esatto per **load image ocr** file ed eseguire il riconoscimento. +- Come **display OCR text** in modo user‑friendly. +- Suggerimenti, insidie e modifiche opzionali da applicare in progetti reali. + +### Prerequisites + +- .NET 6+ (o .NET Framework 4.7+) installato sulla tua macchina. +- Una licenza per Aspose.OCR (la versione di prova gratuita funziona per questa demo). +- Conoscenze di base di C# — non servono trucchi avanzati. + +Se qualcuno di questi punti ti è poco familiare, fermati un attimo e installa ciò che manca; il resto della guida presuppone che siano già presenti. + +--- + +## preprocess image ocr – Setting Up Filters + +La prima cosa da capire è **perché la pre‑elaborazione è importante**. I motori OCR leggono bene testi nitidi e dritti, ma le scansioni del mondo reale spesso presentano rotazione, sfocatura o rumore di fondo. Fornendo al motore un’immagine pulita, aumenti drasticamente le probabilità di una trascrizione corretta. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Cosa sta succedendo qui?** +- **Step 1** crea il motore — il cuore della libreria Aspose OCR. +- **Step 2** aggiunge due filtri. Il `SkewCorrectionFilter` ruota l’immagine fino a renderla orizzontale, mentre il `DenoiseFilter` elimina il rumore a livello di pixel. +- **Step 3** è opzionale ma utile; puoi limitare l’angolo massimo che il motore cercherà di correggere, evitando sovra‑rotazioni su pagine già dritte. +- **Step 4** è dove **load image OCR** i dati. Sostituisci `YOUR_DIRECTORY/skewed_noisy.jpg` con il percorso del tuo file di test. +- **Step 5** esegue effettivamente l’OCR e produce un `OcrResult`. +- **Step 6** **display OCR text** sulla console, fornendoti un feedback immediato. + +> **Consiglio pro:** Se noti che l’output contiene ancora caratteri illeggibili, prova ad aumentare `MaxAngle` o aggiungi un `ContrastFilter` prima del passaggio di denoise. + +--- + +## recognize text image – Loading Your Files Correctly + +Un ostacolo comune è **load image ocr** con formato o DPI errati. Aspose.OCR supporta PNG, JPEG, TIFF, BMP e persino immagini basate su PDF. Tuttavia, il motore funziona al meglio con 300 DPI o più per documenti stampati. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Se lavori con un TIFF multi‑pagina, puoi iterare su ogni frame: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Perché questo è importante per improve OCR accuracy?** Una risoluzione più alta conserva la forma di ogni carattere, fornendo al riconoscitore più punti dati. Le immagini a DPI più basso spesso generano glifi fusi o rotti, che il motore interpreta in modo errato. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +Le impostazioni predefinite dei filtri sono un buon punto di partenza, ma è possibile estrarre ulteriori prestazioni. + +| Filtro | Proprietà chiave | Valore tipico | Quando regolare | +|--------|-------------------|---------------|-----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (gradi) | Immagini molto inclinate (fino a 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Scansioni molto rumorose; aumentare a `0.8`. | +| `ContrastFilter` (opzionale) | `Level` | `1.2` | Screenshot a basso contrasto. | + +Esempio di personalizzazione di entrambi: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Caso limite:** Se la tua immagine contiene sia note scritte a mano sia testo stampato, potresti aggiungere un `BinarizationFilter` prima del denoise per separare lo sfondo dal primo piano. + +--- + +## display OCR text – Formatting the Output + +L’output semplice sulla console è sufficiente per le demo, ma il codice di produzione spesso richiede stringhe pulite, interruzioni di riga o persino JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Se ti serve JSON per una risposta API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Ora hai **display OCR text** in un formato che i servizi downstream possono consumare. + +--- + +## Full Working Example – Put It All Together + +Di seguito trovi il programma completo, autonomo, che puoi copiare‑incollare in un nuovo progetto console. Include filtri opzionali, caricamento di immagine ad alta risoluzione e output pulito. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Output della console previsto (esempio):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Se esegui il programma con un file diverso, il testo e il livello di confidenza cambieranno di conseguenza. + +--- + +## Common Questions & Answers + +**Q: What if my image is already straight?** +A: The skew filter will detect a near‑zero angle and effectively become a no‑op, so you can safely keep it enabled. + +**Q: Does Aspose.OCR support languages other than English?** +A: Yes—simply set `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (or any supported language) before calling `Recognize`. + +**Q: How do I handle multi‑page PDFs?** +A: Convert each page to an image (Aspose.PDF can do that) and feed them one‑by‑one to the same `OcrEngine` instance. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/text-recognition/_index.md b/ocr/italian/net/text-recognition/_index.md index 346402ba..04a20fd7 100644 --- a/ocr/italian/net/text-recognition/_index.md +++ b/ocr/italian/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Migliora le tue applicazioni .NET con Aspose.OCR per un efficiente riconosciment Sblocca il potenziale dell'OCR in .NET con Aspose.OCR. Estrai testo dai PDF senza sforzo. Scaricalo ora per un'esperienza di integrazione perfetta. ### [Riconosci tabella nel riconoscimento immagini OCR](./recognize-table/) Sblocca il potenziale di Aspose.OCR per .NET con la nostra guida completa sul riconoscimento delle tabelle nel riconoscimento delle immagini OCR. +### [c# OCR tutorial: Estrai testo da immagine con Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Scopri come estrarre testo da un'immagine usando Aspose OCR in C#. Guida passo passo per integrare l'OCR nella tua applicazione. +### [c# OCR tutorial: Estrai testo da immagini ed esporta in JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Scopri come estrarre testo da immagini e salvarlo in formato JSON usando Aspose OCR in C#. Guida passo passo per integrare l'OCR nella tua app. +### [Come fare OCR di un'immagine in C# – Converti JPG in ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Impara a convertire un'immagine JPG in un ePub usando Aspose.OCR con C# in pochi passaggi. +### [Riconosci testo russo con Aspose OCR C# – Guida completa PDF multi-pagina](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Scopri come riconoscere testo russo in PDF multi‑pagina usando Aspose OCR con C#. Guida passo passo per risultati accurati. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..f43d25df --- /dev/null +++ b/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial C# OCR che mostra come estrarre testo da un'immagine, eseguire + OCR su file JPG usando Aspose OCR. Impara a caricare l'immagine per l'OCR e ottenere + risultati accurati. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: it +og_description: Tutorial OCR in C# che ti guida nell'estrazione del testo da un'immagine, + nell'esecuzione dell'OCR su JPG e nel caricamento delle immagini per l'OCR usando + Aspose. +og_title: c# tutorial OCR – Estrai testo dall'immagine con Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# tutorial OCR: estrarre il testo da un''immagine con Aspose OCR' +url: /it/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Estrarre Testo da Immagine con Aspose OCR + +Cerchi un **c# ocr tutorial** che funzioni davvero? In questa guida ti mostreremo come **estrarre testo da un'immagine** e **eseguire OCR su file JPG** usando la libreria Aspose.OCR. Che tu stia costruendo uno scanner di ricevute, un archivio di documenti, o semplicemente sia curioso di leggere testo dalle foto, i passaggi seguenti ti porteranno da zero a codice funzionante in pochi minuti. + +Copriamo tutto ciò di cui hai bisogno: installare il pacchetto, caricare un'immagine per l'OCR, configurare le risorse linguistiche, eseguire il motore di riconoscimento e gestire le difficoltà più comuni. Alla fine avrai un'app console autonoma che stampa il testo riconosciuto sulla console—senza servizi esterni. + +## Cosa Ti Serve + +- .NET 6.0 o successivo (il codice funziona anche con .NET Framework 4.6+) +- Visual Studio 2022, VS Code, o qualsiasi editor C# tu preferisca +- Un file immagine che contenga testo russo (cirillico), ad esempio `receipt_ru.jpg` +- Connessione Internet per la prima esecuzione (Aspose scaricherà automaticamente le risorse linguistiche) + +Se hai già tutto questo, ottimo—iniziamo. + +## Passo 1: Installa Aspose.OCR e Crea un Nuovo Progetto + +Prima di tutto, aggiungi il pacchetto NuGet Aspose.OCR al tuo progetto. Apri un terminale nella cartella della soluzione ed esegui: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Usa il flag `--version` per bloccare la versione più recente stabile, ad esempio `Aspose.OCR 23.9.0`. + +Successivamente, crea un semplice progetto console (salta questo passaggio se ne hai già uno): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Ora hai una base pulita dove potrai incollare il codice di esempio completo più tardi. + +## Passo 2: Carica Immagine per OCR + +Caricare l'immagine è il primo passo funzionale in qualsiasi **c# ocr tutorial**. Aspose.OCR accetta un percorso file, uno stream o anche un `Bitmap`. Per il nostro esempio lo faremo in modo semplice, caricandolo dal disco: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Perché è importante:** Caricando esplicitamente l'immagine, fornisci al motore un obiettivo chiaro, migliorando l'accuratezza—soprattutto quando si tratta di PDF multi‑pagina o input di formati misti. + +## Passo 3: Configura Lingua e Download Automatico delle Risorse + +Aspose.OCR include pacchetti linguistici scaricabili su richiesta. Abilitare il download automatico garantisce che il motore ottenga i dati della lingua russa al primo avvio del codice. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Spiegazione:** +> • `AutoDownloadResources = true` elimina il passaggio manuale di recuperare i file `.dat`. +> • Impostare `Language` indica al motore quale set di caratteri aspettarsi, aumentando drasticamente velocità e accuratezza del riconoscimento. + +## Passo 4: Esegui OCR e Recupera il Testo Riconosciuto + +Ora avviene il lavoro pesante. Il metodo `Recognize` elabora l'immagine e restituisce un oggetto `OcrResult` contenente la stringa estratta. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Quando esegui il programma, dovresti vedere qualcosa di simile: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Cosa aspettarsi:** L'output esatto dipende dalla qualità dell'immagine di origine, ma il motore basato su rete neurale di Aspose gestisce tipicamente ricevute pulite e moduli stampati con alta fedeltà. + +## Esempio Completo Funzionante + +Di seguito trovi il **codice completo, eseguibile** che combina tutti i passaggi. Copialo in `Program.cs`, sostituisci `YOUR_DIRECTORY` con il percorso reale della cartella, e avvia `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Suggerimento:** Se devi **estrarre testo da immagine** con formati diversi da JPG (PNG, BMP, TIFF), cambia semplicemente l'estensione del file—Aspose li gestisce tutti. + +## Passo 5: Problemi Comuni & Pro Tips + +| Problema | Perché Accade | Soluzione | +|----------|----------------|-----------| +| **Caratteri spazzatura** | Immagine a bassa risoluzione o compressione eccessiva | Usa una sorgente di qualità superiore, o pre‑elabora con `Bitmap` (ad esempio aumenta il contrasto) | +| **Lingua non riconosciuta** | Pacchetto linguistico non scaricato | Assicurati che `AutoDownloadResources` sia `true` e che la macchina abbia accesso a Internet al primo avvio | +| **`ocrResult.Text` nullo** | Percorso immagine errato o file mancante | Verifica il percorso, usa `File.Exists` prima di caricare | +| **Ritardo di prestazioni** | Grande batch di immagini processate sequenzialmente | Riutilizza una singola istanza di `OcrEngine` per più chiamate | + +### Bonus: Leggere più File in un Loop + +Se devi **eseguire OCR su JPG** in una cartella, avvolgi la logica in un `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Questo schema scala bene per pipeline di elaborazione di ricevute. + +## Conclusione + +Hai appena completato un **c# ocr tutorial** che mostra come **estrarre testo da immagine**, **eseguire OCR su JPG**, e **caricare immagine per OCR** usando Aspose.OCR. Il programma di esempio dimostra l'intero flusso—dall'installazione del pacchetto NuGet alla stampa del testo cirillico riconosciuto—così puoi copiarlo in qualsiasi progetto .NET subito. + +Pronto per il passo successivo? Prova a sostituire `OcrLanguage.Russian` con `OcrLanguage.English` per riconoscere ricevute in inglese, o sperimenta le opzioni di `OcrEngine.Settings` (ad esempio `PageSegmentationMode`, `ImagePreprocessing`) per affinare l'accuratezza. Puoi anche integrare l'output in un database, generare PDF, o inviarlo a un'API di traduzione. + +Se incontri difficoltà, consulta la documentazione di Aspose.OCR o lascia un commento qui sotto. Buona programmazione, e che i tuoi risultati OCR siano sempre cristallini! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..56cca863 --- /dev/null +++ b/ocr/italian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial C# OCR che mostra come estrarre testo, caricare un'immagine + per OCR e scrivere JSON su file usando Aspose.OCR – guida passo‑passo. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: it +og_description: Tutorial C# OCR che ti guida su come estrarre testo dalle immagini, + caricare l'immagine per OCR e scrivere JSON su file usando Aspose.OCR. +og_title: Tutorial OCR C# – Estrai il testo ed esportalo in JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# tutorial OCR – Estrai testo dalle immagini ed esporta in JSON +url: /it/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Estrarre Testo da Immagini ed Esportare in JSON + +Ti sei mai chiesto come estrarre testo da una fattura scannerizzata senza passare ore a scrivere parser personalizzati? Non sei solo. In questo **c# OCR tutorial** ti mostreremo esattamente come caricare un'immagine per l'OCR, eseguire il motore di riconoscimento e poi **scrivere JSON su file** così potrai alimentare i dati nei sistemi a valle. + +Immagina di avere una cartella di ricevute, ciascuna denominata `receipt1.png`, `receipt2.png`, e di aver bisogno di un modo rapido per trasformarle in record JSON ricercabili. Questo è il problema che risolveremo, e alla fine avrai un'app console pronta‑da‑eseguire che fa proprio questo. Nessuna dipendenza aggiuntiva oltre a Aspose.OCR, e nessuna magia—solo passaggi chiari e riproducibili. + +> **What you’ll learn** +> - Come **caricare immagine per OCR** usando Aspose.OCR. +> - Il modo migliore per **estrarre testo** e ottenere i punteggi di confidenza. +> - Convertire il risultato OCR in un payload **OCR image to JSON** ben strutturato. +> - Scrivere **JSON su file** in modo sicuro e verificare l'output. + +## Prerequisites + +- .NET 6 SDK o successivo (il codice funziona anche su .NET Core). +- Visual Studio 2022 o qualsiasi editor tu preferisca. +- Pacchetto NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Un file immagine (PNG, JPG, BMP) che desideri elaborare – per la demo useremo `invoice.png`. + +If you’re missing any of these, grab the SDK from Microsoft’s site and add the NuGet package via the Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Ora che le basi sono pronte, immergiamoci nell'implementazione reale. + +## Step 1: c# OCR tutorial – Initialize the OCR Engine + +Before we can **load image for OCR**, we need an instance of the engine that will drive the recognition process. The `OcrEngine` class is lightweight, but it’s good practice to wrap it in a `using` block so resources are released promptly. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* If you plan to process many images in a batch, reuse the same `OcrEngine` instance instead of creating a new one each time. It reduces memory churn and speeds things up. + +## Step 2: Load image for OCR + +Now we actually **load image for OCR**. Aspose.OCR supports a variety of formats, so you can point it at a PNG, JPEG, or even a multi‑page TIFF. The `OcrImage.FromFile` method reads the file and prepares it for recognition. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Caricare l'immagine separatamente ti consente di ispezionarne le dimensioni, DPI o anche pre‑processarla (ad esempio, binarizzazione) prima di inviarla al motore. Se l'immagine è corrotta, `FromFile` lancerà un'eccezione chiara, che potrai catturare e registrare. + +## Step 3: How to extract text – Run the recognition + +With the image in hand, we can finally **how to extract text** from it. The `Recognize` method returns an `OcrResult` object that contains not only the plain text but also positional data and confidence scores for each word. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Some PDFs contain invisible text layers. If you feed a PDF page rendered as an image, the engine may see nothing. In those cases, consider using Aspose.PDF to extract the hidden layer first, then fall back to OCR only when needed. + +## Step 4: OCR image to JSON – Convert the result + +The `OcrResult` class offers a convenient `ToJson()` helper that serializes the entire result set—including each word’s bounding box and confidence—into a JSON string. This is the cleanest way to achieve **OCR image to JSON** without writing your own serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +If you prefer a custom schema, you can iterate over `ocrResult.Words` and build your own object, but for most scenarios the built‑in JSON is sufficient and already well‑structured. + +## Step 5: Write JSON to file + +Now comes the final piece of the puzzle: persisting the JSON payload. The `File.WriteAllText` method ensures the file is created (or overwritten) atomically. Be sure the target directory exists, otherwise you’ll hit a `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* If you need UTF‑8 with BOM or a different encoding, use the overload that accepts an `Encoding` argument. + +## Step 6: Verify the output + +A quick `Console.WriteLine` tells us the process completed successfully. You can also open the JSON file in a viewer to confirm the structure. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +## Full Working Example + +Below is the complete, copy‑and‑paste‑ready program. Replace `YOUR_DIRECTORY` with the actual path where your image resides. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Run the program (`dotnet run` from the project folder) and you’ll find `invoice.json` alongside your original PNG. + +## Common Pitfalls & How to Avoid Them + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **FileNotFoundException** durante il caricamento dell'immagine | Errore di battitura nel percorso o file mancante | Usa `Path.Combine` e verifica `File.Exists` prima di chiamare `FromFile`. | +| **Punteggi di confidenza bassi** | Qualità immagine scarsa, DPI basso | Pre‑processa con `ocrImage.AdjustContrast` o aumenta la risoluzione dell'immagine a 300 DPI. | +| **File JSON vuoto** | `ocrResult` restituito null (motore fallito) | Verifica che il formato dell'immagine sia supportato e che la licenza (se presente) sia correttamente applicata. | +| **Collo di bottiglia delle prestazioni su grandi batch** | Ricreare `OcrEngine` ad ogni iterazione | Riutilizza una singola istanza `OcrEngine` per l'intero batch, rilasciandola solo alla fine. | + +## Next Steps + +Now that you’ve mastered the **c# OCR tutorial**, you might want to: + +- **Elaborare in batch** un’intera cartella e aggregare i file JSON in un unico database. +- **Integrare** l’output con Azure Cognitive Search per PDF ricercabili. +- **Aggiungere supporto linguistico** impostando `ocrEngine.Language = OcrLanguage.Spanish` (o qualsiasi lingua supportata). +- **Post‑processare** il JSON per estrarre tabelle o coppie chiave‑valore usando espressioni regolari. + +Each of these extensions builds on the core concepts we covered: loading images for OCR, extracting text, converting to JSON, and writing that JSON to disk. + +--- + +### Conclusion + +In this **c# OCR tutorial** we walked through every step required to **load image for OCR**, **how to extract text**, transform the result into an **OCR image to JSON** payload, and finally **write JSON to file**. The complete code example is ready to drop into any .NET project, and the explanations give you the context you need to adapt the solution to real‑world scenarios. + +Give it a try with your own set of receipts or invoices—tweak the image preprocessing, experiment with different languages, and watch the JSON output grow. If you hit any snags, revisit the pitfalls table or drop a comment below. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/italian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..7de75c77 --- /dev/null +++ b/ocr/italian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Scopri come eseguire l'OCR di un'immagine in C# e convertire JPG in ePub + usando Aspose OCR. Questa guida passo passo mostra anche come estrarre il testo + dall'immagine. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: it +og_description: Come eseguire l'OCR di un'immagine in C#? Segui questa guida per estrarre + il testo dall'immagine e convertire JPG in ePub con Aspose OCR. +og_title: Come fare OCR di un'immagine in C# – Converti JPG in ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Come fare OCR di un'immagine in C# – Convertire JPG in ePub +url: /it/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come eseguire OCR su un'immagine in C# – Convertire JPG in ePub + +Ti sei mai chiesto **come eseguire OCR su un'immagine** direttamente da un'app console C#? Non sei l'unico. Molti sviluppatori si trovano in difficoltà quando devono estrarre testo da una fotografia e poi confezionare quel testo in un libro ePub leggibile. + +In questo tutorial percorreremo un esempio completo e funzionante che **estrae testo dall'immagine**, salva il risultato come ePub e ti mostra come **convertire JPG in ePub** senza uscire dal tuo IDE. Niente fronzoli, solo il codice che puoi copiare‑incollare ed eseguire subito. + +## Cosa imparerai + +- Come configurare il motore OCR di Aspose in un progetto .NET. +- I passaggi esatti per **convertire immagine in epub** usando l'opzione `OcrSaveFormat.Epub`. +- Suggerimenti per gestire problemi comuni come formati immagine non supportati o font mancanti. +- Un programma C# completo che puoi compilare ed eseguire subito. + +**Prerequisiti**: .NET 6 SDK (o qualsiasi versione .NET recente), un pacchetto NuGet valido Aspose.OCR e un file immagine (`input.jpg`) che desideri elaborare. Se non hai mai usato NuGet, apri la Console di Gestione Pacchetti e esegui `Install-Package Aspose.OCR`. + +Pronto? Immergiamoci. + +## Passo 1 – Come eseguire OCR su un'immagine e caricare la sorgente + +La prima cosa di cui hai bisogno è un'istanza del motore OCR e un'immagine sorgente. Aspose OCR rende tutto semplice: crei un `OcrEngine`, poi gli fornisci un `OcrImage` caricato dal disco. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Perché è importante** – Inizializzare il motore una sola volta mantiene basso l'uso di memoria, e caricare l'immagine subito ti permette di verificare il percorso del file prima che inizi il lavoro pesante di OCR. + +## Passo 2 – Eseguire OCR ed estrarre testo dall'immagine + +Ora che l'immagine è in memoria, chiedi al motore di riconoscere i caratteri. Il metodo `Recognize` restituisce un oggetto `OcrResult` che contiene il testo semplice, i punteggi di confidenza e persino le informazioni di layout. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Consiglio professionale** – Se ti serve solo il testo e non l'ePub, puoi fermarti qui. La proprietà `ocrResult.Text` è una stringa pulita che puoi inviare a qualsiasi altro sistema. + +## Passo 3 – Salvare il risultato come libro ePub (Convertire JPG in ePub) + +Aspose OCR può serializzare direttamente il risultato OCR in diversi formati, incluso ePub. Questo passaggio mostra esattamente come **convertire JPG in ePub** in una singola riga. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Quando esegui il programma, vedrai il testo estratto stampato sulla console e un nuovo file `book_page.epub` apparire accanto all'immagine sorgente. Aprilo in qualsiasi lettore ePub (Calibre, Apple Books, ecc.) e troverai il testo OCR formattato bene come un libro a pagina singola. + +### Output previsto + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Se l'ePub si apre correttamente, congratulazioni—hai appena completato un **esempio OCR C#** completo che trasforma un JPEG in un ePub portatile. + +## Passo 4 – Problemi comuni nella conversione immagine in ePub + +Anche con una libreria solida, potresti incontrare qualche ostacolo. Ecco una breve FAQ: + +| Problema | Perché accade | Come risolvere | +|----------|----------------|----------------| +| **Formato immagine non supportato** | Aspose OCR si aspetta formati raster (JPG, PNG, BMP). | Converti l'immagine in JPG o PNG prima, ad esempio con `System.Drawing.Image`. | +| **Output vuoto** | Bassa qualità dell'immagine o compressione eccessiva. | Aumenta DPI, usa una scansione più chiara, o applica pre‑elaborazione immagine (`ocrEngine.Preprocess`). | +| **Font mancanti nell'ePub** | Il writer ePub predefinito usa font di sistema che potrebbero non essere incorporati. | Imposta `ocrEngine.Config.FontsDirectory` a una cartella contenente i file .ttf necessari. | +| **File ePub di grandi dimensioni** | Immagini ad alta risoluzione vengono incorporate come pagine separate. | Usa `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Affrontare questi aspetti fin dall'inizio ti salva da lunghe ricerche di bug. + +## Passo 5 – Estendere l'esempio (Oltre le basi) + +Ora che hai una pipeline **convertire immagine in epub** funzionante, potresti chiederti cos'altro è possibile fare. Ecco alcune idee da provare domani: + +1. **Elaborazione batch** – Scorri una cartella di JPG, genera un ePub per ogni immagine o uniscili in un ePub multi‑capitolo. +2. **Selezione della lingua** – Imposta `ocrEngine.Language = Language.English;` o qualsiasi lingua supportata per migliorare l'accuratezza. +3. **Preservazione del layout** – Usa prima `OcrSaveFormat.Html`, poi avvolgi l'HTML in un ePub per una formattazione più ricca. +4. **Distribuzione cloud** – Inserisci il codice in una Azure Function o AWS Lambda per offrire OCR‑to‑ePub come servizio web. + +Ognuna di queste estensioni si basa sulla logica di base **come eseguire OCR su un'immagine** che abbiamo appena trattato. + +## Codice completo funzionante (Pronto da copiare‑incollare) + +Di seguito trovi l'intero programma in un unico blocco. Sostituisci `YOUR_DIRECTORY` con il percorso reale del tuo file immagine. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Ricorda** – Il pacchetto NuGet `Aspose.OCR` deve essere installato e il runtime .NET di destinazione dovrebbe essere almeno .NET 5 per la migliore compatibilità. + +## Conclusione + +Abbiamo appena coperto **come eseguire OCR su un'immagine** in C# e trasformato quelle scansioni in libri ePub puliti—essenzialmente un flusso **convertire JPG in ePub** che puoi inserire in qualsiasi progetto. Seguendo i passaggi sopra potrai **estrarre testo dall'immagine**, gestire casi limite comuni e ampliare la soluzione a lavori batch o servizi cloud. + +Se ti incuriosisce il passo successivo, prova a sostituire l'output ePub con un PDF (`OcrSaveFormat.Pdf`) o a inviare il testo OCR a un'API di traduzione. Il cielo è il limite una volta padroneggiata la base. + +Hai domande su un formato immagine specifico, o vuoi vedere un esempio di ePub multi‑pagina? Lascia un commento, sarò felice di aiutarti. Buon coding e divertiti a trasformare immagini in libri! + +![esempio di OCR immagine](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/italian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..b6461b88 --- /dev/null +++ b/ocr/italian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: Riconosci il testo russo istantaneamente usando Aspose OCR C#. Impara + a riconoscere il testo cinese, a leggere il conteggio delle pagine PDF e a convertire + il testo delle pagine PDF in un unico tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: it +og_description: Riconosci rapidamente il testo russo usando Aspose OCR C#. Questo + tutorial copre anche come riconoscere il testo cinese, leggere il conteggio delle + pagine PDF e convertire il testo delle pagine PDF. +og_title: Riconoscere il testo russo con Aspose OCR C# – Guida completa +tags: +- Aspose OCR +- C# +- PDF processing +title: Riconoscere il testo russo con Aspose OCR C# – Guida completa PDF multipagina +url: /it/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# recognize russian text with Aspose OCR C# – Complete Multi‑Page PDF Tutorial + +Ti è mai capitato di dover **recognize russian text** in un PDF che contiene più lingue, e di chiederti come farlo senza ricorrere a uno strumento diverso per ogni pagina? Non sei il solo. In molti progetti reali ti troverai di fronte a un unico PDF che contiene inglese, russo e persino cinese su pagine diverse, e desideri comunque ottenere un unico output di testo pulito. + +In questa guida ti mostreremo esattamente come **recognize russian text** (e altre lingue) usando **Aspose OCR C#**, dimostrando anche come **read pdf page count**, **recognize chinese text** e **convert pdf page text** in un pratico dump sulla console. Nessun servizio esterno, nessun passaggio nascosto—solo puro codice C# che puoi copiare‑incollare ed eseguire. + +> **What you’ll walk away with** +> * Un’app console C# eseguibile che elabora un PDF multi‑pagina. +> * Selezione della lingua per pagina (Russian, Chinese, English). +> * Tecniche per interrogare il **read pdf page count** del PDF ed estrarre il testo di ogni pagina. +> * Suggerimenti, insidie e estensioni da applicare ai tuoi progetti. + +--- + +## Prerequisites + +- .NET 6.0 o successivo (il codice funziona anche su .NET Framework 4.7+). +- Pacchetto NuGet **Aspose.OCR for .NET** installato (`dotnet add package Aspose.OCR`). +- Un file PDF che contenga lingue miste; per la demo faremo riferimento a `mixed_lang.pdf`. +- Familiarità di base con le applicazioni console C#. + +Se ti manca qualcuno di questi elementi, scarica l’ultima versione di Aspose OCR da NuGet e posiziona il tuo PDF in una cartella accessibile dal progetto. + +--- + +## Step 1 – Initialize the Aspose OCR Engine + +The very first thing you need is an instance of `OcrEngine`. This object holds all settings (like language) and performs the heavy lifting. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> The engine is reusable, so we don’t waste memory by creating a new instance for every page. Re‑using it also lets us change the language on the fly, which is essential for **recognize russian text** on one page and **recognize chinese text** on another. + +--- + +## Step 2 – Load the PDF and Find Out How Many Pages It Has + +Before we start recognizing, we need the PDF object and its page count. Aspose OCR treats each page as an `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** If the PDF is huge, you might want to read the count first and decide whether to process all pages or just a subset. + +--- + +## Step 3 – Map Each Page to Its Desired Language + +Aspose OCR supports many languages, but you have to tell it which one to use for each page. Below we create a `Dictionary` where the key is the zero‑based page index. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Why this is crucial:** +> Without this map, the OCR engine would try a single default language for every page, resulting in garbled output for Russian or Chinese text. This step directly enables **recognize russian text** and **recognize chinese text** correctly. + +--- + +## Step 4 – Loop Through All Pages, Set Language, and Recognize Text + +Now we iterate over each page, switch the language based on our map, and call `Recognize`. The result is stored in `OcrResult`, from which we extract the plain text. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Expected Console Output + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explanation of the flow:** +> * The loop respects the **read pdf page count** we printed earlier. +> * By swapping `ocrEngine.Settings.Language` each iteration, we guarantee accurate **recognize russian text** on page 2 and **recognize chinese text** on page 3. +> * The `Console.WriteLine` statements effectively **convert pdf page text** into a human‑readable string. + +--- + +## Step 5 – Run, Verify, and Tweak + +1. Build the project (`dotnet build`). +2. Run it (`dotnet run`). +3. Compare the console output with the original PDF. + +If you notice missing characters, consider: + +- **Increasing OCR accuracy** by setting `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Providing a custom language pack** if the built‑in Russian or Chinese dictionaries are outdated. +- **Adjusting DPI** when loading the PDF (`OcrImage.FromFile(path, 300)`), which can improve recognition on low‑resolution scans. + +--- + +## Bonus: Handling Edge Cases + +### What if a page’s language isn’t in the map? + +The code already falls back to English, but you can also add a fallback that logs a warning: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Can we process PDFs with more than three languages? + +Absolutely. Extend `languageMap` with additional indices and supported `OcrLanguage` values (e.g., `OcrLanguage.French`). The loop will handle any number of pages. + +### How to export the results to a file instead of the console? + +Replace the `Console.WriteLine` calls with `File.AppendAllText("output.txt", …)` or use a `StringBuilder` that you write out once after the loop. + +--- + +## Image Illustration + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*The image above demonstrates the console output when **recognize russian text** is performed on a mixed‑language PDF.* + +--- + +## Conclusion + +We’ve walked through a complete, end‑to‑end example that shows how to **recognize russian text** (and also **recognize chinese text**) from a multi‑page PDF using **Aspose OCR C#**. By reading the PDF’s page count, mapping each page to its proper language, and looping through the document, you can **convert pdf page text** into plain strings ready for storage, indexing, or further analysis. + +In short: + +- **Initialize** a single `OcrEngine`. +- **Load** the PDF and **read pdf page count**. +- **Map** pages to languages (Russian, Chinese, etc.). +- **Iterate**, set `ocrEngine.Settings.Language`, and **recognize** each page. +- **Output** or save the extracted text. + +Feel free to adapt this pattern to larger documents, add error handling, or plug the results into a search index. The core idea—per‑page language selection—remains the same, and it’s what makes reliable **recognize russian text** possible in mixed‑language PDFs. + +Got a different scenario, like scanning images instead of PDFs? The same engine works; just replace `OcrImage.FromFile` with `OcrImage.FromStream` or `FromBitmap`. Happy coding, and may your OCR be ever accurate! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/ocr-configuration/_index.md b/ocr/japanese/net/ocr-configuration/_index.md index e7f1a8b1..05e396d7 100644 --- a/ocr/japanese/net/ocr-configuration/_index.md +++ b/ocr/japanese/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Aspose.OCR を使用して、.NET での OCR 画像認識の能力を解放し Aspose.OCR for .NET を使用して強力な OCR 機能を利用しましょう。画像からテキストをシームレスに抽出します。 ### [OCR画像認識におけるリストによるOCRO操作](./ocr-operation-with-list/) Aspose.OCR for .NET の可能性を解き放ちます。リストを使用して OCR 画像認識を簡単に実行します。アプリケーションの生産性とデータ抽出を向上させます。 +### [Aspose OCR のライセンス適用方法 – ステップバイステップ C# ガイド](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aspose OCR のライセンスを適用し、.NET アプリケーションで OCR 機能を有効にする手順を詳しく解説します。 {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/japanese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..8d432c73 --- /dev/null +++ b/ocr/japanese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-01-01 +description: C#でAspose OCRのライセンスを適用する方法。ファイルの読み取り、Aspose ライセンスの設定、MemoryStream の使用、ライセンスの効率的なロード方法を学びます。 +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: ja +og_description: C#でAspose OCRのライセンスを適用する方法。ライセンスファイルの読み取り、Asposeライセンスの設定、MemoryStreamの使用、設定の検証についてこのガイドに従ってください。 +og_title: Aspose OCRでライセンスを適用する方法 – 完全なC#チュートリアル +tags: +- Aspose +- OCR +- C# +- Licensing +title: Aspose OCRでライセンスを適用する方法 – ステップバイステップ C# ガイド +url: /ja/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR でライセンスを適用する方法 – 完全 C# ガイド + +曖昧なドキュメントを追いかけずに **ライセンスを適用する方法** を知りたくありませんか? あなたは一人ではありません。多くの開発者が同じ壁にぶつかります:ファイルは読み込めても、正しい方法でライブラリに渡す方法が分からない。このチュートリアルでは、ディスク上の `.lic` ファイルを読み込むところから `SetLicense` に `MemoryStream` を渡すまで、すべての手順を詳しく解説します。最後まで読めば、任意の .NET プロジェクトにすぐ組み込める動作するソリューションが手に入ります。 + +また、**ファイルを安全に読み込む方法**、**Aspose のライセンスを正しく設定する方法**、そして **MemoryStream** を使うのが最もクリーンなアプローチである理由もカバーします。異なる環境で **ライセンスをロードする方法** に関するヒントも含まれています。外部参照は不要です—コピー&ペーストだけで動くコードをご提供します。 + +## 前提条件 + +- .NET 6.0 以降(コードは .NET Core と .NET Framework の両方で動作します) +- Aspose.OCR NuGet パッケージがインストール済み(`Install-Package Aspose.OCR`) +- アプリケーションから参照可能な場所に配置した有効な `Aspose.OCR.lic` ファイル +- C# と Visual Studio(またはお好みの IDE)に関する基本的な知識 + +> **プロのコツ:** ライセンスファイルはソース管理フォルダーの外に置き、誤ってコミットしないようにしましょう。 + +## 手順 1: ファイルを読み込む – ライセンスバイトを取得 + +まず最初に必要なのは、ライセンスファイルの生バイト配列です。`File.ReadAllBytes` を使えばシンプルかつ効率的に取得でき、パスが間違っている場合は明確な例外が自動的にスローされます。 + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**重要ポイント:** ファイルを直接メモリに読み込むことで、ファイルハンドルのリークを防ぎ、後で使用するクリーンなバイト配列を取得できます。また、このメソッドはコンソールアプリ、Web サービス、Azure Functions など、さまざまな環境で再利用可能です。 + +## 手順 2: MemoryStream を使用 – ライセンスストリームを準備 + +Aspose の `License.SetLicense` オーバーロードは `Stream` を受け取ります。バイト配列を `MemoryStream` でラップするのが、ファイルシステムに再度アクセスせずに要件を満たす慣用的な方法です。 + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**重要な洞察:** `MemoryStream` は軽量で速やかに破棄されます。同じバイト配列を使って複数の Aspose 製品のライセンスを適用したい場合にも便利です。 + +## 手順 3: Aspose ライセンスを設定 – 「ライセンスを適用する方法」の核心 + +`MemoryStream` が用意できたら、ライセンスの適用はワンライナーで完了します。`License` クラスは `Aspose.OCR` 名前空間にあるので、適切な `using` ディレクティブを追加してください。 + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +ライセンスが無効または期限切れの場合、`SetLicense` は黙って失敗し、ライブラリはトライアルモードで動作します。確実に確認したい場合は、ライセンス版でのみ利用可能な機能(例: OCR 精度設定)をチェックするか、後述する確認メッセージを利用してください。 + +## 手順 4: ライセンスをロード – すべてを統合 + +以下は、ディスクから **ライセンスをロード** し、`MemoryStream` を使用して正しく適用したことを検証する、完全に実行可能なコンソールプログラムです。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### 期待される出力 + +``` +License applied successfully. You can now perform OCR operations. +``` + +このメッセージが表示されれば、ライブラリは完全にライセンスが適用され、プロダクションレベルの OCR タスクに使用できる状態です。 + +## よくある落とし穴と回避策 + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **FileNotFoundException** がライセンス読み込み時に発生 | パスが間違っている、またはファイルがアプリにデプロイされていない | 絶対パスを使用するか、ライセンスをリソースとして埋め込む(下記「代替ロード」参照) | +| **ライセンスが適用されないがエラーも出ない** | `SetLicense` が空または破損したストリームでトライアルモードにフォールバックする | `MemoryStream` を作成する前に `licenseData.Length > 0` を確認する | +| **MemoryStream が破棄されない** | `using` を忘れるとアンマネージドリソースが残る | 示したように必ず `using` ブロックでラップする | + +### 代替案: ライセンスを埋め込みリソースとして使用 + +別個の `.lic` ファイルを配布したくない場合は、プロジェクトに追加し **Build Action** を **Embedded Resource** に設定して、次のように読み込みます。 + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +その後 `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` を呼び出し、同じ `MemoryStream` アプローチで続行します。 + +## 結論 + +Aspose OCR の **ライセンスを適用する方法** を、ファイルの読み込み、`MemoryStream` の作成、`SetLicense` の呼び出し、そして有効化の確認まで、最初から最後まで網羅しました。この手順に従えば、推測に頼らず一般的なエラーを回避し、OCR エンジンをフル機能モードで実行できます。 + +次のステップとして、**非同期でファイルを読み込む** 方法や、高スループットサービス向けの最適化、あるいはライセンスが正しくロードされた状態での高度な OCR 設定に挑戦してみてください。パターンは変わりません—読み込み、ストリーム化、設定、検証です。 + +ASP.NET Core 環境でのライセンスロードや、複数の Aspose 製品ライセンスを同時に扱うケースなど、エッジケースに関する質問があれば下のコメント欄へどうぞ。Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/ocr-optimization/_index.md b/ocr/japanese/net/ocr-optimization/_index.md index f3634551..1d34717f 100644 --- a/ocr/japanese/net/ocr-optimization/_index.md +++ b/ocr/japanese/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Aspose.OCR for .NET とのシームレスな OCR 統合を検討してくださ Aspose.OCR for .NET を使用して OCR の精度を向上させます。スペルを修正し、辞書をカスタマイズし、エラーのないテキスト認識を簡単に実現します。 ### [OCR画像認識で複数ページの結果をドキュメントとして保存](./save-multipage-result-as-document/) Aspose.OCR for .NET の可能性を解き放ちます。この包括的なステップバイステップ ガイドを使用すると、複数ページの OCR 結果をドキュメントとして簡単に保存できます。 +### [C# で Aspose OCR エンジンを使用したバッチ OCR の方法](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Aspose OCR エンジンを利用して、C# で複数画像を一括で OCR 処理する方法をステップバイステップで解説します。 +### [C# で画像 OCR を前処理し、Aspose OCR で精度を向上させる](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +画像前処理手法を活用し、C# で Aspose OCR の認識精度を最大化する方法を解説します。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/japanese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..5e817385 --- /dev/null +++ b/ocr/japanese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-01-01 +description: C#でAspose OCRエンジンを使用したバッチOCRの方法。画像からテキストを認識し、GPUアクセラレーションでTIFFファイルからテキストを抽出する方法を学びましょう。 +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: ja +og_description: Aspose OCRエンジンを使用したC#でのバッチOCR方法。このガイドでは、画像からテキストを認識し、TIFFファイルからテキストを効率的に抽出する方法を示します。 +og_title: C#でバッチOCRを行う方法 – 完全なAsposeガイド +tags: +- OCR +- C# +- Aspose +- GPU +title: C# と Aspose OCR エンジンでバッチ OCR を行う方法 +url: /ja/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で Aspose OCR エンジンを使用したバッチ OCR の方法 + +数十枚のスキャン済みドキュメントがフォルダーに入っているとき、**バッチ OCR をどうやって実行するか** と悩んだことはありませんか? 同じ壁にぶつかる開発者は多いです。単一画像の認識からコレクション全体の処理へ移行する際に直面します。朗報です。Aspose OCR を使えば、CPU でも GPU 加速でも、簡単に実現できます。 + +このチュートリアルでは、**画像からテキストを認識**し、**TIFF ファイルからテキストを抽出**する完全な実行可能サンプルをステップバイステップで解説します。「ドキュメント参照」だけの曖昧な手順はありません。今日すぐにコピー&ペーストして実行できる自己完結型のソリューションです。 + +## 前提条件 + +始める前に以下を用意してください。 + +* .NET 6.0 以降がインストール済み(コードは .NET 6 を対象としていますが、.NET 5 でも動作します)。 +* Aspose.OCR for .NET NuGet パッケージ(CPU 版と GPU 版があり、ハードウェアに合わせてインストールしてください)。 +* 処理したいサンプル TIFF または PNG ファイルが入ったフォルダー。 +* Visual Studio 2022 もしくはお好みの IDE。 + +> **プロのコツ:** GPU 版を使用する場合は、グラフィックドライバーが最新であること、CUDA 11 以上がインストールされていることを確認してください。互換性のある GPU が見つからない場合、エンジンは自動的に CPU にフォールバックします。 + +## 手順 1 – プロジェクトの作成と Aspose.OCR のインストール + +### H2: Create a New Console App and Add Aspose.OCR + +ターミナル(または Visual Studio のパッケージマネージャコンソール)で次を実行します。 + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +GPU 対応ライセンスをお持ちの場合は、代わりに GPU パッケージを追加します。 + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +これでプロジェクトに **バッチ OCR** に使用する OCR ライブラリが参照されました。 + +## 手順 2 – OCR エンジンの初期化(CPU または GPU) + +### H2: How to Batch OCR – Engine Initialization + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**ポイント:** `UseGpu` を切り替えるだけで、Aspose が最速のパスを自動選択します。GPU が利用できない場合はエンジンが静かに CPU に切り替わるため、ハードウェアが欠けていてもバッチジョブがクラッシュしません。 + +## 手順 3 – 処理対象ファイルの取得 + +### H2: Recognize Text from Images – Building the File List + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**エッジケース:** 形式が混在している場合は検索パターンを `"*.*"` に変更し、ループ内で拡張子でフィルタリングしてください。これによりバッチ処理の柔軟性が保たれます。 + +## 手順 4 – 各画像を処理しプレビューを表示 + +### H2: Extract Text from TIFF – Loop Through the Files + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**出力例:** 各 TIFF に対してコンソールに次のようなプレビューが表示されます。 + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +このプレビューにより、すべてのファイルを手動で開かなくてもバッチが正常に完了したことが確認できます。 + +## 手順 5 – 結果の保存(任意だが便利) + +### H3: Persist OCR Output to Text Files + +下流処理で全文テキストが必要な場合は、`foreach` ループ内に以下を追加します。 + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +これで各 TIFF に対して同名の `.txt` ファイルが生成され、完全な OCR 出力が保存されます。インデックス作成や検索、あるいは言語モデルへの入力に最適です。 + +## 手順 6 – デモ実行と検証 + +1. プロジェクトをビルド: `dotnet build`。 +2. 実行: `dotnet run --project GpuBatchDemo.csproj`。 + +コンソールにプレビュー行が表示され、(任意ステップを追加した場合は)画像と同じディレクトリに `.txt` ファイルが生成されます。 + +### H3: Common Pitfalls & How to Fix Them + +| 症状 | 考えられる原因 | 対処方法 | +|------|----------------|----------| +| **Empty `ocrResult.Text`** | 画像が暗すぎる、または DPI が低い | 画像を前処理(コントラスト上げ、拡大)するか、`ocrEngine.Settings.PreprocessImage = true` を設定 | +| **GPU error “CUDA driver version is insufficient”** | ドライバーが古い | GPU ドライバーを更新、または `UseGpu = false` にして CPU 強制 | +| **Exception “File not found”** | Linux/macOS でパス区切りが誤っている | `Path.Combine` またはスラッシュ(`/`)を使用 | + +## 手順 7 – スケールアップ(数千ファイル以上) + +数千枚の TIFF に拡張する際は次を検討してください。 + +* **並列処理:** `foreach` を `Parallel.ForEach` に置き換える(エンジンがスレッドセーフでない場合はスレッドごとにインスタンスを作成)。 +* **チャンク I/O:** メモリ枯渇を防ぐために画像をバッチで読み込む。 +* **ロギング:** 進捗をログファイルに書き出すと、クラッシュ後の再開が容易になる。 + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **覚えておいて:** GPU メモリは共有されるため、並列 GPU ジョブを増やしすぎると逆に遅くなることがあります。まずは少数のスレッドでテストしてください。 + +## 完全動作サンプル(コピー&ペースト可能) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +このプログラムを実行すると、**画像からテキストを認識**し、**TIFF からテキストを抽出**し、**バッチ OCR を効率的に実行**する方法がデモンストレーションされます。 + +--- + +## 結論 + +これで C# と Aspose の OCR エンジンを使った **バッチ OCR** のエンドツーエンド例が完成しました。プロジェクトのセットアップ、GPU 加速の切り替え、ファイルリスト作成、各画像の処理、結果の永続化まで網羅しています。TIFF に限らず、任意の画像形式でも同じパターンが適用可能です—拡張子を差し替えるだけです。 + +次のステップに進みませんか? OCR 出力を検索インデックスに統合したり、テキストを大規模言語モデルに投入したり、並列処理で大量バッチの処理時間を短縮したりしてみましょう。可能性は無限大です。土台はすでに手に入れました。 + +質問や独自のバッチ OCR テクニックを共有したい方は、下のコメント欄にどうぞ—ハッピーコーディング! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/japanese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..3452c771 --- /dev/null +++ b/ocr/japanese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-01-01 +description: 画像OCRを前処理して精度を向上させます。テキスト画像の認識方法、OCR精度の改善、画像OCRの読み込みとAspose OCRを使用したOCRテキストの表示方法を学びます。 +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: ja +og_description: 画像OCRを前処理して精度を向上させます。このガイドでは、テキスト画像の認識、画像OCRの読み込み、フィルタの適用、そしてOCRテキストの表示方法を示します。 +og_title: C#で画像OCRを前処理 – Aspose OCRで精度向上 +tags: +- Aspose OCR +- C# +- Image preprocessing +title: C#で画像OCRを前処理 – Aspose OCRで精度向上 +url: /ja/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +ページ上の文字を実際に読めるように **preprocess image ocr** したことがありますか?同じ悩みを抱える開発者は多いです。ノイズが多く、傾いたスキャン画像がエンジンと協調しないことが壁になります。朗報は、いくつかの賢い前処理ステップで、災害現場のような画像をきれいで読み取り可能なテキストに変えることができるということです。 + +このチュートリアルでは、**recognize text image** ファイルを認識し、**improve OCR accuracy** し、最終的にコンソールに **display OCR text** を表示する、完全に実行可能なサンプルを順を追って解説します。最後まで読めば、**load image OCR** アセットの読み込み方法、傾き補正やノイズ除去といったフィルタの適用方法、そして信頼できる結果の取得方法を Aspose.OCR for .NET で習得できます。 + +## What You’ll Learn + +- `OcrEngine` インスタンスの作成と前処理フィルタの設定方法。 +- **improve OCR accuracy** において傾き補正とデノイズフィルタが重要な理由。 +- **load image ocr** ファイルを読み込んで認識を実行する正確なコード。 +- ユーザーフレンドリーに **display OCR text** を出力する方法。 +- 実務で役立つヒント、落とし穴、オプションの調整方法。 + +### Prerequisites + +- .NET 6+(または .NET Framework 4.7+)がマシンにインストールされていること。 +- Aspose.OCR のライセンス(デモ用の無料トライアルで可)。 +- 基本的な C# の知識—高度なテクニックは不要です。 + +これらに心当たりがなければ、まずは不足しているものをインストールしてください。残りの手順はすべて前提が整っていることを想定しています。 + +--- + +## preprocess image ocr – Setting Up Filters + +最初に理解すべきは **why preprocessing matters** です。OCR エンジンは鮮明で正面から撮影された文字を得意としますが、実際のスキャンは回転やぼやけ、背景ノイズが付きものです。クリーンな画像をエンジンに渡すことで、正しい文字起こしの可能性が大幅に向上します。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**ここで何が起きているのか?** +- **Step 1** でエンジン(Aspose OCR ライブラリの中心)を作成します。 +- **Step 2** で 2 つのフィルタを添付します。`SkewCorrectionFilter` は画像を水平に戻し、`DenoiseFilter` はピクセルレベルのノイズを平滑化します。 +- **Step 3** はオプションですが便利です。エンジンが補正しようとする最大角度を上限設定し、すでに水平なページでの過剰回転を防ぎます。 +- **Step 4** で **load image OCR** データを読み込みます。`YOUR_DIRECTORY/skewed_noisy.jpg` をテストファイルのパスに置き換えてください。 +- **Step 5** で実際に OCR を実行し、`OcrResult` を取得します。 +- **Step 6** でコンソールに **display OCR text** を出力し、即座にフィードバックを得られます。 + +> **Pro tip:** 出力に文字化けが残る場合は、`MaxAngle` を上げるか、デノイズ前に `ContrastFilter` を追加してみてください。 + +--- + +## recognize text image – Loading Your Files Correctly + +よくある落とし穴は、**load image ocr** を誤った形式や DPI で読み込んでしまうことです。Aspose.OCR は PNG、JPEG、TIFF、BMP、さらには PDF ベースの画像もサポートします。ただし、印刷文書の場合は 300 DPI 以上がベストです。 + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +マルチページ TIFF を扱う場合は、各フレームをループで処理できます: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**なぜこれが improve OCR accuracy に関係するのか?** 高解像度は文字の形状を保持し、認識エンジンにより多くのデータポイントを提供します。低 DPI の画像は文字が合体したり欠けたりしやすく、エンジンが誤認識しやすくなります。 + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +デフォルトのフィルタ設定は良い出発点ですが、パラメータを調整すればさらに性能を引き出せます。 + +| フィルター | キー プロパティ | 典型的な値 | 調整するタイミング | +|------------|----------------|------------|-------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15`(度) | 大きく傾いた画像(最大 30°) | +| `DenoiseFilter` | `Strength` | `0.5`(0‑1) | ノイズが非常に多いスキャン;`0.8` に上げる | +| `ContrastFilter` (optional) | `Level` | `1.2` | コントラストが低いスクリーンショット | + +両方をカスタマイズする例: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**エッジケース:** 画像に手書きメモと印刷文字が混在している場合は、デノイズ前に `BinarizationFilter` を追加して前景と背景を分離すると効果的です。 + +--- + +## display OCR text – Formatting the Output + +デモではシンプルなコンソール出力で十分ですが、実運用では文字列の整形や改行、さらには JSON 形式が求められることがあります。 + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +API のレスポンスとして JSON が必要な場合: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +これで **display OCR text** を、下流サービスが利用できる形式に整形できました。 + +--- + +## Full Working Example – Put It All Together + +以下は新しいコンソールプロジェクトにコピペできる、最終的な自己完結型プログラムです。オプションフィルタ、高解像度画像の読み込み、クリーンな出力をすべて含んでいます。 + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**期待されるコンソール出力(例):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +別のファイルで実行すれば、テキストと信頼度はそれに応じて変化します。 + +--- + +## Common Questions & Answers + +**Q: 画像がすでに水平な場合はどうすればいいですか?** +A: 傾きフィルタはほぼゼロ角度を検出すると実質的に何もしないので、無効にする必要はありません。 + +**Q: Aspose.OCR は英語以外の言語もサポートしていますか?** +A: はい。`ocrEngine.Settings.Language = OcrLanguage.Spanish;`(またはサポートされている任意の言語)を `Recognize` 呼び出し前に設定すれば利用できます。 + +**Q: マルチページ PDF はどう扱いますか?** +A: 各ページを画像に変換します(Aspose.PDF が可能)し、同じ `OcrEngine` インスタンスに 1 ページずつ渡します。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/text-recognition/_index.md b/ocr/japanese/net/text-recognition/_index.md index 5738b2ec..fd27252b 100644 --- a/ocr/japanese/net/text-recognition/_index.md +++ b/ocr/japanese/net/text-recognition/_index.md @@ -54,10 +54,19 @@ Aspose.OCR を使用して .NET アプリケーションを強化し、画像テ ### [OCR画像認識でPDFを認識する](./recognize-pdf/) Aspose.OCR を使用して、.NET での OCR の可能性を解き放ちます。 PDF からテキストを簡単に抽出します。今すぐダウンロードして、シームレスな統合エクスペリエンスを体験してください。 ### [OCR画像認識でのテーブルの認識](./recognize-table/) -OCR 画像認識におけるテーブルの認識に関する包括的なガイドを使用して、Aspose.OCR for .NET の可能性を解き放ちます。 +OCR 画像認識におけるテーブルの認識に関する包括的なガイドを使用して、Aspose.OCR for .NET の可能性を解放ちます。 +### [c# OCR チュートリアル: Aspose OCR で画像からテキストを抽出する](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aspose OCR を使用して C# アプリケーションで画像からテキストを抽出し、簡単に処理する方法をステップバイステップで解説します。 +### [c# OCR チュートリアル – 画像からテキストを抽出し JSON にエクスポート](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aspose OCR を使用して C# アプリケーションで画像からテキストを抽出し、結果を JSON 形式でエクスポートする手順を解説します。 +### [C# で画像を OCR – JPG を ePub に変換する方法](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Aspose.OCR を使用して C# アプリケーションで JPG 画像からテキストを抽出し、ePub 形式に変換する手順を解説します。 +### [Aspose OCR C# でロシア語テキストを認識する – フルマルチページPDFガイド](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Aspose OCR を使用して C# でロシア語テキストをマルチページ PDF から認識し、完全ガイドで手順を解説します。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..304156e1 --- /dev/null +++ b/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: c# OCRチュートリアル:画像からテキストを抽出し、Aspose OCRを使用してJPGファイルでOCRを実行する方法を紹介します。OCR用に画像を読み込み、正確な結果を得る方法を学びましょう。 +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: ja +og_description: C# OCRチュートリアルで、画像からテキストを抽出し、JPGでOCRを実行し、Asposeを使用してOCR用に画像を読み込む方法を案内します。 +og_title: c# OCRチュートリアル – Aspose OCRで画像からテキストを抽出 +tags: +- OCR +- C# +- Aspose +title: C# OCRチュートリアル:Aspose OCRで画像からテキストを抽出 +url: /ja/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR チュートリアル – Aspose OCR で画像からテキストを抽出 + +実際に動作する **c# ocr tutorial** をお探しですか?このガイドでは、Aspose.OCR ライブラリを使用して **画像からテキストを抽出** し、**JPG ファイルで OCR を実行** する方法を示します。レシートスキャナーや文書アーカイバを作成する場合でも、画像からテキストを読むことに興味があるだけの場合でも、以下の手順で数分で動くコードが作れます。 + +必要なすべての項目をカバーします:パッケージのインストール、OCR 用画像の読み込み、言語リソースの設定、認識エンジンの実行、そして最も一般的な落とし穴の対処方法。最後には、認識されたテキストをコンソールに出力する自己完結型のコンソールアプリが完成します—外部サービスは不要です。 + +## 必要なもの + +- .NET 6.0 以降(コードは .NET Framework 4.6 以上でも動作します) +- Visual Studio 2022、VS Code、またはお好みの C# エディタ +- ロシア語(キリル文字)テキストを含む画像ファイル(例:`receipt_ru.jpg`) +- 初回実行時のインターネット接続(Aspose が言語リソースを自動ダウンロードします) + +すでにこれらが揃っている場合は、素晴らしいです—さっそく始めましょう。 + +## Step 1: Install Aspose.OCR and Create a New Project + +まず最初に、Aspose.OCR NuGet パッケージをプロジェクトに追加します。ソリューションフォルダーでターミナルを開き、次のコマンドを実行してください: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** `--version` フラグを使用して最新の安定版(例:`Aspose.OCR 23.9.0`)に固定できます。 + +次に、シンプルなコンソールプロジェクトを作成します(既にプロジェクトがある場合はスキップしてください): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +これで、後でサンプルコード全体を貼り付けられるクリーンな状態ができました。 + +## Step 2: Load Image for OCR + +画像の読み込みは、あらゆる **c# ocr tutorial** における最初の機能的ステップです。Aspose.OCR はファイルパス、ストリーム、あるいは `Bitmap` を受け取れます。ここではシンプルにディスクから読み込む例を示します: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** 画像を明示的に読み込むことでエンジンに明確な対象を与えられ、特にマルチページ PDF や混在フォーマットの入力を扱う際に精度が向上します。 + +## Step 3: Configure Language and Auto‑Download Resources + +Aspose.OCR にはオンデマンドでダウンロードできる言語パックが同梱されています。自動ダウンロードを有効にすると、コードを初めて実行したときにロシア語データが取得されます。 + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` により `.dat` ファイルを手動で取得する手間が省けます。 +> • `Language` を設定することで、エンジンが期待すべき文字セットを認識し、認識速度と精度が大幅に向上します。 + +## Step 4: Run OCR and Retrieve the Recognized Text + +いよいよ本番です。`Recognize` メソッドが画像を処理し、抽出された文字列を含む `OcrResult` オブジェクトを返します。 + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +プログラムを実行すると、次のような出力が得られるはずです: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** 正確な出力は元画像の品質に依存しますが、Aspose のニューラルネットワークベースエンジンは、きれいなレシートや印刷されたフォームを高精度で処理することが一般的です。 + +## Complete Working Example + +以下は、すべての手順を組み合わせた **完全かつ実行可能なコード** です。`Program.cs` に貼り付け、`YOUR_DIRECTORY` を実際のフォルダー パスに置き換えて、`dotnet run` を実行してください。 + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** JPG 以外の画像(PNG、BMP、TIFF)から **extract text from image** したい場合は、ファイル拡張子を変更するだけで済みます—Aspose はすべての形式をサポートしています。 + +## Step 5: Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Garbage characters** | 低解像度画像または過度の圧縮 | 高品質なソースを使用するか、`Bitmap` で前処理(例:コントラスト増加) | +| **Language not recognized** | 言語パックがダウンロードされていない | `AutoDownloadResources` が `true` であることを確認し、初回実行時にインターネット接続があるか確認 | +| **Null `ocrResult.Text`** | 画像パスが間違っている、またはファイルが存在しない | パスを検証し、読み込む前に `File.Exists` で存在確認 | +| **Performance lag** | 大量の画像を順次処理している | 複数回呼び出す際は単一の `OcrEngine` インスタンスを再利用 | + +### Bonus: Reading Multiple Files in a Loop + +フォルダー内の **perform OCR on JPG** ファイルを処理したい場合は、ロジックを `foreach` でラップします: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +このパターンはレシート処理パイプラインに対してスケーラブルに機能します。 + +## Conclusion + +これで **c# ocr tutorial** は完了です。Aspose.OCR を使用して **extract text from image**、**perform OCR on JPG**、そして **load image for OCR** を行う方法を学びました。サンプルプログラムは、NuGet パッケージのインストールから認識されたキリル文字テキストのコンソール出力までの全フローを示しているので、任意の .NET プロジェクトにすぐにコピーして使用できます。 + +次のステップに進む準備はできましたか?`OcrLanguage.Russian` を `OcrLanguage.English` に置き換えて英語レシートを認識させたり、`OcrEngine.Settings` のオプション(例:`PageSegmentationMode`、`ImagePreprocessing`)を試して精度を微調整したりしてみてください。出力をデータベースに保存したり、PDF を生成したり、翻訳 API に渡したりすることも可能です。 + +問題が発生した場合は、Aspose.OCR のドキュメントを確認するか、下のコメント欄にご質問を投稿してください。コーディングを楽しんで、OCR の結果が常にクリアになることを願っています! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..9d4eca2c --- /dev/null +++ b/ocr/japanese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-01-01 +description: c# OCRチュートリアル:テキスト抽出、OCR用画像の読み込み、Aspose.OCRを使用したJSONのファイル書き込みをステップバイステップで解説。 +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: ja +og_description: c# OCRチュートリアルで、画像からテキストを抽出し、OCR用に画像を読み込み、Aspose.OCRを使用してJSONをファイルに書き込む方法をステップバイステップで解説します。 +og_title: c# OCR チュートリアル – テキスト抽出と JSON へのエクスポート +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR チュートリアル – 画像からテキストを抽出し、JSONにエクスポート +url: /ja/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – 画像からテキストを抽出し JSON にエクスポート + +スキャンした請求書からテキストを抽出するのに、カスタムパーサーを書いて何時間も費やすことなくできるか、考えたことはありませんか? あなたは一人ではありません。この **c# OCR tutorial** では、OCR 用に画像をロードし、認識エンジンを実行し、そして **write JSON to file** してデータを下流システムに渡す方法を正確にお見せします。 + +レシートが入ったフォルダーがあり、各ファイルが `receipt1.png`、`receipt2.png` のように命名されているとします。このレシートをすばやく検索可能な JSON レコードに変換する方法が必要です。これが本チュートリアルで解決する課題で、最後にはそれを実行できるコンソールアプリが完成します。Aspose.OCR 以外の追加依存関係は不要で、魔法のようなことはありません—明確で再現可能な手順だけです。 + +> **学べること** +> - Aspose.OCR を使用した **load image for OCR** の方法。 +> - **how to extract text** と信頼度スコアの取得ベストプラクティス。 +> - OCR 結果を整然とした **OCR image to JSON** ペイロードに変換する方法。 +> - **write JSON to file** を安全に行い、出力を検証する方法。 + +## Prerequisites + +- .NET 6 SDK 以上(コードは .NET Core でも動作します)。 +- Visual Studio 2022 またはお好みのエディタ。 +- Aspose.OCR NuGet パッケージ(`Install-Package Aspose.O`)。 +- 処理したい画像ファイル(PNG、JPG、BMP)。デモでは `invoice.png` を使用します。 + +これらが揃っていない場合は、Microsoft のサイトから SDK を取得し、Package Manager Console で NuGet パッケージを追加してください。 + +```powershell +Install-Package Aspose.OCR +``` + +基が整ったので、実装に入りましょう。 + +## Step 1: c# OCR tutorial – OCR エンジンの初期化 + +**load image for OCR** を行う前に、認識プロセスを駆動するエンジンのインスタンスが必要です。`OcrEngine` クラスは軽量ですが、リソースを速やかに放できるよう `using` ブロックでラップするのがベストプラクティスです。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* 多数の画像をバッチ処理する場合は、毎回新しい `OcrEngine` を作成するのではなく、同じインスタンスを再利用するとメモリの消費が抑えられ、処理速度が向上します。 + +## Step 2: Load image for OCR + +ここで実際に **load image for OCR** を行います。Aspose.OCR はさまざまなフォーマットに対応しているため、PNG、JPEG、さらにはマルチページ TIFF でも指定できます。`OcrImage.FromFile` メッドファイルを読み込み、認識の準備をします。 + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **なぜ重要か:** 画像を別途ロードしておくことで、サイズや DPI、さらには前処理(例: 二値化)をエンジンに渡す前に確認できます。画像が破損している場合、`FromFile` は明確な例外をスローし、これをキャッチしてログに記録できます。 + +## Step 3: How to extract text – Run the recognition + +画像が用意できたら、いよいよ **how to extract text** を実行します。`Recognize` メソッドは `OcrResult` オブジェクトを返し、プレーンテキストだけでなく各単語の位置情報や信頼度スコアも含まれます。 + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* PDF に見えないテキストレイヤーが含まれていることがあります。PDF ページを画像としてレンダリングして OCR にかけても何も認識されない場合があります。そのようなケースでは、まず Aspose.PDF を使って隠れたテキストレイヤーを抽出し、必要に応じて OCR を実行してください。 + +## Step 4: OCR image to JSON – Convert the result + +`OcrResult` クラスは便利な `ToJson()` ヘルパーを提供しており、結果全体(各単語のバウンディングボックスと信頼度を含む)を JSON 文字列にシリアライズします。これが **OCR image to JSON** を自前のシリアライザーを書かずに実現する最もクリーンな方法です。 + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +独自のスキーマが必要な場合は、`ocrResult.Words` を列挙して自分でオブジェクトを組み立てても構いませんが、ほとんどのシナリオでは組み込みの JSON で十分で、すでに整然としています。 + +## Step 5: Write JSON to file + +最後のピースは JSON ペイロードを永続化することです。`File.WriteAllText` メソッドはファイルを(存在すれば上書きして)原子的に作成します。対象ディレクトリが存在しないと `DirectoryNotFoundException` が発生するので注意してください。 + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* UTF‑8 に BOM を付けたい、または別のエンコーディングが必要な場合は、`Encoding` 引数を受け取るオーバーロードを使用してください。 + +## Step 6: Verify the output + +簡単な `Console.WriteLine` で処理が正常に完了したことを確認できます。JSON ファイルをビューアで開いて構造をチェックするのもおすすめです。 + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON には各単語の位置情報が含まれるため、後で UI 上でテキストをハイライトしたい場合に便利です。 + +## Full Working Example + +以下はそのままコピー&ペーストできる完全版プログラムです。`YOUR_DIRECTORY` を画像が格納されている実際のパスに置き換えてください。 + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +プロジェクトフォルダーで `dotnet run` を実行すると、元の PNG と同じ場所に `invoice.json` が生成されます。 + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | パスのタイプミスまたはファイルが存在しない | `Path.Combine` を使用し、`File.Exists` で確認してから `FromFile` を呼び出す | +| **Low confidence scores** | 画像品質が低い、DPI が不足している | `ocrImage.AdjustContrast` で前処理するか、画像を 300 DPI に拡大する | +| **JSON file empty** | `ocrResult` が null(エンジンが失敗) | 画像フォーマットがサポート対象か、ライセンス(必要な場合)が正しく適用されているか確認 | +| **Performance bottleneck on large batches** | 各イテレーションで `OcrEngine` を再作成している | バッチ全体で単一の `OcrEngine` インスタンスを再利用し、最後にだけ破棄する | + +## Next Steps + +**c# OCR tutorial** をマスターした今、次のような拡張が考えられます。 + +- フォルダー全体を **Batch process** し、JSON ファイルを単一のデータベースに集約する。 +- 出力を Azure Cognitive Search と **Integrate** して検索可能な PDF を実現する。 +- `ocrEngine.Language = OcrLanguage.Spanish`(またはサポートされている任意の言語)で **Add language support** を追加する。 +- 正規表現を使って JSON からテーブルやキー‑バリュー ペアを抽出する **Post‑process** を行う。 + +これらの拡張は、画像のロード、テキスト抽出、JSON 変換、ファイル書き込みという本チュートリアルで学んだコア概念に基づいています。 + +### Conclusion + +この **c# OCR tutorial** では、**load image for OCR**、**how to extract text**、結果を **OCR image to JSON** ペイロードに変換し、最終的に **write JSON to file** するまでのすべての手順を解説しました。完全なコード例は任意の .NET プロジェクトにそのまま組み込めますし、解説は実務シナリオへの適用に必要なコンテキストを提供します。 + +自分のレシートや請求書で試してみてください—画像前処理を調整したり、言語を変えてみたりすれば、JSON 出力がどんどん豊かになります。問題が発生したら、上記の落とし穴表を再確認するか、コメントで質問してください。Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/japanese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..51a2ba5b --- /dev/null +++ b/ocr/japanese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-01-01 +description: C#で画像をOCRし、Aspose OCRを使用してJPGをePubに変換する方法を学びます。このステップバイステップガイドでは、画像からテキストを抽出する方法も示しています。 +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: ja +og_description: C#で画像をOCRする方法は?このガイドに従って画像からテキストを抽出し、Aspose OCRでJPGをePubに変換しましょう。 +og_title: C#で画像をOCRする方法 – JPGをePubに変換 +tags: +- Aspose OCR +- C# +- ePub conversion +title: C#で画像をOCRする方法 – JPGをePubに変換 +url: /ja/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#で画像をOCRする方法 – JPGをePubに変換 + +Ever wondered **how to OCR image** files directly from a C# console app? You're not the only one. Many developers hit a wall when they need to pull text out of a photograph and then package that text into a readable ePub book. + +C#コンソールアプリから直接 **how to OCR image** ファイルを処理したいと思ったことはありませんか? あなただけではありません。写真からテキストを抽出し、そのテキストを読みやすいePubブックにパッケージ化する必要があるとき、多くの開発者が壁にぶつかります。 + +In this tutorial we’ll walk through a complete, runnable example that **extracts text from image**, saves the result as an ePub, and shows you how to **convert JPG to ePub** without leaving your IDE. No fluff, just the code you can copy‑paste and run today. + +このチュートリアルでは、**画像からテキストを抽出**し、結果をePubとして保存し、IDEを離れることなく **JPGをePubに変換** する完全な実行可能サンプルを順を追って説明します。余計な説明はなく、すぐにコピー&ペーストして実行できるコードだけです。 + +## 学べること + +- .NETプロジェクトでAspose OCRエンジンを設定する方法。 +- `OcrSaveFormat.Epub` オプションを使用して **convert image to epub** を実行する正確な手順。 +- サポートされていない画像形式やフォントが欠如しているといった一般的な落とし穴への対処法。 +- すぐにコンパイルして実行できる完全なC#プログラム。 + +**Prerequisites**: .NET 6 SDK(または任意の最新.NETバージョン)、有効な Aspose.OCR NuGet パッケージ、そして処理したい画像ファイル(`input.jpg`)。NuGet を使用したことがない場合は、Package Manager Console を開き `Install-Package Aspose.OCR` を実行してください。 + +Ready? Let’s dive in. + +準備はできましたか?それでは始めましょう。 + +## Step 1 – 画像をOCRしてソースをロードする方法 + +The first thing you need is an OCR engine instance and a source image. Aspose OCR makes this straightforward: you create an `OcrEngine`, then feed it an `OcrImage` loaded from disk. + +最初に必要なのは OCR エンジンのインスタンスとソース画像です。Aspose OCR はこれをシンプルに行えます:`OcrEngine` を作成し、ディスクからロードした `OcrImage` を渡します。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Why this matters** – エンジンを一度だけ初期化することでメモリ使用量を抑え、画像を早めにロードすることで重い OCR 処理を始める前にファイルパスを確認できます。 + +## Step 2 – OCR を実行し画像からテキストを抽出する + +Now that the image is in memory, ask the engine to recognize the characters. The `Recognize` method returns an `OcrResult` object that contains the plain text, confidence scores, and even layout information. + +画像がメモリ上にあるので、エンジンに文字認識を指示します。`Recognize` メソッドはプレーンテキスト、信頼度スコア、レイアウト情報などを含む `OcrResult` オブジェクトを返します。 + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Pro tip** – テキストだけが必要で ePub が不要な場合はここで止められます。`ocrResult.Text` プロパティは、他のシステムにパイプできるクリーンな文字列です。 + +## Step 3 – 結果を ePub ブックとして保存する (JPG を ePub に変換) + +Aspose OCR can directly serialize the OCR result into several formats, including ePub. This step shows exactly how to **convert JPG to ePub** in a single line. + +Aspose OCR は OCR 結果を ePub を含む複数の形式に直接シリアライズできます。このステップでは、**convert JPG to ePub** をワンラインで実行する方法を示します。 + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +When you run the program, you’ll see the extracted text printed to the console, and a new `book_page.epub` file appear next to your source image. Open it in any ePub reader (Calibre, Apple Books, etc.) and you’ll find the OCR text nicely formatted as a single-page book. + +プログラムを実行すると、抽出されたテキストがコンソールに表示され、ソース画像の隣に新しい `book_page.epub` ファイルが生成されます。任意の ePub リーダー(Calibre、Apple Books など)で開くと、OCR テキストが単一ページの本としてきれいにフォーマットされていることが確認できます。 + +### 期待される出力 + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +If the ePub opens correctly, congratulations—you’ve just completed a full **c# OCR example** that turns a JPEG into a portable ePub. + +ePub が正しく開くなら、おめでとうございます—JPEG をポータブルな ePub に変換する完全な **c# OCR example** を完了しました。 + +## Step 4 – 画像を ePub に変換する際の一般的な問題 + +Even with a solid library, you might bump into a few hurdles. Here’s a quick FAQ: + +堅実なライブラリを使用していても、いくつかの障壁に直面することがあります。簡単な FAQ をご紹介します: + +| Issue | Why it Happens | How to Fix | +|-------|----------------|------------| +| **Unsupported image format** | Aspose OCR はラスタ形式(JPG、PNG、BMP)を期待します。 | まず画像を JPG または PNG に変換します。例: `System.Drawing.Image` を使用。 | +| **Blank output** | 画像品質が低い、または圧縮が強すぎる。 | DPI を上げ、より鮮明なスキャンを使用するか、画像前処理(`ocrEngine.Preprocess`)を適用します。 | +| **Missing fonts in ePub** | デフォルトの ePub ライターは埋め込まれないシステムフォントを使用します。 | 必要な .ttf ファイルが入ったフォルダーを `ocrEngine.Config.FontsDirectory` に設定します。 | +| **Large ePub file** | 高解像度画像が別ページとして埋め込まれる。 | `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` を使用します。 | + +Addressing these early saves you from chasing bugs later. + +これらに早めに対処することで、後でバグを追いかける手間を省けます。 + +## Step 5 – 例の拡張(基本を超えて) + +Now that you have a working **convert image to epub** pipeline, you might wonder what else you can do. Here are a few ideas you can try tomorrow: + +動作する **convert image to epub** パイプラインができたので、次に何ができるか気になるでしょう。以下は明日試せるいくつかのアイデアです: + +1. **Batch processing** – JPG のフォルダーをループし、画像ごとに 1 つの ePub を生成するか、マルチチャプター ePub に統合します。 +2. **Language selection** – `ocrEngine.Language = Language.English;` など、サポートされている言語を設定して精度を向上させます。 +3. **Layout preservation** – まず `OcrSaveFormat.Html` を使用し、HTML を ePub にラップしてリッチなフォーマットにします。 +4. **Cloud deployment** – コードを Azure Function や AWS Lambda でラップし、OCR‑to‑ePub をウェブサービスとして提供します。 + +Each of these extensions builds on the core **how to OCR image** logic we just covered. + +これらの拡張はすべて、先ほど説明したコアな **how to OCR image** ロジックを基にしています。 + +## 完全動作コード(コピー&ペースト可能) + +Below is the entire program in one block. Replace `YOUR_DIRECTORY` with the actual path to your image file. + +以下にプログラム全体を 1 ブロックで示します。`YOUR_DIRECTORY` を画像ファイルへの実際のパスに置き換えてください。 + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Remember** – `Aspose.OCR` NuGet パッケージがインストールされていること、対象の .NET ランタイムはベストな互換性のために少なくとも .NET 5 以上であることを確認してください。 + +## 結論 + +We’ve just covered **how to OCR image** files in C# and turned those scans into clean ePub books—essentially a **convert JPG to ePub** workflow you can drop into any project. By following the steps above you’ll be able to **extract text from image**, handle common edge cases, and extend the solution to batch jobs or cloud services. + +C# で **how to OCR image** ファイルを処理し、スキャンをクリーンな ePub ブックに変換する方法、すなわち任意のプロジェクトに組み込める **convert JPG to ePub** ワークフローを解説しました。上記の手順に従えば **extract text from image** が可能になり、一般的なエッジケースに対処し、バッチジョブやクラウドサービスへの拡張も行えます。 + +If you’re curious about the next logical step, try swapping the ePub output for a PDF (`OcrSaveFormat.Pdf`) or feeding the OCR text into a translation API. The sky’s the limit once you’ve mastered the basics. + +次のステップに興味があるなら、ePub 出力を PDF(`OcrSaveFormat.Pdf`)に置き換えるか、OCR テキストを翻訳 API に渡してみてください。基本をマスターすれば、可能性は無限です。 + +Got questions about a particular image format, or want to see a multi‑page ePub example? Drop a comment, and I’ll be happy to help. Happy coding, and enjoy turning pictures into books! + +特定の画像形式について質問がある、またはマルチページ ePub の例が見たい場合はコメントを残してください。喜んでお手伝いします。コーディングを楽しみ、画像を本に変える体験をお楽しみください! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/japanese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..c75950b5 --- /dev/null +++ b/ocr/japanese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-01-01 +description: Aspose OCR C# を使用してロシア語テキストを瞬時に認識します。中国語テキストの認識、PDF のページ数の取得、PDF ページテキストの変換を + 1 つのチュートリアルで学びましょう。 +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: ja +og_description: Aspose OCR C# を使用してロシア語テキストを迅速に認識します。このチュートリアルでは、中国語テキストの認識、PDF のページ数の取得、PDF + ページテキストの変換方法もカバーしています。 +og_title: Aspose OCR C#でロシア語テキストを認識する – 完全ガイド +tags: +- Aspose OCR +- C# +- PDF processing +title: Aspose OCR C#でロシア語テキストを認識する – 完全マルチページPDFガイド +url: /ja/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR C# を使用したロシア語テキスト認識 – 完全マルチページ PDF チュートリアル + +言語が混在した PDF で **recognize russian text**(ロシア語テキストの認識)が必要になり、ページごとに別々のツールを使わずにどうすればいいか疑問に思ったことはありませんか? あなたは一人ではありません。実際のプロジェクトでは、英語、ロシア語、さらには中国語がページごとに含まれる単一の PDF が渡され、単一でクリーンなテキスト出力が欲しいことが多いです。 + +このガイドでは、**recognize russian text**(および他の言語)を **Aspose OCR C#** を使用して正確に行う方法を示すとともに、**read pdf page count**、**recognize chinese text**、**convert pdf page text** を便利なコンソール出力に変換する方法もデモします。外部サービスや隠れた手順は一切なく、コピー&ペーストして実行できる純粋な C# コードだけです。 + +> **What you’ll walk away with** +> * マルチページ PDF を処理する実行可能な C# コンソール アプリ。 +> * ページごとの言語選択(ロシア語、中国語、英語)。 +> * PDF のページ数を取得し、各ページのテキストを抽出する手法。 +> * 自分のプロジェクトに適用できるヒント、落とし穴、拡張機能。 + +## 前提条件 + +- .NET 6.0 以降(コードは .NET Framework 4.7+ でも動作します)。 +- **Aspose.OCR for .NET** NuGet パッケージがインストールされていること(`dotnet add package Aspose.OCR`)。 +- 混在言語を含む PDF ファイル。デモでは `mixed_lang.pdf` を使用します。 +- C# コンソール アプリケーションの基本的な知識。 + +もしこれらが揃っていない場合は、NuGet から最新の Aspose OCR を取得し、PDF をプロジェクト フォルダーからアクセス可能な場所に配置してください。 + +## Step 1 – Aspose OCR エンジンの初期化 + +最初に必要なのは `OcrEngine` のインスタンスです。このオブジェクトはすべての設定(言語など)を保持し、重い処理を実行します。 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> エンジンは再利用可能なので、各ページごとに新しいインスタンスを作成してメモリを無駄にしません。再利用することで、ページごとに言語を動的に変更でき、あるページで **recognize russian text**、別のページで **recognize chinese text** を行う際に不可欠です。 + +## Step 2 – PDF をロードしてページ数を取得する + +認識を開始する前に、PDF オブジェクトとそのページ数が必要です。Aspose OCR は各ページを `OcrImage` として扱います。 + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tip:** PDF が非常に大きい場合、まずページ数を取得して、すべてのページを処理するか、サブセットだけにするかを判断した方が良いでしょう。 + +## Step 3 – 各ページを目的の言語にマッピングする + +Aspose OCR は多数の言語をサポートしていますが、ページごとに使用する言語を指定する必要があります。以下では、キーが 0 から始まるページインデックスとなる `Dictionary` を作成します。 + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Why this is crucial:** +> このマップがないと、OCR エンジンはすべてのページで単一のデフォルト言語を使用しようとし、ロシア語や中国語のテキストが文字化けします。この手順により **recognize russian text** と **recognize chinese text** が正しく機能します。 + +## Step 4 – すべてのページをループし、言語を設定してテキストを認識する + +ここでは各ページを反復処理し、マップに基づいて言語を切り替えて `Recognize` を呼び出します。結果は `OcrResult` に格納され、そこからプレーンテキストを抽出します。 + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### 期待されるコンソール出力 + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explanation of the flow:** +> * ループは前述の **read pdf page count** を考慮しています。 +> * 各イテレーションで `ocrEngine.Settings.Language` を切り替えることで、ページ 2 で正確な **recognize russian text**、ページ 3 で **recognize chinese text** を保証します。 +> * `Console.WriteLine` 文は **convert pdf page text** を人間が読める文字列に効果的に変換します。 + +## Step 5 – 実行、検証、調整 + +1. プロジェクトをビルドする(`dotnet build`)。 +2. 実行する(`dotnet run`)。 +3. コンソール出力を元の PDF と比較する。 + +文字が欠けている場合は、以下を検討してください: + +- `ocrEngine.Settings.DetectTextOrientation = true;` を設定して **OCR 精度を向上** させる。 +- 組み込みのロシア語または中国語辞書が古い場合は **カスタム言語パックを提供** する。 +- PDF をロードする際に DPI を調整する(`OcrImage.FromFile(path, 300)`)ことで、低解像度スキャンの認識が改善されることがあります。 + +## Bonus: エッジケースの処理 + +### マップにページの言語が存在しない場合は? + +コードはすでに英語にフォールバックしますが、警告をログに記録するフォールバックも追加できます: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### 3 つ以上の言語を含む PDF を処理できますか? + +もちろんです。`languageMap` に追加のインデックスと対応する `OcrLanguage` 値(例: `OcrLanguage.French`)を拡張すれば、ループは任意のページ数に対応します。 + +### コンソールではなくファイルに結果をエクスポートするには? + +`Console.WriteLine` 呼び出しを `File.AppendAllText("output.txt", …)` に置き換えるか、ループ後に一度だけ書き出す `StringBuilder` を使用してください。 + +## 画像イラスト + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*上の画像は、混在言語 PDF で **recognize russian text** を実行した際のコンソール出力を示しています。* + +## 結論 + +本稿では、**Aspose OCR C#** を使用してマルチページ PDF から **recognize russian text**(および **recognize chinese text**)を抽出する、完全なエンドツーエンドの例を示しました。PDF のページ数を取得し、各ページを適切な言語にマッピングし、ドキュメント全体をループすることで、**convert pdf page text** を保存やインデックス作成、さらなる分析に利用できるプレーン文字列に変換できます。 + +In short: + +- **Initialize** 単一の `OcrEngine` を初期化する。 +- **Load** PDF をロードし、**read pdf page count** を取得する。 +- **Map** ページを言語(ロシア語、中国語など)にマッピングする。 +- **Iterate** して `ocrEngine.Settings.Language` を設定し、各ページを **recognize** する。 +- **Output** 抽出したテキストを出力または保存する。 + +このパターンは、より大きなドキュメントへの適用、エラーハンドリングの追加、検索インデックスへの組み込みなど、自由にカスタマイズしてください。核心となる考え方はページごとの言語選択であり、これが混在言語 PDF で信頼性のある **recognize russian text** を可能にします。 + +PDF ではなく画像をスキャンするなど、別のシナリオがありますか? 同じエンジンが使えますので、`OcrImage.FromFile` を `OcrImage.FromStream` や `FromBitmap` に置き換えるだけです。コーディングを楽しんで、OCR が常に正確でありますように! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/ocr-configuration/_index.md b/ocr/korean/net/ocr-configuration/_index.md index e00d1286..8f3ad5fd 100644 --- a/ocr/korean/net/ocr-configuration/_index.md +++ b/ocr/korean/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Aspose.OCR을 사용하여 .NET에서 OCR 이미지 인식 기능을 활용하 .NET용 Aspose.OCR로 강력한 OCR 기능을 잠금 해제하세요. 이미지에서 텍스트를 원활하게 추출합니다. ### [OCR 이미지 인식에서 목록을 사용한 OCOperation](./ocr-operation-with-list/) .NET용 Aspose.OCR의 잠재력을 활용해 보세요. 목록을 사용하여 OCR 이미지 인식을 손쉽게 수행하세요. 애플리케이션의 생산성과 데이터 추출을 향상하십시오. +### [Aspose OCR에서 라이선스 적용 방법 – 단계별 C# 가이드](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aspose OCR에서 라이선스를 적용하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/korean/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..4eba7fdd --- /dev/null +++ b/ocr/korean/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-01-01 +description: C#에서 Aspose OCR 라이선스를 적용하는 방법. 파일을 읽고, Aspose 라이선스를 설정하고, MemoryStream을 + 사용하며 라이선스를 효율적으로 로드하는 방법을 배웁니다. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: ko +og_description: C#에서 Aspose OCR 라이선스를 적용하는 방법. 이 가이드를 따라 라이선스 파일을 읽고, Aspose 라이선스를 + 설정하고, MemoryStream을 사용하며 설정을 확인하세요. +og_title: Aspose OCR에서 라이선스 적용 방법 – 완전 C# 튜토리얼 +tags: +- Aspose +- OCR +- C# +- Licensing +title: Aspose OCR에서 라이선스 적용 방법 – 단계별 C# 가이드 +url: /ko/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR에서 라이선스 적용 방법 – 완전한 C# 가이드 + +Aspose OCR에 대한 **라이선스 적용 방법**을 모호한 문서를 찾아다니지 않고 궁금해 본 적 있나요? 당신만 그런 것이 아닙니다. 대부분의 개발자는 같은 문제에 부딪힙니다: 파일을 읽을 수는 하지만 라이브러리에 올바르게 전달하는 방법을 모릅니다. 이 튜토리얼에서는 디스크에 있는 `.lic` 파일을 로드하는 것부터 `MemoryStream`을 사용해 `SetLicense`를 호출하는 것까지 모든 세부 사항을 단계별로 살펴봅니다. 끝까지 읽으면 어떤 .NET 프로젝트에도 바로 넣어 사용할 수 있는 작동하는 솔루션을 얻게 됩니다. + +또한 **파일을 안전하게 읽는 방법**, **Aspose 라이선스를 설정하는 올바른 방법**, 그리고 **MemoryStream**을 사용하는 것이 가장 깔끔한 접근 방식인 이유를 다룹니다. 다양한 환경에서 **라이선스를 로드하는 방법**에 대해 궁금하다면 해당 팁도 포함되어 있습니다. 외부 참고 자료는 필요 없으며, 순수하게 복사‑붙여넣기만 하면 되는 코드만 제공합니다. + +## 사전 요구 사항 + +- .NET 6.0 이상 (코드는 .NET Core 및 .NET Framework에서도 동작합니다) +- Aspose.OCR NuGet 패키지 설치 (`Install-Package Aspose.OCR`) +- 애플리케이션에서 접근 가능한 위치에 유효한 `Aspose.OCR.lic` 파일 배치 +- C# 및 Visual Studio(또는 선호하는 IDE)에 대한 기본 지식 + +> **프로 팁:** 라이선스 파일을 소스 제어 폴더 밖에 두어 실수로 커밋되는 것을 방지하세요. + +## 1단계: 파일 읽기 – 라이선스 바이트 로드 + +우선 필요한 것은 라이선스 파일의 원시 바이트 배열입니다. `File.ReadAllBytes`를 사용하면 간단하고 효율적이며, 경로가 잘못되면 명확한 예외를 자동으로 발생시킵니다. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**왜 중요한가:** 파일을 직접 메모리로 읽어들이면 파일 핸들 누수를 방지하고 이후에 사용할 깨끗한 바이트 배열을 얻을 수 있습니다. 또한 이 메서드를 콘솔 앱, 웹 서비스, Azure Functions 등에서 재사용할 수 있습니다. + +## 2단계: MemoryStream 사용 – 라이선스 스트림 준비 + +Aspose의 `License.SetLicense` 오버로드는 `Stream`을 기대합니다. 바이트 배열을 `MemoryStream`으로 감싸는 것이 파일 시스템에 다시 접근하지 않고도 해당 요구 사항을 충족하는 관용적인 방법입니다. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**핵심 인사이트:** `MemoryStream`은 가볍고 빠르게 해제됩니다. 또한 하나 이상의 Aspose 제품 라이선스를 적용해야 할 경우 동일한 바이트 배열을 여러 라이브러리에서 재사용할 수 있습니다. + +## 3단계: Aspose 라이선스 설정 – “라이선스 적용 방법”의 핵심 + +이제 `MemoryStream`이 준비되었으니 라이선스를 적용하는 코드는 한 줄이면 됩니다. `License` 클래스는 `Aspose.OCR` 네임스페이스에 있으므로 적절한 `using` 지시문을 추가했는지 확인하세요. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +라이선스가 유효하지 않거나 만료된 경우 `SetLicense`는 조용히 실패하고 라이브러리는 체험판 모드로 동작합니다. 확실히 확인하려면 라이선스 버전에서만 사용할 수 있는 기능(예: OCR 정확도 설정)을 확인하거나, 나중에 출력할 확인 메시지를 활용하면 됩니다. + +## 4단계: 라이선스 로드 – 전체 흐름 정리 + +아래는 디스크에서 **라이선스를 로드**하고 `MemoryStream`을 사용하며 라이선스가 성공적으로 적용되었는지 확인하는 완전한 실행 가능한 콘솔 프로그램 예시입니다. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### 예상 출력 + +``` +License applied successfully. You can now perform OCR operations. +``` + +메시지가 표시되면 라이브러리가 완전히 라이선스가 적용된 것이며, 프로덕션 수준 OCR 작업을 수행할 준비가 된 것입니다. + +## 흔히 발생하는 문제와 회피 방법 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** 발생 (라이선스 읽기 시) | 경로가 잘못되었거나 파일이 앱에 배포되지 않았음 | 절대 경로를 사용하거나 라이선스를 리소스로 포함하세요(아래 “대체 로드” 참고) | +| **라이선스가 적용되지 않았지만 오류 없음** | `SetLicense`가 스트림이 비어 있거나 손상된 경우 조용히 체험판 모드로 전환합니다 | `MemoryStream`을 만들기 전에 `licenseData.Length > 0`인지 확인하세요 | +| **MemoryStream이 해제되지 않음** | `using`을 빼먹으면 관리되지 않는 리소스가 남습니다 | 항상 예시와 같이 `using` 블록으로 스트림을 감싸세요 | + +### 대안: 라이선스를 임베디드 리소스로 포함하기 + +별도의 `.lic` 파일을 배포하고 싶지 않다면 프로젝트에 추가하고 **Build Action**을 **Embedded Resource**로 설정한 뒤 다음과 같이 읽어들입니다: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +그런 다음 `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")`를 호출하고 동일한 `MemoryStream` 방식을 계속 사용합니다. + +## 결론 + +우리는 Aspose OCR에 대한 **라이선스 적용 방법**을 처음부터 끝까지 다루었습니다: 파일 읽기, `MemoryStream` 생성, `SetLicense` 호출, 그리고 활성화 확인. 이 단계를 따르면 추측을 없애고 흔한 오류를 피하며 OCR 엔진이 전체 기능 모드로 실행되는 것을 보장합니다. + +다음으로는 고처리량 서비스를 위해 **파일을 비동기적으로 읽는 방법**을 살펴보거나, 라이선스가 올바르게 로드된 상태에서 고급 OCR 설정을 탐구할 수 있습니다. 어느 쪽이든 패턴은 동일합니다—읽고, 스트림하고, 설정하고, 확인합니다. + +ASP.NET Core 환경에서 라이선스를 로드하거나 여러 Aspose 제품 라이선스를 처리하는 등 엣지 케이스에 대한 질문이 있나요? 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/ocr-optimization/_index.md b/ocr/korean/net/ocr-optimization/_index.md index 06ac7906..98949b60 100644 --- a/ocr/korean/net/ocr-optimization/_index.md +++ b/ocr/korean/net/ocr-optimization/_index.md @@ -46,13 +46,17 @@ url: /ko/net/ocr-optimization/ 포괄적인 가이드를 통해 .NET용 Aspose.OCR의 잠재력을 활용해 보세요. 이미지 인식을 위해 직사각형을 준비하는 방법을 단계별로 알아보세요. 원활한 OCR 통합으로 .NET 애플리케이션을 향상시키세요. ### [OCR 이미지 인식의 이미지 전처리 필터](./preprocessing-filters-for-image/) .NET용 Aspose.OCR을 살펴보세요. 전처리 필터로 OCR 정확도를 높입니다. 원활한 통합을 위해 지금 다운로드하세요. +### [C#에서 이미지 전처리 OCR – Aspose OCR으로 정확도 향상](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +C#에서 Aspose OCR을 사용해 이미지 전처리로 정확도를 높이는 방법을 단계별로 안내합니다. ### [OCR 이미지 인식에서 맞춤법 검사를 통한 결과 수정](./result-correction-with-spell-checking/) .NET용 Aspose.OCR을 사용하여 OCR 정확도를 향상하세요. 철자를 수정하고, 사전을 사용자 정의하고, 오류 없는 텍스트 인식을 쉽게 달성할 수 있습니다. ### [OCR 이미지 인식에서 여러 페이지 결과를 문서로 저장](./save-multipage-result-as-document/) .NET용 Aspose.OCR의 잠재력을 활용해 보세요. 이 포괄적인 단계별 가이드를 사용하여 여러 페이지의 OCR 결과를 문서로 쉽게 저장할 수 있습니다. +### [C#에서 Aspose OCR 엔진으로 배치 OCR 수행 방법](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +.NET용 Aspose.OCR 엔진을 사용해 C#에서 배치 OCR을 구현하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/korean/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..de894b74 --- /dev/null +++ b/ocr/korean/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: C#에서 Aspose OCR 엔진을 사용하여 배치 OCR을 수행하는 방법. 이미지에서 텍스트를 인식하고 GPU 가속을 이용해 + TIFF 파일에서 텍스트를 추출하는 방법을 배웁니다. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: ko +og_description: Aspose OCR 엔진을 사용한 C# 배치 OCR 방법. 이 가이드는 이미지에서 텍스트를 인식하고 TIFF 파일에서 + 텍스트를 효율적으로 추출하는 방법을 보여줍니다. +og_title: C#에서 배치 OCR 수행 방법 – 완전한 Aspose 가이드 +tags: +- OCR +- C# +- Aspose +- GPU +title: C#에서 Aspose OCR 엔진으로 배치 OCR 수행하는 방법 +url: /ko/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 Aspose OCR 엔진으로 배치 OCR 수행 방법 + +수십 개의 스캔 문서가 폴더에 쌓여 있을 때 **배치 OCR을 어떻게 할까** 고민해 본 적 있나요? 혼자가 아닙니다—단일 이미지 인식에서 전체 컬렉션 처리로 전환할 때 많은 개발자들이 같은 장벽에 부딪힙니다. 좋은 소식은 Aspose OCR이 CPU든 GPU 가속이든 관계없이 이 작업을 아주 쉽게 만들어 준다는 점입니다. + +이 튜토리얼에서는 **이미지에서 텍스트를 인식**하고 **TIFF 파일에서 텍스트를 대량 추출**하는 완전하고 실행 가능한 예제를 단계별로 살펴봅니다. “문서를 참고하세요” 같은 모호한 안내는 없습니다—오늘 바로 복사·붙여넣기 해서 실행할 수 있는 자체 포함 솔루션을 제공합니다. + +## Prerequisites + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +* .NET 6.0 이상이 설치되어 있어야 합니다(코드는 .NET 6을 목표로 하지만 .NET 5에서도 동작합니다). +* Aspose.OCR for .NET NuGet 패키지(CPU 및 GPU 버전 모두 제공됩니다; 하드웨어에 맞는 버전을 설치하세요). +* 처리하고자 하는 샘플 TIFF 또는 PNG 파일이 들어 있는 폴더. +* Visual Studio 2022 또는 선호하는 IDE. + +> **Pro tip:** GPU 버전을 사용할 계획이라면 그래픽 드라이버가 최신인지, CUDA 11 이상이 설치되어 있는지 확인하세요. 호환 가능한 GPU를 찾지 못하면 엔진이 자동으로 CPU로 전환됩니다. + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: 새 콘솔 앱 만들기 및 Aspose.OCR 추가 + +터미널(또는 Visual Studio의 Package Manager Console)을 열고 다음을 실행하세요: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +GPU 라이선스가 있는 경우 대신 GPU 패키지를 추가합니다: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +이제 프로젝트가 **배치 OCR**에 사용할 OCR 라이브러리를 참조하게 됩니다. + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: 배치 OCR – 엔진 초기화 + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**왜 중요한가:** `UseGpu`를 토글하면 Aspose가 가장 빠른 경로를 선택합니다. GPU가 없으면 엔진이 자동으로 CPU로 전환하므로 하드웨어 부족으로 배치 작업이 중단되지 않습니다. + +## Step 3 – Gather the Files You Want to Process + +### H2: 이미지에서 텍스트 인식 – 파일 목록 만들기 + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**예외 상황 참고:** 다양한 포맷이 섞여 있다면 검색 패턴을 `"*.*"` 로 바꾸고 루프 안에서 확장자를 필터링하세요. 이렇게 하면 배치가 유연해집니다. + +## Step 4 – Process Each Image and Show a Preview + +### H2: TIFF에서 텍스트 추출 – 파일 순회 + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**출력 예시:** 각 TIFF에 대해 콘솔에 다음과 같은 내용이 표시됩니다: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +이 미리보기를 통해 모든 파일을 일일이 열지 않아도 배치가 정상적으로 수행됐음을 확인할 수 있습니다. + +## Step 5 – Save Results (Optional but Handy) + +### H3: OCR 결과를 텍스트 파일로 저장 + +다운스트림 처리에 전체 텍스트가 필요하다면 `foreach` 루프 안에 다음 코드를 추가하세요: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +이제 각 TIFF 옆에 전체 OCR 결과를 담은 `.txt` 파일이 생성됩니다—인덱싱, 검색 또는 언어 모델에 입력하기에 최적입니다. + +## Step 6 – Run the Demo and Verify + +1. 프로젝트 빌드: `dotnet build`. +2. 실행: `dotnet run --project GpuBatchDemo.csproj`. + +콘솔에 미리보기 라인이 출력되고(선택 단계가 포함된 경우) 원본 이미지 옆에 일련의 `.txt` 파일이 생성됩니다. + +### H3: 흔히 겪는 문제와 해결 방법 + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | 이미지가 너무 어둡거나 DPI가 낮음 | 이미지 전처리(대비 증가, 업스케일)하거나 `ocrEngine.Settings.PreprocessImage = true` 설정 | +| **GPU error “CUDA driver version is insufficient”** | 드라이버 오래됨 | GPU 드라이버 업데이트하거나 `UseGpu = false` 로 CPU 강제 사용 | +| **Exception “File not found”** | Linux/macOS에서 경로 구분자 오류 | `Path.Combine` 사용하거나 슬래시(`/`) 사용 | + +## Step 7 – Scaling Up (Beyond a Few Files) + +수천 개의 TIFF로 규모를 확장할 때는 다음을 고려하세요: + +* **병렬 처리:** `foreach` 를 `Parallel.ForEach` 로 감싸세요(엔진 인스턴스가 스레드 안전한지 확인하고, 그렇지 않으면 스레드당 하나씩 생성). +* **청크 I/O:** 메모리 부족을 방지하기 위해 이미지를 배치 단위로 읽어들입니다. +* **로그 기록:** 진행 상황을 로그 파일에 기록하면 크래시 후 재시작이 용이합니다. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Remember:** GPU 메모리는 공유되므로 과도한 병렬 GPU 작업은 오히려 성능을 저하시킬 수 있습니다. 먼저 몇 개의 스레드로 테스트해 보세요. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +이 프로그램을 실행하면 **이미지에서 텍스트를 인식**, **TIFF에서 텍스트를 추출**, 그리고 **배치 OCR을 효율적으로 수행**하는 방법을 보여줍니다. + +--- + +## Conclusion + +이제 Aspose OCR 엔진을 사용해 C#에서 **배치 OCR**을 수행하는 완전한 엔드‑투‑엔드 예제가 준비되었습니다. 프로젝트 설정, GPU 가속 토글, 파일 목록 구축, 이미지 순회 처리, 결과 저장까지 모든 과정을 다루었습니다. TIFF 파일이든 다른 이미지 포맷이든 동일한 패턴을 적용하면 됩니다—파일 확장자만 바꾸면 됩니다. + +다음 단계가 궁금하신가요? OCR 결과를 검색 인덱스에 연동하거나, 대형 언어 모델에 입력하거나, 병렬 처리를 실험해 대규모 배치에서 시간을 절감해 보세요. 가능성은 무한하며, 이제 그 기반이 마련되었습니다. + +질문이 있거나 자신만의 배치 OCR 팁을 공유하고 싶다면 아래 댓글을 남겨 주세요—행복한 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/korean/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..8f85a731 --- /dev/null +++ b/ocr/korean/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-01-01 +description: 이미지 OCR을 전처리하여 정확도를 향상시킵니다. 텍스트 이미지를 인식하는 방법, OCR 정확도를 개선하는 방법, 이미지 OCR을 + 로드하고 Aspose OCR을 사용해 OCR 텍스트를 표시하는 방법을 배웁니다. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: ko +og_description: 정확도를 높이기 위해 이미지 OCR을 전처리합니다. 이 가이드는 텍스트 이미지를 인식하고, 이미지 OCR을 로드하며, + 필터를 적용하고, OCR 텍스트를 표시하는 방법을 보여줍니다. +og_title: C#에서 이미지 OCR 전처리 – Aspose OCR로 정확도 향상 +tags: +- Aspose OCR +- C# +- Image preprocessing +title: C#에서 이미지 OCR 전처리 – Aspose OCR로 정확도 향상 +url: /ko/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 이미지 OCR 전처리 – Aspose OCR으로 정확도 향상 + +엔진이 실제로 페이지에 있는 내용을 읽도록 **이미지 OCR 전처리** 방법이 궁금하셨나요? 당신만 그런 것이 아닙니다—대부분의 개발자는 잡음이 많고 기울어진 스캔 이미지가 협조하지 않을 때 벽에 부딪힙니다. 좋은 소식은 몇 가지 스마트한 전처리 단계만으로 재난 지역 이미지가 깨끗하고 읽기 쉬운 텍스트로 바뀔 수 있다는 것입니다. + +이 튜토리얼에서는 **텍스트 이미지 인식** 파일을 처리하고 **OCR 정확도 향상**을 이루며 최종적으로 **콘솔에 OCR 텍스트 표시**까지 하는 완전한 실행 예제를 단계별로 살펴봅니다. 끝까지 읽으면 **이미지 OCR 로드** 방법, 기울기 보정 및 노이즈 제거와 같은 필터 적용 방법, 그리고 Aspose.OCR for .NET을 사용해 신뢰할 수 있는 결과를 얻는 방법을 알게 됩니다. + +## 배울 내용 + +- `OcrEngine` 인스턴스를 생성하고 전처리 필터를 구성하는 방법 +- **OCR 정확도 향상**을 위해 기울기 보정 및 노이즈 제거 필터가 중요한 이유 +- **이미지 OCR 로드** 파일을 인식하는 정확한 코드 +- **콘솔에 OCR 텍스트 표시**를 사용자 친화적으로 하는 방법 +- 실제 프로젝트에 적용할 수 있는 팁, 함정, 선택적 튜닝 방법 + +### 사전 요구 사항 + +- .NET 6+ (또는 .NET Framework 4.7+)가 설치되어 있어야 합니다. +- Aspose.OCR 라이선스 (무료 체험판으로도 이번 데모는 충분히 동작합니다). +- 기본적인 C# 지식—고급 트릭은 필요하지 않습니다. + +위 항목 중 익숙하지 않은 것이 있다면 잠시 멈춰서 필요한 부분을 설치하세요; 나머지 가이드는 모두 준비되어 있다고 가정합니다. + +--- + +## preprocess image ocr – 필터 설정하기 + +먼저 **전처리가 왜 중요한지** 이해해야 합니다. OCR 엔진은 선명하고 정렬된 텍스트를 읽는 데 강점이 있지만, 실제 스캔은 회전, 흐림, 배경 잡음 등으로 어려움을 겪습니다. 정리된 이미지를 엔진에 전달하면 올바른 텍스트 변환 가능성이 크게 높아집니다. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**무엇이 일어나고 있나요?** +- **Step 1** 엔진을 생성합니다—Aspose OCR 라이브러리의 핵심입니다. +- **Step 2** 두 개의 필터를 연결합니다. `SkewCorrectionFilter`는 이미지를 수평으로 회전시키고, `DenoiseFilter`는 픽셀 수준의 잡음을 부드럽게 합니다. +- **Step 3**은 선택 사항이지만 유용합니다; 엔진이 보정하려는 최대 각도를 제한해 이미 충분히 평평한 페이지가 과도하게 회전되는 것을 방지합니다. +- **Step 4**는 **이미지 OCR 로드** 데이터를 수행하는 단계입니다. `YOUR_DIRECTORY/skewed_noisy.jpg`를 테스트 파일 경로로 교체하세요. +- **Step 5** 실제로 OCR을 실행하고 `OcrResult`를 생성합니다. +- **Step 6** **콘솔에 OCR 텍스트 표시**를 하여 즉시 피드백을 제공합니다. + +> **Pro tip:** 출력에 여전히 깨진 문자가 보인다면 `MaxAngle` 값을 늘리거나 노이즈 제거 단계 앞에 `ContrastFilter`를 추가해 보세요. + +--- + +## recognize text image – 파일을 올바르게 로드하기 + +자주 발생하는 문제는 **이미지 OCR 로드** 시 잘못된 형식이나 DPI를 사용하는 것입니다. Aspose.OCR은 PNG, JPEG, TIFF, BMP, 그리고 PDF 기반 이미지까지 지원합니다. 하지만 인쇄 문서의 경우 300 DPI 이상이 가장 좋습니다. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +다중 페이지 TIFF를 다루는 경우 각 프레임을 순회할 수 있습니다: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**왜 이것이 OCR 정확도 향상에 중요한가요?** 높은 해상도는 각 문자 형태를 보존해 인식기에 더 많은 데이터 포인트를 제공하므로 정확도가 상승합니다. 낮은 DPI 이미지는 문자들이 합쳐지거나 깨져서 엔진이 오해하기 쉽습니다. + +--- + +## improve OCR accuracy – 필터 파라미터 조정하기 + +기본 필터 설정은 좋은 출발점이지만, 파라미터를 미세 조정하면 추가 성능을 끌어낼 수 있습니다. + +| Filter | 핵심 속성 | 일반값 | 조정 시점 | +|--------|-----------|--------|-----------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (도) | 이미지가 크게 기울어진 경우(최대 30°) | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | 잡음이 매우 많은 스캔; `0.8`로 증가 | +| `ContrastFilter` (선택) | `Level` | `1.2` | 대비가 낮은 스크린샷 | + +두 필터를 동시에 커스터마이징하는 예시: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**예외 상황:** 이미지에 손글씨와 인쇄 텍스트가 혼합돼 있다면, 노이즈 제거 전에 `BinarizationFilter`를 추가해 전경과 배경을 구분하는 것이 좋습니다. + +--- + +## display OCR text – 출력 포맷팅하기 + +콘솔에 단순히 출력하는 방식은 데모에 적합하지만, 실제 서비스에서는 정리된 문자열, 줄 바꿈, 혹은 JSON 형태가 필요합니다. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +API 응답용 JSON이 필요하다면: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +이제 **콘솔에 OCR 텍스트 표시**를 하면서 하위 서비스가 바로 사용할 수 있는 포맷을 제공했습니다. + +--- + +## Full Working Example – 전체 예제 합치기 + +아래는 새 콘솔 프로젝트에 복사·붙여넣기 할 수 있는 완전한 프로그램입니다. 선택적 필터, 고해상도 이미지 로드, 깔끔한 출력까지 모두 포함돼 있습니다. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**예상 콘솔 출력 (예시):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +다른 파일로 실행하면 텍스트와 신뢰도 점수가 그에 맞게 달라집니다. + +--- + +## 자주 묻는 질문 & 답변 + +**Q: 이미지가 이미 수평이라면 어떻게 해야 하나요?** +A: 기울기 필터가 거의 0도에 가까운 각도를 감지하면 실질적으로 아무 작업도 하지 않으므로, 필터를 그대로 두어도 안전합니다. + +**Q: Aspose.OCR이 영어 외의 언어도 지원하나요?** +A: 네—`ocrEngine.Settings.Language = OcrLanguage.Spanish;`와 같이 지원되는 언어를 지정하면 됩니다(다른 언어도 동일). + +**Q: 다중 페이지 PDF는 어떻게 처리하나요?** +A: 각 페이지를 이미지로 변환(Aspose.PDF 활용)한 뒤, 동일한 `OcrEngine` 인스턴스로 한 장씩 전달하면 됩니다. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/text-recognition/_index.md b/ocr/korean/net/text-recognition/_index.md index 1a906a77..92c5e708 100644 --- a/ocr/korean/net/text-recognition/_index.md +++ b/ocr/korean/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Aspose.OCR을 사용하여 .NET에서 OCR의 잠재력을 활용해 보세요. P Aspose.OCR을 사용하여 .NET에서 OCR의 잠재력을 활용해 보세요. PDF에서 텍스트를 쉽게 추출할 수 있습니다. 원활한 통합 경험을 위해 지금 다운로드하세요. ### [OCR 이미지 인식에서 테이블 인식](./recognize-table/) OCR 이미지 인식의 테이블 인식에 대한 포괄적인 가이드를 통해 .NET용 Aspose.OCR의 잠재력을 활용해 보세요. +### [C# OCR 튜토리얼: Aspose OCR로 이미지에서 텍스트 추출](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aspose OCR를 사용해 C#에서 이미지의 텍스트를 추출하는 방법을 단계별로 안내합니다. +### [C# OCR 튜토리얼 – 이미지에서 텍스트 추출 및 JSON으로 내보내기](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aspose OCR를 사용해 C#에서 이미지 텍스트를 추출하고 JSON 형식으로 내보내는 방법을 단계별로 안내합니다. +### [C#에서 이미지 OCR하기 – JPG를 ePub으로 변환](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Aspose OCR를 사용해 C#에서 JPG 이미지를 OCR하고 ePub 파일로 변환하는 방법을 단계별로 안내합니다. +### [Aspose OCR C#로 러시아어 텍스트 인식 – 전체 다중 페이지 PDF 가이드](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Aspose OCR C#를 사용해 러시아어 텍스트를 다중 페이지 PDF에서 인식하는 방법을 단계별로 안내합니다. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..047d8080 --- /dev/null +++ b/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: 'c# OCR 튜토리얼: 이미지에서 텍스트를 추출하고 Aspose OCR을 사용하여 JPG 파일에 대해 OCR을 수행하는 방법을 + 보여줍니다. OCR을 위해 이미지를 로드하고 정확한 결과를 얻는 방법을 배워보세요.' +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: ko +og_description: c# OCR 튜토리얼로 이미지에서 텍스트를 추출하고, JPG에 대해 OCR을 수행하며, Aspose를 사용하여 OCR용 + 이미지를 로드하는 방법을 안내합니다. +og_title: c# OCR 튜토리얼 – Aspose OCR을 사용하여 이미지에서 텍스트 추출 +tags: +- OCR +- C# +- Aspose +title: 'C# OCR 튜토리얼: Aspose OCR로 이미지에서 텍스트 추출' +url: /ko/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 튜토리얼 – Aspose OCR을 사용하여 이미지에서 텍스트 추출 + +실제로 동작하는 **c# ocr tutorial**을 찾고 계신가요? 이 가이드에서는 Aspose.OCR 라이브러리를 사용하여 **이미지에서 텍스트 추출** 및 **JPG 파일에 OCR 수행** 방법을 보여드립니다. 영수증 스캐너, 문서 보관 시스템을 구축하거나 사진에서 텍스트를 읽는 것에 궁금하신 경우, 아래 단계들을 따라 몇 분 안에 작동하는 코드를 만들 수 있습니다. + +필요한 모든 내용을 다룹니다: 패키지 설치, OCR을 위한 이미지 로드, 언어 리소스 구성, 인식 엔진 실행, 그리고 가장 흔한 함정 처리. 끝까지 진행하면 인식된 텍스트를 콘솔에 출력하는 독립 실행형 콘솔 앱을 얻게 됩니다—외부 서비스가 필요 없습니다. + +## 필요 사항 + +- .NET 6.0 이상 (코드는 .NET Framework 4.6+에서도 작동합니다) +- Visual Studio 2022, VS Code, 또는 선호하는 C# 편집기 +- 러시아어(키릴 문자) 텍스트가 포함된 이미지 파일, 예: `receipt_ru.jpg` +- 첫 실행을 위한 인터넷 연결 (Aspose가 언어 리소스를 자동 다운로드합니다) + +이미 준비되었다면, 좋습니다—시작해 봅시다. + +## 단계 1: Aspose.OCR 설치 및 새 프로젝트 만들기 + +우선, 프로젝트에 Aspose.OCR NuGet 패키지를 추가합니다. 솔루션 폴더에서 터미널을 열고 다음을 실행하세요: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** 최신 안정 버전을 고정하려면 `--version` 플래그를 사용하세요, 예: `Aspose.OCR 23.9.0`. + +다음으로, 간단한 콘솔 프로젝트를 생성합니다 (이미 있다면 건너뛰세요): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +이제 전체 샘플 코드를 붙여넣을 수 있는 깨끗한 상태가 준비되었습니다. + +## 단계 2: OCR을 위한 이미지 로드 + +이미지를 로드하는 것은 모든 **c# ocr tutorial**에서 첫 번째 기능 단계입니다. Aspose.OCR은 파일 경로, 스트림, 혹은 `Bitmap`을 받을 수 있습니다. 예제에서는 간단히 디스크에서 로드합니다: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** 이미지를 명시적으로 로드하면 엔진에 명확한 대상이 제공되어 정확도가 향상됩니다—특히 다중 페이지 PDF나 혼합 형식 입력을 처리할 때 그렇습니다. + +## 단계 3: 언어 및 자동 다운로드 리소스 구성 + +Aspose.OCR은 필요에 따라 다운로드할 수 있는 언어 팩을 제공합니다. 자동 다운로드를 활성화하면 코드를 처음 실행할 때 엔진이 러시아어 데이터를 가져옵니다. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true`는 `.dat` 파일을 수동으로 가져오는 단계를 없앱니다. +> • `Language` 설정은 엔진에 어떤 문자 집합을 기대할지 알려주어 인식 속도와 정확도를 크게 향상시킵니다. + +## 단계 4: OCR 실행 및 인식된 텍스트 가져오기 + +이제 본격적인 작업이 진행됩니다. `Recognize` 메서드는 이미지를 처리하고 추출된 문자열을 포함한 `OcrResult` 객체를 반환합니다. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +프로그램을 실행하면 다음과 같은 출력이 나타납니다: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** 정확한 출력은 원본 이미지의 품질에 따라 달라지지만, Aspose의 신경망 기반 엔진은 일반적으로 깨끗한 영수증 및 인쇄된 양식을 높은 정확도로 처리합니다. + +## 완전한 작동 예제 + +아래는 모든 단계를 결합한 **전체 실행 가능한 코드**입니다. `Program.cs`에 복사‑붙여넣기하고, `YOUR_DIRECTORY`를 실제 폴더 경로로 교체한 뒤 `dotnet run`을 실행하세요. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** JPG 외에 **이미지에서 텍스트 추출**이 필요하면 (PNG, BMP, TIFF 등) 파일 확장자를 바꾸기만 하면 됩니다—Aspose가 모두 처리합니다. + +## 단계 5: 일반적인 함정 및 Pro 팁 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **깨진 문자** | 저해상도 이미지 또는 과도한 압축 | `Bitmap`으로 전처리(예: 대비 증가)하거나 고품질 소스를 사용하세요 | +| **언어 인식 안 됨** | 언어 팩이 다운로드되지 않음 | `AutoDownloadResources`가 `true`인지 확인하고 첫 실행 시 머신에 인터넷 연결이 있는지 확인하세요 | +| **`ocrResult.Text`가 null** | 이미지 경로가 잘못되었거나 파일이 없음 | 경로를 확인하고 로드하기 전에 `File.Exists`를 사용하세요 | +| **성능 지연** | 많은 이미지가 순차적으로 처리됨 | 여러 호출에 걸쳐 단일 `OcrEngine` 인스턴스를 재사용하세요 | + +### 보너스: 루프에서 여러 파일 읽기 + +폴더에 있는 **JPG 파일에 OCR 수행**이 필요하면 로직을 `foreach`로 감싸세요: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +## 결론 + +이제 **c# ocr tutorial**을 마쳤으며, Aspose.OCR을 사용하여 **이미지에서 텍스트 추출**, **JPG에 OCR 수행**, **OCR을 위한 이미지 로드** 방법을 보여줍니다. 샘플 프로그램은 NuGet 패키지 설치부터 인식된 키릴 문자 텍스트 출력까지 전체 흐름을 시연하므로 바로 any .NET 프로젝트에 복사해 사용할 수 있습니다. + +다음 단계가 준비되셨나요? `OcrLanguage.Russian`을 `OcrLanguage.English`로 바꿔 영어 영수증을 인식해 보거나, `OcrEngine.Settings` 옵션(예: `PageSegmentationMode`, `ImagePreprocessing`)을 실험하여 정확도를 미세 조정해 보세요. 출력 결과를 데이터베이스에 통합하거나 PDF를 생성하거나 번역 API에 전달할 수도 있습니다. + +문제가 발생하면 Aspose.OCR 문서를 확인하거나 아래에 댓글을 남겨 주세요. 즐거운 코딩 되시고, OCR 결과가 언제나 선명하길 바랍니다! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..40d7b7a8 --- /dev/null +++ b/ocr/korean/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-01-01 +description: 'c# OCR 튜토리얼: 텍스트 추출, OCR용 이미지 로드, Aspose.OCR을 사용한 JSON 파일 쓰기 – 단계별 가이드.' +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: ko +og_description: c# OCR 튜토리얼로 이미지에서 텍스트를 추출하고, OCR을 위해 이미지를 로드하며, Aspose.OCR을 사용해 JSON을 + 파일에 쓰는 방법을 안내합니다. +og_title: c# OCR 튜토리얼 – 텍스트 추출 및 JSON으로 내보내기 +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR 튜토리얼 – 이미지에서 텍스트 추출 및 JSON으로 내보내기 +url: /ko/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR 튜토리얼 – 이미지에서 텍스트 추출 및 JSON으로 내보내기 + +스캔한 청구서에서 텍스트를 추출하는 데 수시간을 들여 맞춤 파서를 작성하는 것이 궁금했나요? 당신만 그런 것이 아닙니다. 이 **c# OCR 튜토리얼**에서는 OCR용 이미지를 로드하고, 인식 엔진을 실행한 다음 **JSON을 파일에 쓰는** 방법을 정확히 보여드리며, 이를 통해 데이터를 다운스트림 시스템에 전달할 수 있습니다. + +예를 들어 `receipt1.png`, `receipt2.png`와 같은 영수증이 들어 있는 폴더가 있고, 이를 빠르게 검색 가능한 JSON 레코드로 변환하고 싶다고 가정해 보세요. 이것이 우리가 해결할 문제이며, 끝까지 진행하면 바로 실행 가능한 콘솔 앱을 얻게 됩니다. Aspose.OCR 외에 추가 종속성은 없으며, 마법도 없습니다—명확하고 재현 가능한 단계만 제공합니다. + +> **배우게 될 내용** +> - Aspose.OCR을 사용하여 **load image for OCR** 하는 방법. +> - **how to extract text** 를 수행하고 신뢰도 점수를 얻는 최적의 방법. +> - OCR 결과를 깔끔하게 구조화된 **OCR image to JSON** 페이로드로 변환하기. +> - 안전하게 **write JSON to file** 하고 출력물을 검증하기. + +## 사전 요구 사항 + +- .NET 6 SDK 또는 그 이상 (코드는 .NET Core에서도 작동합니다). +- Visual Studio 2022 또는 선호하는 편집기. +- Aspose.OCR NuGet 패키지 (`Install-Package Aspose.OCR`). +- 처리하고 싶은 이미지 파일(PNG, JPG, BMP) – 데모에서는 `invoice.png`를 사용합니다. + +위 항목 중 누락된 것이 있다면 Microsoft 사이트에서 SDK를 다운로드하고 패키지 관리자 콘솔을 통해 NuGet 패키지를 추가하세요: + +```powershell +Install-Package Aspose.OCR +``` + +이제 기본 준비가 끝났으니 실제 구현으로 들어가 보겠습니다. + +## Step 1: c# OCR 튜토리얼 – OCR 엔진 초기화 + +우리가 **load image for OCR** 하기 전에, 인식 프로세스를 구동할 엔진 인스턴스가 필요합니다. `OcrEngine` 클래스는 가볍지만, 리소스를 즉시 해제하도록 `using` 블록으로 감싸는 것이 좋은 습관입니다. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* 배치로 많은 이미지를 처리할 계획이라면 매번 새 `OcrEngine`을 생성하는 대신 동일한 인스턴스를 재사용하세요. 메모리 사용량을 줄이고 속도를 높입니다. + +## Step 2: Load image for OCR + +이제 실제로 **load image for OCR** 합니다. Aspose.OCR은 다양한 형식을 지원하므로 PNG, JPEG, 혹은 다중 페이지 TIFF에도 적용할 수 있습니다. `OcrImage.FromFile` 메서드는 파일을 읽고 인식을 위해 준비합니다. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **왜 중요한가:** 이미지를 별도로 로드하면 엔진에 전달하기 전에 차원, DPI, 혹은 사전 처리(예: 이진화)를 확인할 수 있습니다. 이미지가 손상된 경우 `FromFile`은 명확한 예외를 발생시키며, 이를 잡아 로그에 기록할 수 있습니다. + +## Step 3: How to extract text – Run the recognition + +이미지를 확보했으니 이제 **how to extract text** 를 수행할 수 있습니다. `Recognize` 메서드는 일반 텍스트뿐 아니라 각 단어의 위치 데이터와 신뢰도 점수를 포함하는 `OcrResult` 객체를 반환합니다. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* 일부 PDF에는 보이지 않는 텍스트 레이어가 있습니다. PDF 페이지를 이미지로 렌더링하여 제공하면 엔진이 아무것도 인식하지 못할 수 있습니다. 이런 경우 먼저 Aspose.PDF를 사용해 숨겨진 레이어를 추출하고, 필요할 때만 OCR을 사용하세요. + +## Step 4: OCR image to JSON – 결과 변환 + +`OcrResult` 클래스는 전체 결과 세트(각 단어의 경계 상자와 신뢰도 포함)를 JSON 문자열로 직렬화하는 편리한 `ToJson()` 헬퍼를 제공합니다. 이는 자체 직렬화기를 작성하지 않고 **OCR image to JSON** 을 구현하는 가장 깔끔한 방법입니다. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +맞춤 스키마가 필요하면 `ocrResult.Words`를 반복하여 직접 객체를 만들 수 있지만, 대부분의 경우 내장 JSON이 충분히 잘 구조화되어 있습니다. + +## Step 5: Write JSON to file + +이제 퍼즐의 마지막 조각인 JSON 페이로드를 저장합니다. `File.WriteAllText` 메서드는 파일을 원자적으로 생성(또는 덮어쓰기)합니다. 대상 디렉터리가 존재하는지 확인하세요. 그렇지 않으면 `DirectoryNotFoundException`이 발생합니다. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* BOM이 포함된 UTF‑8이나 다른 인코딩이 필요하면 `Encoding` 인수를 받는 오버로드를 사용하세요. + +## Step 6: Verify the output + +간단한 `Console.WriteLine`으로 프로세스가 성공적으로 완료됐는지 확인할 수 있습니다. 또한 JSON 파일을 뷰어에서 열어 구조를 확인할 수도 있습니다. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### 예상 JSON 스니펫 + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON에는 각 단어의 위치가 포함되어 있어, 나중에 UI에서 텍스트를 강조 표시할 때 유용합니다. + +## 전체 작업 예제 + +아래는 완전한 복사‑붙여넣기 가능한 프로그램입니다. `YOUR_DIRECTORY`를 이미지가 있는 실제 경로로 교체하세요. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +프로그램을 실행하세요(`dotnet run`을 프로젝트 폴더에서 실행) 그러면 원본 PNG와 함께 `invoice.json` 파일이 생성됩니다. + +## 일반적인 함정 및 회피 방법 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** 발생 (이미지 로드 시) | 경로 오타 또는 파일 누락 | `Path.Combine`을 사용하고 `FromFile` 호출 전에 `File.Exists`를 확인하세요. | +| **Low confidence scores** | 이미지 품질 저하, 낮은 DPI | `ocrImage.AdjustContrast`로 사전 처리하거나 이미지를 300 DPI로 확대하세요. | +| **JSON 파일 비어 있음** | `ocrResult`가 null 반환(엔진 실패) | 이미지 형식이 지원되는지, 라이선스(있는 경우)가 올바르게 적용됐는지 확인하세요. | +| **대량 배치에서 성능 병목** | 각 반복마다 `OcrEngine`을 재생성 | 배치 전체에 단일 `OcrEngine` 인스턴스를 재사용하고, 마지막에만 Dispose하세요. | + +## 다음 단계 + +이제 **c# OCR 튜토리얼**을 마스터했으니, 다음과 같은 작업을 고려해 볼 수 있습니다: + +- **Batch process** 전체 폴더를 일괄 처리하고 JSON 파일을 하나의 데이터베이스로 집계합니다. +- **Integrate** 출력 결과를 Azure Cognitive Search와 통합하여 검색 가능한 PDF를 만듭니다. +- **Add language support** `ocrEngine.Language = OcrLanguage.Spanish` (또는 지원되는 다른 언어) 로 설정합니다. +- **Post‑process** 정규식을 사용해 JSON에서 테이블이나 키‑값 쌍을 추출합니다. + +이러한 확장은 모두 우리가 다룬 핵심 개념—OCR용 이미지 로드, 텍스트 추출, JSON 변환, 그리고 JSON을 디스크에 쓰기—에 기반합니다. + +### 결론 + +이 **c# OCR 튜토리얼**에서는 **load image for OCR**, **how to extract text** 를 수행하고 결과를 **OCR image to JSON** 페이로드로 변환한 뒤 최종적으로 **write JSON to file** 하는 모든 단계를 살펴보았습니다. 완전한 코드 예제는 어떤 .NET 프로젝트에도 바로 삽입할 수 있으며, 설명을 통해 실제 시나리오에 맞게 솔루션을 적용하는 데 필요한 컨텍스트를 제공합니다. + +자신만의 영수증이나 청구서 세트로 직접 시도해 보세요—이미지 전처리를 조정하고, 다양한 언어를 실험하며, JSON 출력이 어떻게 변하는지 확인해 보세요. 문제가 발생하면 함정 표를 다시 확인하거나 아래에 댓글을 남기세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/korean/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..50d54500 --- /dev/null +++ b/ocr/korean/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: C#에서 이미지 OCR을 수행하고 Aspose OCR을 사용하여 JPG를 ePub로 변환하는 방법을 배웁니다. 이 단계별 가이드는 + 이미지에서 텍스트를 추출하는 방법도 보여줍니다. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: ko +og_description: C#에서 이미지 OCR 하는 방법은? 이 가이드를 따라 이미지에서 텍스트를 추출하고 Aspose OCR을 사용해 JPG를 + ePub으로 변환하세요. +og_title: C#에서 이미지 OCR하는 방법 – JPG를 ePub으로 변환 +tags: +- Aspose OCR +- C# +- ePub conversion +title: C#에서 이미지 OCR하는 방법 – JPG를 ePub으로 변환 +url: /ko/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 이미지 OCR하기 – JPG를 ePub으로 변환 + +C# 콘솔 앱에서 **이미지 OCR**을 직접 수행하는 방법이 궁금하셨나요? 여러분만 그런 것이 아닙니다. 사진에서 텍스트를 추출한 뒤, 그 텍스트를 읽을 수 있는 ePub 책으로 패키징해야 할 때 많은 개발자들이 난관에 봉착합니다. + +이 튜토리얼에서는 **이미지에서 텍스트를 추출**하고, 결과를 ePub으로 저장하며, **JPG를 ePub으로 변환**하는 전체 실행 가능한 예제를 단계별로 살펴보겠습니다. 불필요한 내용은 없으며, 바로 복사‑붙여넣기 해서 오늘 바로 실행할 수 있는 코드만 제공합니다. + +## 배울 내용 + +- .NET 프로젝트에 Aspose OCR 엔진을 설정하는 방법. +- `OcrSaveFormat.Epub` 옵션을 사용해 **이미지를 ePub으로 변환**하는 정확한 단계. +- 지원되지 않는 이미지 형식이나 폰트 누락과 같은 일반적인 함정 처리 팁. +- 지금 바로 컴파일하고 실행할 수 있는 전체 C# 프로그램. + +**전제 조건**: .NET 6 SDK(또는 최신 .NET 버전), 유효한 Aspose.OCR NuGet 패키지, 그리고 처리하려는 이미지 파일(`input.jpg`). NuGet 사용이 처음이라면 패키지 관리자 콘솔을 열고 `Install-Package Aspose.OCR` 명령을 실행하면 됩니다. + +준비되셨나요? 바로 시작합니다. + +## 1단계 – 이미지 OCR 및 소스 로드 + +먼저 OCR 엔진 인스턴스와 소스 이미지를 준비해야 합니다. Aspose OCR은 이를 간단히 할 수 있게 해줍니다: `OcrEngine`을 생성하고, 디스크에서 로드한 `OcrImage`를 전달합니다. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **왜 중요한가** – 엔진을 한 번만 초기화하면 메모리 사용량을 낮출 수 있고, 이미지를 미리 로드하면 무거운 OCR 작업을 시작하기 전에 파일 경로를 확인할 수 있습니다. + +## 2단계 – OCR 실행 및 이미지에서 텍스트 추출 + +이미지가 메모리에 로드되었으니, 이제 엔진에 문자 인식을 요청합니다. `Recognize` 메서드는 평문 텍스트, 신뢰도 점수, 레이아웃 정보 등을 포함한 `OcrResult` 객체를 반환합니다. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **프로 팁** – 텍스트만 필요하고 ePub이 필요 없으면 여기서 멈출 수 있습니다. `ocrResult.Text` 속성은 다른 시스템에 바로 전달할 수 있는 깨끗한 문자열입니다. + +## 3단계 – 결과를 ePub 책으로 저장 (JPG를 ePub으로 변환) + +Aspose OCR은 OCR 결과를 여러 형식으로 직렬화할 수 있으며, 그 중 ePub도 포함됩니다. 이 단계에서는 **JPG를 ePub으로 변환**을 한 줄 코드로 보여줍니다. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +프로그램을 실행하면 콘솔에 추출된 텍스트가 출력되고, 소스 이미지 옆에 `book_page.epub` 파일이 생성됩니다. Calibre, Apple Books 등 任意의 ePub 리더에서 열어보면 OCR 텍스트가 단일 페이지 책 형태로 깔끔하게 포맷된 것을 확인할 수 있습니다. + +### 예상 출력 + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +ePub이 정상적으로 열리면 축하합니다—JPEG를 휴대용 ePub으로 변환하는 **c# OCR 예제**를 완전히 구현한 것입니다. + +## 4단계 – 이미지 → ePub 변환 시 흔히 발생하는 문제 + +견고한 라이브러리를 사용하더라도 몇 가지 장애물을 마주할 수 있습니다. 빠른 FAQ를 확인해 보세요. + +| 문제 | 발생 원인 | 해결 방법 | +|------|----------|-----------| +| **지원되지 않는 이미지 형식** | Aspose OCR은 래스터 형식(JPG, PNG, BMP)만 기대합니다. | `System.Drawing.Image` 등을 사용해 이미지를 JPG 또는 PNG로 먼저 변환합니다. | +| **빈 출력** | 이미지 품질이 낮거나 압축이 과도합니다. | DPI를 높이거나 더 선명한 스캔을 사용하고, `ocrEngine.Preprocess` 로 이미지 전처리를 적용합니다. | +| **ePub에 폰트 누락** | 기본 ePub 라이터가 시스템 폰트를 사용하고, 해당 폰트가 포함되지 않을 수 있습니다. | `ocrEngine.Config.FontsDirectory` 를 필요한 .ttf 파일이 들어 있는 폴더로 지정합니다. | +| **ePub 파일 크기 과다** | 고해상도 이미지가 별도 페이지로 삽입됩니다. | `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` 와 같이 이미지 압축 옵션을 사용합니다. | + +초기에 이러한 문제를 해결하면 나중에 버그를 추적하는 시간을 크게 절약할 수 있습니다. + +## 5단계 – 예제 확장하기 (기본을 넘어) + +이제 **이미지를 ePub으로 변환** 파이프라인이 작동하니, 다음과 같은 확장 아이디어를 시도해 볼 수 있습니다. + +1. **배치 처리** – 폴더에 있는 여러 JPG를 순회하면서 이미지당 하나의 ePub을 생성하거나, 다중 챕터 ePub으로 병합합니다. +2. **언어 선택** – `ocrEngine.Language = Language.English;` 등 지원되는 언어를 지정해 정확도를 높입니다. +3. **레이아웃 보존** – 먼저 `OcrSaveFormat.Html` 로 저장한 뒤, HTML을 ePub에 래핑해 풍부한 서식을 구현합니다. +4. **클라우드 배포** – 코드를 Azure Function이나 AWS Lambda에 감싸서 OCR‑to‑ePub 서비스를 웹으로 제공합니다. + +이러한 확장은 모두 방금 다룬 **이미지 OCR** 로직을 기반으로 합니다. + +## 전체 실행 코드 (복사‑붙여넣기 즉시 사용) + +아래는 하나의 블록에 모은 전체 프로그램입니다. `YOUR_DIRECTORY` 를 실제 이미지 파일이 있는 경로로 교체하세요. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **주의** – `Aspose.OCR` NuGet 패키지가 설치되어 있어야 하며, 대상 .NET 런타임은 최소 .NET 5 이상이어야 최적 호환성을 보장합니다. + +## 결론 + +우리는 **C#에서 이미지 OCR**을 수행하고, 스캔을 깔끔한 ePub 책으로 변환하는 **JPG를 ePub으로 변환** 워크플로우를 완성했습니다. 위 단계들을 따라 하면 **이미지에서 텍스트 추출**, 일반적인 예외 상황 처리, 그리고 배치 작업이나 클라우드 서비스로 확장하는 방법까지 모두 마스터할 수 있습니다. + +다음 단계가 궁금하다면 ePub 대신 PDF(`OcrSaveFormat.Pdf`) 로 저장하거나 OCR 텍스트를 번역 API에 전달해 보세요. 기본을 익히면 가능성은 무한합니다. + +특정 이미지 형식에 대한 질문이 있거나 다중 페이지 ePub 예제가 필요하면 댓글로 알려 주세요. 도움이 될 수 있도록 답변하겠습니다. 즐거운 코딩 되시고, 사진을 책으로 바꾸는 재미를 만끽하세요! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/korean/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..d4ef2716 --- /dev/null +++ b/ocr/korean/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-01-01 +description: Aspose OCR C#를 사용하여 러시아어 텍스트를 즉시 인식합니다. 한 튜토리얼에서 중국어 텍스트 인식, PDF 페이지 + 수 읽기 및 PDF 페이지 텍스트 변환을 배워보세요. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: ko +og_description: Aspose OCR C#를 사용하여 러시아어 텍스트를 빠르게 인식합니다. 이 튜토리얼에서는 중국어 텍스트 인식, PDF + 페이지 수 읽기 및 PDF 페이지 텍스트 변환 방법도 다룹니다. +og_title: Aspose OCR C#로 러시아어 텍스트 인식 – 완전 가이드 +tags: +- Aspose OCR +- C# +- PDF processing +title: Aspose OCR C#를 사용한 러시아어 텍스트 인식 – 전체 다중 페이지 PDF 가이드 +url: /ko/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR C#를 사용한 러시아어 텍스트 인식 – 완전한 다중 페이지 PDF 튜토리얼 + +다양한 언어가 혼합된 PDF에서 **러시아어 텍스트를 인식**해야 할 때가 있나요? 각 페이지마다 별도의 도구를 꺼내지 않고도 할 수 있는 방법을 궁금해하셨나요? 혼자가 아닙니다. 실제 프로젝트에서는 영어, 러시아어, 심지어 중국어가 서로 다른 페이지에 포함된 하나의 PDF를 받는 경우가 많으며, 여전히 하나의 깔끔한 텍스트 출력이 필요합니다. + +이 가이드에서는 **러시아어 텍스트를 인식**(및 기타 언어)하는 방법을 **Aspose OCR C#**를 사용해 정확히 보여드리며, **pdf 페이지 수 읽기**, **중국어 텍스트 인식**, **pdf 페이지 텍스트 변환**을 편리한 콘솔 출력으로 만드는 방법도 시연합니다. 외부 서비스 없이, 숨겨진 단계 없이—그냥 복사‑붙여넣기만 하면 실행할 수 있는 순수 C# 코드입니다. + +> **얻을 수 있는 것** +> * 다중 페이지 PDF를 처리하는 실행 가능한 C# 콘솔 앱. +> * 페이지별 언어 선택 (러시아어, 중국어, 영어). +> * PDF의 페이지 수를 조회하고 각 페이지 텍스트를 추출하는 기술. +> * 프로젝트에 적용할 수 있는 팁, 함정, 확장 방법. + +## 사전 요구 사항 + +- .NET 6.0 이상(코드는 .NET Framework 4.7+에서도 작동합니다). +- **Aspose.OCR for .NET** NuGet 패키지 설치(`dotnet add package Aspose.OCR`). +- 혼합 언어가 포함된 PDF 파일; 데모에서는 `mixed_lang.pdf`를 사용합니다. +- C# 콘솔 애플리케이션에 대한 기본적인 이해. + +위 항목 중 누락된 것이 있다면, NuGet에서 최신 Aspose OCR을 받아 프로젝트 폴더에서 접근 가능한 위치에 PDF를 배치하세요. + +## 1단계 – Aspose OCR 엔진 초기화 + +가장 먼저 필요한 것은 `OcrEngine` 인스턴스입니다. 이 객체는 모든 설정(예: 언어)을 보관하고 무거운 작업을 수행합니다. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **왜 중요한가:** +> 엔진을 재사용하면 각 페이지마다 새 인스턴스를 만들면서 메모리를 낭비하지 않습니다. 재사용을 통해 페이지마다 언어를 즉시 변경할 수 있어, 한 페이지에서는 **러시아어 텍스트 인식**, 다른 페이지에서는 **중국어 텍스트 인식**이 필수적입니다. + +## 2단계 – PDF 로드 및 페이지 수 확인 + +인식을 시작하기 전에 PDF 객체와 페이지 수가 필요합니다. Aspose OCR은 각 페이지를 `OcrImage`로 취급합니다. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **팁:** PDF가 큰 경우 먼저 페이지 수를 읽고 전체 페이지를 처리할지 일부만 처리할지 결정할 수 있습니다. + +## 3단계 – 각 페이지를 원하는 언어에 매핑 + +Aspose OCR은 많은 언어를 지원하지만, 각 페이지에 사용할 언어를 지정해야 합니다. 아래에서는 키가 0부터 시작하는 페이지 인덱스인 `Dictionary`를 생성합니다. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **왜 중요한가:** +> 이 매핑이 없으면 OCR 엔진은 모든 페이지에 단일 기본 언어를 적용하려고 하여 러시아어나 중국어 텍스트가 깨져 나옵니다. 이 단계가 **러시아어 텍스트 인식** 및 **중국어 텍스트 인식**을 올바르게 가능하게 합니다. + +## 4단계 – 모든 페이지를 순회하며 언어 설정 및 텍스트 인식 + +이제 각 페이지를 순회하면서 매핑에 따라 언어를 전환하고 `Recognize`를 호출합니다. 결과는 `OcrResult`에 저장되며, 여기서 순수 텍스트를 추출합니다. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### 예상 콘솔 출력 + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **흐름 설명:** +> * 루프는 앞서 출력한 **pdf 페이지 수 읽기**를 준수합니다. +> * 각 반복에서 `ocrEngine.Settings.Language`를 교체함으로써 페이지 2에서는 정확한 **러시아어 텍스트 인식**, 페이지 3에서는 **중국어 텍스트 인식**을 보장합니다. +> * `Console.WriteLine` 문은 **pdf 페이지 텍스트 변환**을 인간이 읽을 수 있는 문자열로 효과적으로 수행합니다. + +## 5단계 – 실행, 검증 및 조정 + +1. 프로젝트 빌드(`dotnet build`). +2. 실행(`dotnet run`). +3. 콘솔 출력과 원본 PDF를 비교합니다. + +문자가 누락된 경우 다음을 고려하세요: + +- `ocrEngine.Settings.DetectTextOrientation = true;` 설정으로 **OCR 정확도 향상**. +- 내장된 러시아어나 중국어 사전이 오래된 경우 **사용자 정의 언어 팩 제공**. +- PDF 로드 시 DPI 조정(`OcrImage.FromFile(path, 300)`)으로 저해상도 스캔에서 인식률 향상. + +## 보너스: 엣지 케이스 처리 + +### 페이지 언어가 매핑에 없으면 어떻게 할까? + +코드가 이미 영어로 대체하지만, 경고를 로그로 남기는 대체 로직을 추가할 수도 있습니다. + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### 세 가지 이상의 언어가 포함된 PDF를 처리할 수 있나요? + +물론 가능합니다. `languageMap`에 추가 인덱스와 지원되는 `OcrLanguage` 값(예: `OcrLanguage.French`)을 추가하면 됩니다. 루프는 페이지 수에 관계없이 처리합니다. + +### 콘솔 대신 파일로 결과를 내보내려면? + +`Console.WriteLine` 호출을 `File.AppendAllText("output.txt", …)` 로 교체하거나, 루프 후 한 번에 기록하는 `StringBuilder`를 사용할 수 있습니다. + +## 이미지 설명 + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*위 이미지는 혼합 언어 PDF에서 **러시아어 텍스트 인식**이 수행될 때의 콘솔 출력을 보여줍니다.* + +## 결론 + +우리는 **Aspose OCR C#**를 사용하여 다중 페이지 PDF에서 **러시아어 텍스트 인식**(및 **중국어 텍스트 인식**)을 수행하는 완전한 엔드‑투‑엔드 예제를 단계별로 살펴보았습니다. PDF 페이지 수를 읽고, 각 페이지를 적절한 언어에 매핑한 뒤 문서를 순회함으로써 **pdf 페이지 텍스트 변환**을 수행해 저장, 인덱싱 또는 추가 분석에 사용할 수 있는 순수 문자열을 얻을 수 있습니다. + +In short: + +- **Initialize** 단일 `OcrEngine`을 초기화합니다. +- **Load** PDF를 로드하고 **pdf 페이지 수 읽기**를 수행합니다. +- **Map** 페이지를 언어에 매핑합니다(러시아어, 중국어 등). +- **Iterate**, `ocrEngine.Settings.Language`를 설정하고 각 페이지를 **recognize**합니다. +- **Output** 또는 추출된 텍스트를 저장합니다. + +이 패턴을 더 큰 문서에 적용하거나 오류 처리를 추가하고, 결과를 검색 인덱스에 연결해도 좋습니다. 핵심 아이디어인 페이지별 언어 선택은 변함없으며, 혼합 언어 PDF에서 신뢰할 수 있는 **러시아어 텍스트 인식**을 가능하게 합니다. + +PDF 대신 이미지를 스캔하는 등 다른 상황이 있나요? 동일한 엔진을 사용할 수 있으며, `OcrImage.FromFile`을 `OcrImage.FromStream`이나 `FromBitmap`으로 교체하면 됩니다. 즐거운 코딩 되세요, 그리고 OCR이 언제나 정확하기를 바랍니다! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/ocr-configuration/_index.md b/ocr/polish/net/ocr-configuration/_index.md index 2851cb0c..974106dd 100644 --- a/ocr/polish/net/ocr-configuration/_index.md +++ b/ocr/polish/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ Odblokuj moc rozpoznawania obrazów OCR w .NET dzięki Aspose.OCR. Wyodrębnij t Odblokuj potężne możliwości OCR dzięki Aspose.OCR dla .NET. Płynnie wyodrębniaj tekst z obrazów. ### [OCROoperacja z listą w rozpoznawaniu obrazu OCR](./ocr-operation-with-list/) Odblokuj potencjał Aspose.OCR dla .NET. Bez wysiłku rozpoznaj obrazy OCR za pomocą list. Zwiększ produktywność i ekstrakcję danych w swoich aplikacjach. +### [Jak zastosować licencję w Aspose OCR – przewodnik krok po kroku w C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Dowiedz się, jak w prosty sposób zastosować licencję Aspose OCR w aplikacji C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/polish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..b19a1005 --- /dev/null +++ b/ocr/polish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: Jak zastosować licencję Aspose OCR w C#. Dowiedz się, jak odczytać plik, + ustawić licencję Aspose, używać MemoryStream i efektywnie ładować licencję. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: pl +og_description: Jak zastosować licencję Aspose OCR w C#. Postępuj zgodnie z tym przewodnikiem, + aby odczytać plik licencji, ustawić licencję Aspose, użyć MemoryStream i zweryfikować + konfigurację. +og_title: Jak zastosować licencję w Aspose OCR – Kompletny samouczek C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Jak zastosować licencję w Aspose OCR – Przewodnik krok po kroku w C# +url: /pl/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zastosować licencję w Aspose OCR – Kompletny przewodnik C# + +Zastanawiałeś się kiedyś **jak zastosować licencję** dla Aspose OCR, nie goniąc niejasnej dokumentacji? Nie jesteś sam. Większość programistów napotyka ten sam problem: potrafią odczytać plik, ale nie wiedzą, jak prawidłowo przekazać go do biblioteki. W tym samouczku przejdziemy przez każdy szczegół — od wczytania pliku `.lic` z dysku po wywołanie `SetLicense` z `MemoryStream`. Po zakończeniu będziesz mieć działające rozwiązanie, które możesz wstawić do dowolnego projektu .NET. + +Omówimy także **jak bezpiecznie odczytać plik**, właściwy sposób **ustawienia licencji Aspose** oraz dlaczego użycie **MemoryStream** jest najczystszym podejściem. Jeśli jesteś ciekawy **jak załadować licencję** w różnych środowiskach, te wskazówki również są zawarte. Nie są potrzebne żadne zewnętrzne odwołania — tylko czysty, gotowy do kopiowania kod. + +## Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa zarówno z .NET Core, jak i .NET Framework) +- Zainstalowany pakiet NuGet Aspose.OCR (`Install-Package Aspose.OCR`) +- Poprawny plik `Aspose.OCR.lic` umieszczony w miejscu dostępnym dla aplikacji +- Podstawowa znajomość C# i Visual Studio (lub dowolnego preferowanego IDE) + +> **Wskazówka:** Trzymaj plik licencji poza folderem kontroli wersji, aby uniknąć przypadkowych commitów. + +## Krok 1: Jak odczytać plik – wczytaj bajty licencji + +Pierwszą rzeczą, której potrzebujemy, jest surowa tablica bajtów pliku licencji. Użycie `File.ReadAllBytes` jest proste i wydajne, a w razie nieprawidłowej ścieżki automatycznie rzuca czytelny wyjątek. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Dlaczego to ważne:** Odczytanie pliku bezpośrednio do pamięci zapobiega wyciekom uchwytów plików i daje nam czystą tablicę bajtów do dalszej pracy. Umożliwia to także ponowne użycie metody w aplikacjach konsolowych, usługach webowych czy Azure Functions. + +## Krok 2: Jak używać MemoryStream – przygotuj strumień licencji + +Przeciążenie `License.SetLicense` biblioteki Aspose oczekuje `Stream`. Otoczenie tablicy bajtów w `MemoryStream` jest idiomatycznym sposobem spełnienia tego wymogu bez ponownego odwoływania się do systemu plików. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Kluczowa uwaga:** `MemoryStream` jest lekki i szybko się zwalnia. Pozwala także ponownie użyć tej samej tablicy bajtów dla wielu bibliotek, jeśli kiedykolwiek będziesz musiał zastosować licencję na więcej niż jeden produkt Aspose. + +## Krok 3: Ustaw licencję Aspose – rdzeń „jak zastosować licencję” + +Teraz, gdy mamy `MemoryStream`, zastosowanie licencji to jednowierszowy kod. Klasa `License` znajduje się w przestrzeni nazw `Aspose.OCR`, więc upewnij się, że dodałeś odpowiednią dyrektywę `using`. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Jeśli licencja jest nieprawidłowa lub wygasła, `SetLicense` cicho się nie powiedzie, a biblioteka będzie działać w trybie próbnym. Aby mieć pewność, możesz sprawdzić funkcję dostępną tylko w wersji licencjonowanej (np. ustawienia dokładności OCR) lub po prostu polegać na komunikacie potwierdzającym, który wydrukujemy później. + +## Krok 4: Jak załadować licencję – połączenie wszystkiego razem + +Poniżej znajduje się kompletny, uruchamialny program konsolowy, który demonstruje **jak załadować licencję** z dysku, użyć `MemoryStream` i zweryfikować, że licencja została pomyślnie zastosowana. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Oczekiwany wynik + +``` +License applied successfully. You can now perform OCR operations. +``` + +Jeśli zobaczysz komunikat, biblioteka jest w pełni licencjonowana i gotowa do produkcyjnych zadań OCR. + +## Częste pułapki i jak ich unikać + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **FileNotFoundException** przy odczycie licencji | Ścieżka jest nieprawidłowa lub plik nie jest wdrożony z aplikacją | Użyj ścieżki bezwzględnej lub osadź licencję jako zasób (zobacz „alternatywne ładowanie” poniżej) | +| **Licencja nie zastosowana, ale brak błędu** | `SetLicense` cicho przechodzi w tryb próbny, jeśli strumień jest pusty lub uszkodzony | Zweryfikuj `licenseData.Length > 0` przed utworzeniem `MemoryStream` | +| **MemoryStream nie został zwolniony** | Zapomnienie o `using` powoduje pozostawienie niezarządzanych zasobów | Zawsze otaczaj strumień blokiem `using`, jak pokazano | + +### Alternatywa: Osadzanie licencji jako zasób osadzony + +Jeśli wolisz nie dostarczać osobnego pliku `.lic`, dodaj go do projektu, ustaw **Build Action** na **Embedded Resource** i odczytaj w następujący sposób: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Następnie wywołaj `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` i kontynuuj z tym samym podejściem `MemoryStream`. + +## Zakończenie + +Omówiliśmy **jak zastosować licencję** dla Aspose OCR od początku do końca: odczyt pliku, tworzenie `MemoryStream`, wywołanie `SetLicense` i potwierdzenie aktywacji. Postępując zgodnie z tymi krokami eliminujesz zgadywanie, unikasz typowych błędów i zapewniasz, że silnik OCR działa w pełnym trybie funkcjonalnym. + +Następnie możesz zbadać **jak odczytać plik** asynchronicznie dla usług o wysokiej przepustowości lub zagłębić się w zaawansowane ustawienia OCR, teraz gdy licencja jest poprawnie załadowana. W każdym przypadku wzorzec pozostaje ten sam — odczytaj, strumień, ustaw, zweryfikuj. + +Masz pytania dotyczące przypadków brzegowych, takich jak ładowanie licencji w środowisku ASP.NET Core lub obsługa wielu licencji produktów Aspose? zostaw komentarz poniżej i powodzenia w kodowaniu! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/ocr-optimization/_index.md b/ocr/polish/net/ocr-optimization/_index.md index dbeaa39c..8b90066e 100644 --- a/ocr/polish/net/ocr-optimization/_index.md +++ b/ocr/polish/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ Przeglądaj Aspose.OCR dla .NET. Zwiększ dokładność OCR dzięki filtrom prze Zwiększ dokładność OCR dzięki Aspose.OCR dla .NET. Poprawiaj pisownię, dostosowuj słowniki i bezproblemowo rozpoznawaj tekst bez błędów. ### [Zapisz wynik wielostronicowy jako dokument w rozpoznawaniu obrazu OCR](./save-multipage-result-as-document/) Odblokuj potencjał Aspose.OCR dla .NET. Z łatwością zapisuj wielostronicowe wyniki OCR jako dokumenty, korzystając z tego obszernego przewodnika krok po kroku. +### [Jak wykonać wsadowe OCR w C# z silnikiem Aspose OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Poznaj technikę przetwarzania wielu obrazów jednocześnie przy użyciu Aspose OCR w C#. +### [Przetwarzanie wstępne obrazu OCR w C# – zwiększ dokładność z Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Zoptymalizuj obrazy przed OCR, aby uzyskać wyższą precyzję przy użyciu Aspose OCR w C#. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/polish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..3f8a736f --- /dev/null +++ b/ocr/polish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-01-01 +description: Jak wykonywać OCR wsadowo przy użyciu silnika Aspose OCR w C#. Dowiedz + się, jak rozpoznawać tekst z obrazów i wyodrębniać tekst z plików TIFF przy użyciu + przyspieszenia GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: pl +og_description: Jak wykonywać OCR wsadowo w C# przy użyciu silnika Aspose OCR. Ten + przewodnik pokazuje, jak rozpoznawać tekst z obrazów i efektywnie wyodrębniać tekst + z plików TIFF. +og_title: Jak wykonać wsadowe OCR w C# – Kompletny przewodnik Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Jak przeprowadzić wsadowe OCR w C# przy użyciu silnika Aspose OCR +url: /pl/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wykonywać OCR wsadowo w C# przy użyciu silnika Aspose OCR Engine + +Zastanawiałeś się kiedyś **jak wykonywać OCR wsadowo**, gdy masz dziesiątki zeskanowanych dokumentów leżących w folderze? Nie jesteś sam — wielu programistów napotyka ten problem, przechodząc od rozpoznawania pojedynczych obrazów do przetwarzania całej kolekcji. Dobra wiadomość jest taka, że Aspose OCR sprawia, że to bułka z masłem, niezależnie od tego, czy działasz na CPU, czy korzystasz z przyspieszenia GPU. + +W tym samouczku przeprowadzimy Cię przez kompletny, gotowy do uruchomienia przykład, który **rozpoznaje tekst z obrazów** i nawet **wyodrębnia tekst z plików TIFF** hurtowo. Bez niejasnych skrótów typu „zobacz dokumentację” — po prostu samodzielne rozwiązanie, które możesz skopiować‑wkleić i uruchomić już dziś. + +## Wymagania wstępne + +* .NET 6.0 lub nowszy zainstalowany (kod jest skierowany na .NET 6, ale .NET 5 również działa). +* Pakiet NuGet Aspose.OCR dla .NET (dostępne wersje CPU i GPU; zainstaluj tę, która pasuje do Twojego sprzętu). +* Folder z kilkoma przykładowymi plikami TIFF lub PNG, które chcesz przetworzyć. +* Visual Studio 2022 lub dowolne IDE, którego używasz. + +> **Porada:** Jeśli planujesz używać wersji GPU, upewnij się, że sterownik graficzny jest aktualny i że zainstalowano CUDA 11+. Silnik automatycznie przełączy się na CPU, jeśli nie znajdzie kompatybilnego GPU. + +## Krok 1 – Konfiguracja projektu i instalacja Aspose.OCR + +### H2: Utwórz nową aplikację konsolową i dodaj Aspose.OCR + +Otwórz terminal (lub konsolę Package Manager w Visual Studio) i uruchom: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Jeśli masz licencję z obsługą GPU, zamiast tego dodaj pakiet GPU: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Gotowe — Twój projekt teraz odwołuje się do biblioteki OCR, której użyjemy do **wsadowego OCR**. + +## Krok 2 – Inicjalizacja silnika OCR (CPU lub GPU) + +### H2: Jak wykonywać OCR wsadowo – Inicjalizacja silnika + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Dlaczego to ważne:** Przełączając `UseGpu`, pozwalasz Aspose wybrać najszybszą ścieżkę. Jeśli GPU nie jest dostępne, silnik cicho przełącza się z powrotem na CPU, więc Twoje zadanie wsadowe nigdy nie zawiedzie z powodu brakującego sprzętu. + +## Krok 3 – Zbierz pliki, które chcesz przetworzyć + +### H2: Rozpoznawanie tekstu z obrazów – Tworzenie listy plików + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Uwaga o przypadkach brzegowych:** Jeśli masz mieszankę formatów, zmień wzorzec wyszukiwania na `"*.*"` i filtruj po rozszerzeniu wewnątrz pętli. To utrzymuje elastyczność wsadu. + +## Krok 4 – Przetwarzaj każdy obraz i pokaż podgląd + +### H2: Wyodrębnianie tekstu z TIFF – Pętla po plikach + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Co zobaczysz:** Dla każdego TIFF, konsola wypisuje coś w rodzaju: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Ten podgląd potwierdza, że wsad zakończył się sukcesem, bez konieczności ręcznego otwierania każdego pliku. + +## Krok 5 – Zapisz wyniki (opcjonalnie, ale przydatne) + +### H3: Zachowaj wynik OCR w plikach tekstowych + +Jeśli potrzebujesz pełnego tekstu do dalszego przetwarzania, dodaj to wewnątrz pętli `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Teraz każdy TIFF otrzymuje towarzyszący plik `.txt` zawierający pełny wynik OCR — idealny do indeksowania, wyszukiwania lub podawania do modelu językowego. + +## Krok 6 – Uruchom demo i zweryfikuj + +1. Zbuduj projekt: `dotnet build`. +2. Uruchom: `dotnet run --project GpuBatchDemo.csproj`. + +Powinieneś zobaczyć linie podglądu wypisane w konsoli oraz (jeśli dodałeś opcjonalny krok) serię plików `.txt` obok Twoich obrazów źródłowych. + +### H3: Typowe pułapki i jak je naprawić + +| Objaw | Prawdopodobna przyczyna | Rozwiązanie | +|---------|--------------|-----| +| **Pusty `ocrResult.Text`** | Obraz zbyt ciemny lub o niskiej rozdzielczości DPI | Wstępnie przetwórz obrazy (zwiększ kontrast, skaluj) lub ustaw `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Nieaktualny sterownik | Zaktualizuj sterownik GPU lub ustaw `UseGpu = false`, aby wymusić CPU. | +| **Exception “File not found”** | Nieprawidłowy separator ścieżki w Linux/macOS | Użyj `Path.Combine` lub ukośników (`/`). | + +## Krok 7 – Skalowanie (poza kilkoma plikami) + +When you move from a handful of TIFFs to thousands, consider: + +* **Parallel processing:** Owiń `foreach` w `Parallel.ForEach` (upewnij się, że instancja silnika jest bezpieczna wątkowo; w przeciwnym razie utwórz jedną na wątek). +* **Chunked I/O:** Czytaj obrazy w partiach, aby nie wyczerpać pamięci RAM. +* **Logging:** Zapisuj postęp do pliku logu; pomaga to wznowić po awarii. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Pamiętaj:** Pamięć GPU jest współdzielona, więc uruchamianie zbyt wielu równoległych zadań GPU może faktycznie spowolnić działanie. Przetestuj najpierw kilka wątków. + +## Pełny działający przykład (gotowy do kopiowania‑wklejania) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Uruchomienie tego programu **rozpozna tekst z obrazów**, **wyodrębni tekst z TIFF** i pokaże **jak wykonywać OCR wsadowo** efektywnie. + +## Zakończenie + +Masz teraz solidny, kompleksowy przykład **jak wykonywać OCR wsadowo** w C# przy użyciu silnika OCR od Aspose. Samouczek obejmował wszystko, od konfiguracji projektu, przełączania przyspieszenia GPU, budowania listy plików, przetwarzania każdego obrazu, po zachowywanie wyników. Niezależnie od tego, czy wyodrębniasz tekst z plików TIFF, czy z innego formatu obrazu, ten sam schemat ma zastosowanie — wystarczy zamienić rozszerzenia plików. + +Gotowy na kolejny krok? Spróbuj zintegrować wynik OCR z indeksem wyszukiwania, podać tekst do dużego modelu językowego lub poeksperymentować z przetwarzaniem równoległym, aby zaoszczędzić minuty przy masowych wsadach. Nie ma granic, a Ty masz już fundament, na którym możesz budować. + +Masz pytania lub chcesz podzielić się własnymi trikami dotyczącymi OCR wsadowego? zostaw komentarz poniżej — szczęśliwego kodowania! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/polish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..a16e78a6 --- /dev/null +++ b/ocr/polish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: przetwarzaj wstępnie obraz OCR, aby zwiększyć dokładność. Dowiedz się, + jak rozpoznawać tekst na obrazie, poprawić dokładność OCR, wczytać obraz OCR i wyświetlić + tekst OCR przy użyciu Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: pl +og_description: przetwarzaj wstępnie obraz OCR, aby poprawić dokładność. Ten przewodnik + pokazuje, jak rozpoznawać tekst na obrazie, ładować obraz OCR, stosować filtry i + wyświetlać tekst OCR. +og_title: przetwarzanie obrazu OCR w C# – zwiększ dokładność dzięki Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: przetwarzanie wstępne obrazu OCR w C# – zwiększ dokładność z Aspose OCR +url: /pl/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +Zastanawiałeś się kiedyś, jak **preprocess image ocr**, aby silnik naprawdę odczytał to, co znajduje się na stronie? Nie jesteś sam — większość programistów napotyka problem, gdy zaszumione, pochyłe skany odmawiają współpracy. Dobrą wiadomością jest to, że kilka sprytnych kroków wstępnego przetwarzania może zamienić obraz w strefie katastrofy w czysty, czytelny tekst. + +W tym samouczku przeprowadzimy Cię przez kompletny, gotowy do uruchomienia przykład, który **recognize text image** pliki, **improve OCR accuracy**, a na koniec **display OCR text** w konsoli. Po zakończeniu będziesz wiedział, jak **load image OCR** zasoby, podłączać filtry takie jak korekcja pochylenia i odszumianie oraz uzyskać wiarygodne wyniki — wszystko z Aspose.OCR dla .NET. + +## What You’ll Learn + +- Jak utworzyć instancję `OcrEngine` i skonfigurować filtry wstępnego przetwarzania. +- Dlaczego korekcja pochylenia i filtry odszumiania mają znaczenie dla **improve OCR accuracy**. +- Dokładny kod do **load image ocr** plików i uruchomienia rozpoznawania. +- Jak **display OCR text** w przyjazny dla użytkownika sposób. +- Porady, pułapki i opcjonalne udoskonalenia, które możesz zastosować w projektach produkcyjnych. + +### Prerequisites + +- .NET 6+ (lub .NET Framework 4.7+) zainstalowany na Twoim komputerze. +- Licencja na Aspose.OCR (bezpłatna wersja próbna wystarczy do tego demo). +- Podstawowa znajomość C# — nie są wymagane zaawansowane triki. + +Jeśli któryś z tych punktów jest Ci nieznany, zatrzymaj się i zainstaluj brakujące elementy; reszta przewodnika zakłada, że są już dostępne. + +--- + +## preprocess image ocr – Setting Up Filters + +Pierwszą rzeczą, którą musisz zrozumieć, jest **why preprocessing matters**. Silniki OCR świetnie radzą sobie z wyraźnym, prostym tekstem, ale rzeczywiste skany często cierpią na rotację, rozmycie lub szumy tła. Dostarczając silnikowi wyczyszczony obraz, znacząco zwiększasz szanse na poprawną transkrypcję. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**What’s happening here?** +- **Step 1** tworzy silnik — serce biblioteki Aspose OCR. +- **Step 2** podłącza dwa filtry. `SkewCorrectionFilter` obraca obraz z powrotem do poziomu, natomiast `DenoiseFilter` wygładza szumy na poziomie pikseli. +- **Step 3** jest opcjonalny, ale przydatny; możesz ograniczyć maksymalny kąt, jaki silnik będzie próbował skorygować, zapobiegając nadmiernemu obróceniu już prostych stron. +- **Step 4** to miejsce, w którym **load image OCR** dane. Zamień `YOUR_DIRECTORY/skewed_noisy.jpg` na ścieżkę do swojego pliku testowego. +- **Step 5** faktycznie uruchamia OCR i tworzy `OcrResult`. +- **Step 6** **display OCR text** w konsoli, dając Ci natychmiastową informację zwrotną. + +> **Pro tip:** Jeśli zauważysz, że wyjście nadal zawiera zniekształcone znaki, spróbuj zwiększyć `MaxAngle` lub dodać `ContrastFilter` przed krokiem odszumiania. + +--- + +## recognize text image – Loading Your Files Correctly + +Częstą przeszkodą jest **load image ocr** w niewłaściwym formacie lub DPI. Aspose.OCR obsługuje PNG, JPEG, TIFF, BMP, a nawet obrazy oparte na PDF. Jednak silnik działa najlepiej przy 300 DPI lub wyższym dla dokumentów drukowanych. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Jeśli masz do czynienia z wielostronicowym TIFF, możesz przejść przez każdą klatkę w pętli: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Wyższa rozdzielczość zachowuje kształt każdej litery, dostarczając rozpoznawaczowi więcej punktów danych. Obrazy o niższym DPI często prowadzą do połączonych lub uszkodzonych glifów, które silnik błędnie interpretuje. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +Domyślne ustawienia filtrów są dobrym punktem wyjścia, ale możesz wycisnąć z nich dodatkową wydajność. + +| Filter | Key Property | Typical Value | When to Adjust | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Obrazy mocno pochyłe (do 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Bardzo zaszumione skany; zwiększ do `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Zrzuty ekranu o niskim kontraście. | + +Przykład dostosowania obu: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Jeśli Twój obraz zawiera zarówno odręczne notatki, jak i drukowany tekst, możesz dodać `BinarizationFilter` przed odszumianiem, aby oddzielić pierwszoplanę od tła. + +--- + +## display OCR text – Formatting the Output + +Czysty tekst w konsoli sprawdza się w demonstracjach, ale kod produkcyjny często wymaga wyczyszczonych łańcuchów, podziałów wierszy lub nawet JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Jeśli potrzebujesz JSON dla odpowiedzi API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Teraz **display OCR text** w formacie, który mogą konsumować usługi downstream. + +--- + +## Full Working Example – Put It All Together + +Poniżej znajduje się finalny, samodzielny program, który możesz skopiować i wkleić do nowego projektu konsolowego. Zawiera opcjonalne filtry, wczytywanie obrazu wysokiej rozdzielczości i czyste wyjście. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Expected console output (sample):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Jeśli uruchomisz program z innym plikiem, tekst i poziom pewności zmienią się odpowiednio. + +--- + +## Common Questions & Answers + +**Q: What if my image is already straight?** +A: Filtr korekcji pochylenia wykryje kąt bliski zeru i efektywnie stanie się operacją no‑op, więc możesz go bezpiecznie pozostawić włączonym. + +**Q: Does Aspose.OCR support languages other than English?** +A: Tak — po prostu ustaw `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (lub dowolny obsługiwany język) przed wywołaniem `Recognize`. + +**Q: How do I handle multi‑page PDFs?** +A: Przekonwertuj każdą stronę na obraz (Aspose.PDF potrafi to zrobić) i podawaj je pojedynczo do tej samej instancji `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/text-recognition/_index.md b/ocr/polish/net/text-recognition/_index.md index 40c85d63..9a8bce60 100644 --- a/ocr/polish/net/text-recognition/_index.md +++ b/ocr/polish/net/text-recognition/_index.md @@ -23,7 +23,7 @@ W tym samouczku poprowadzimy Cię przez wykorzystanie możliwości Aspose.OCR dl ## Uzyskaj wynik rozpoznawania w trybie rozpoznawania obrazu OCR -Poznaj możliwości Aspose.OCR dla .NET i zmień sposób obsługi rozpoznawania tekstu w obrazach. Odkryj zawiłości uzyskiwania wyników rozpoznawania dzięki naszemu obszernemu przewodnikowi. Niezależnie od tego, czy jesteś doświadczonym programistą, czy dopiero zaczynasz, ten samouczek umożliwi Ci bezproblemową integrację OCR z Twoimi projektami. +Poznaj możliwości Aspose.OCR dla .NET i zmień sposób obsługi rozpoznawania tekstu w obrazach. Odkryj zawiłości uzyskiwania wyników rozpoznania dzięki naszemu obszernemu przewodnikowi. Niezależnie od tego, czy jesteś doświadczonym programistą, czy dopiero zaczynasz, ten samouczek umożliwi Ci bezproblemową integrację OCR z Twoimi projektami. ## Uzyskaj wynik jako JSON w rozpoznawaniu obrazu OCR @@ -55,9 +55,18 @@ Ulepsz swoje aplikacje .NET za pomocą Aspose.OCR, aby efektywnie rozpoznawać t Odblokuj potencjał OCR w .NET dzięki Aspose.OCR. Wyodrębnij tekst z plików PDF bez wysiłku. Pobierz teraz, aby zapewnić bezproblemową integrację. ### [Rozpoznaj tabelę w rozpoznawaniu obrazu OCR](./recognize-table/) Odblokuj potencjał Aspose.OCR dla .NET dzięki naszemu obszernemu przewodnikowi na temat rozpoznawania tabel w rozpoznawaniu obrazów OCR. +### [C# OCR samouczek: wyodrębnij tekst z obrazu za pomocą Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Dowiedz się, jak używać Aspose OCR w C# do wyodrębniania tekstu z obrazów w kilku prostych krokach. +### [C# OCR samouczek – wyodrębnij tekst z obrazów i wyeksportuj do JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Naucz się wyodrębniać tekst z obrazów i zapisywać wyniki w formacie JSON przy użyciu Aspose OCR w C#. +### [Jak wykonać OCR obrazu w C# – konwersja JPG do ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Naucz się przetwarzać obrazy JPG na format ePub przy użyciu Aspose OCR w C#. +### [Rozpoznaj rosyjski tekst za pomocą Aspose OCR C# – Kompletny przewodnik po wielostronicowym PDF](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Dowiedz się, jak rozpoznać rosyjski tekst w wielostronicowych plikach PDF przy użyciu Aspose OCR w C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..be73342a --- /dev/null +++ b/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-01-01 +description: samouczek c# OCR pokazujący, jak wyodrębnić tekst z obrazu, wykonać OCR + na plikach JPG przy użyciu Aspose OCR. Dowiedz się, jak załadować obraz do OCR i + uzyskać dokładne wyniki. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: pl +og_description: samouczek OCR w C#, który krok po kroku pokazuje, jak wyodrębnić tekst + z obrazu, przeprowadzić OCR na pliku JPG oraz wczytywać obrazy do OCR przy użyciu + Aspose. +og_title: c# OCR tutorial – wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# OCR tutorial: Wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR' +url: /pl/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Extract Text from Image with Aspose OCR + +Szukasz **c# ocr tutorial**, który naprawdę działa? W tym przewodniku pokażemy, jak **wyodrębnić tekst z obrazu** i **przeprowadzić OCR na plikach JPG** przy użyciu biblioteki Aspose.OCR. Niezależnie od tego, czy tworzysz skaner paragonów, archiwizator dokumentów, czy po prostu interesuje Cię odczytywanie tekstu ze zdjęć, poniższe kroki przeprowadzą Cię od zera do działającego kodu w kilka minut. + +Omówimy wszystko, co potrzebne: instalację pakietu, wczytanie obrazu do OCR, konfigurację zasobów językowych, uruchomienie silnika rozpoznawania oraz obsługę najczęstszych pułapek. Na koniec będziesz mieć samodzielną aplikację konsolową, która wypisuje rozpoznany tekst w konsoli — bez potrzeby korzystania z zewnętrznych usług. + +## What You’ll Need + +- .NET 6.0 lub nowszy (kod działa również z .NET Framework 4.6+) +- Visual Studio 2022, VS Code lub dowolny edytor C#, którego używasz +- Plik obrazu zawierający rosyjski (cyrylica) tekst, np. `receipt_ru.jpg` +- Połączenie z Internetem przy pierwszym uruchomieniu (Aspose automatycznie pobierze zasoby językowe) + +Jeśli już masz te elementy, świetnie — przejdźmy do działania. + +## Step 1: Install Aspose.OCR and Create a New Project + +First things first, add the Aspose.OCR NuGet package to your project. Open a terminal in your solution folder and run: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Use the `--version` flag to lock to the latest stable release, e.g., `Aspose.OCR 23.9.0`. + +Next, create a simple console project (skip this if you already have one): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Now you have a clean slate where you can paste the full sample code later. + +## Step 2: Load Image for OCR + +Loading the image is the first functional step in any **c# ocr tutorial**. Aspose.OCR accepts a file path, a stream, or even a `Bitmap`. For our example we’ll keep it straightforward and load from disk: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** By explicitly loading the image, you give the engine a clear target, which improves accuracy—especially when dealing with multi‑page PDFs or mixed‑format inputs. + +## Step 3: Configure Language and Auto‑Download Resources + +Aspose.OCR ships with language packs that can be downloaded on demand. Enabling auto‑download ensures the engine grabs the Russian language data the first time you run the code. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` removes the manual step of fetching `.dat` files. +> • Setting `Language` tells the engine which character set to expect, dramatically boosting recognition speed and accuracy. + +## Step 4: Run OCR and Retrieve the Recognized Text + +Now the heavy lifting happens. The `Recognize` method processes the image and returns an `OcrResult` object containing the extracted string. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +When you execute the program, you should see something like: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** The exact output depends on the quality of the source image, but Aspose’s neural‑network‑based engine typically handles clean receipts and printed forms with high fidelity. + +## Complete Working Example + +Below is the **full, runnable code** that combines all the steps. Copy‑paste it into `Program.cs`, replace `YOUR_DIRECTORY` with the actual folder path, and hit `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** If you need to **extract text from image** files other than JPG (PNG, BMP, TIFF), just change the file extension—Aspose handles them all. + +## Step 5: Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Garbage characters** | Low‑resolution image or heavy compression | Use a higher‑quality source, or pre‑process with `Bitmap` (e.g., increase contrast) | +| **Language not recognized** | Language pack not downloaded | Ensure `AutoDownloadResources` is `true` and the machine has internet access on first run | +| **Null `ocrResult.Text`** | Image path incorrect or file missing | Verify the path, use `File.Exists` before loading | +| **Performance lag** | Large batch of images processed sequentially | Reuse a single `OcrEngine` instance across multiple calls | + +### Bonus: Reading Multiple Files in a Loop + +If you need to **perform OCR on JPG** files in a folder, wrap the logic in a `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +This pattern scales nicely for receipt‑processing pipelines. + +## Conclusion + +You’ve just completed a **c# ocr tutorial** that shows how to **extract text from image**, **perform OCR on JPG**, and **load image for OCR** using Aspose.OCR. The sample program demonstrates the entire flow—from installing the NuGet package to printing the recognized Cyrillic text—so you can copy it into any .NET project right away. + +Ready for the next step? Try swapping `OcrLanguage.Russian` with `OcrLanguage.English` to recognize English receipts, or experiment with the `OcrEngine.Settings` options (e.g., `PageSegmentationMode`, `ImagePreprocessing`) to fine‑tune accuracy. You can also integrate the output into a database, generate PDFs, or feed it into a translation API. + +If you hit any snags, check the Aspose.OCR documentation or drop a comment below. Happy coding, and may your OCR results always be crystal‑clear! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..370098f1 --- /dev/null +++ b/ocr/polish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: samouczek C# OCR pokazujący, jak wyodrębnić tekst, wczytać obraz do OCR + i zapisać JSON do pliku przy użyciu Aspose.OCR – przewodnik krok po kroku +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: pl +og_description: samouczek C# OCR, który krok po kroku pokazuje, jak wyodrębnić tekst + z obrazów, wczytać obraz do OCR i zapisać JSON do pliku przy użyciu Aspose.OCR. +og_title: c# OCR samouczek – wyodrębnianie tekstu i eksport do JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Samouczek OCR w C# – Wyodrębnianie tekstu z obrazów i eksport do JSON +url: /pl/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Wyodrębnianie tekstu z obrazów i eksport do JSON + +Ever wondered how to extract text from a scanned invoice without spending hours writing custom parsers? You're not alone. In this **c# OCR tutorial** we’ll show you exactly how to load an image for OCR, run the recognition engine, and then **write JSON to file** so you can feed the data into downstream systems. + +Imagine you have a folder of receipts, each named `receipt1.png`, `receipt2.png`, and you need a quick way to turn them into searchable JSON records. That's the problem we’ll solve, and by the end you’ll have a ready‑to‑run console app that does just that. No extra dependencies beyond Aspose.OCR, and no magic—just clear, reproducible steps. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Prerequisites + +- .NET 6 SDK or later (the code works on .NET Core as well). +- Visual Studio 2022 or any editor you prefer. +- Aspose.OCR NuGet package (`Install-Package Aspose.OCR`). +- An image file (PNG, JPG, BMP) you’d like to process – for demo we’ll use `invoice.png`. + +If you’re missing any of these, grab the SDK from Microsoft’s site and add the NuGet package via the Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Now that the groundwork is set, let’s dive into the actual implementation. + +## Step 1: c# OCR tutorial – Initialize the OCR Engine + +Before we can **load image for OCR**, we need an instance of the engine that will drive the recognition process. The `OcrEngine` class is lightweight, but it’s good practice to wrap it in a `using` block so resources are released promptly. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* If you plan to process many images in a batch, reuse the same `OcrEngine` instance instead of creating a new one each time. It reduces memory churn and speeds things up. + +## Step 2: Load image for OCR + +Now we actually **load image for OCR**. Aspose.OCR supports a variety of formats, so you can point it at a PNG, JPEG, or even a multi‑page TIFF. The `OcrImage.FromFile` method reads the file and prepares it for recognition. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Loading the image separately lets you inspect its dimensions, DPI, or even pre‑process it (e.g., binarization) before sending it to the engine. If the image is corrupted, `FromFile` will throw a clear exception, which you can catch and log. + +## Step 3: How to extract text – Run the recognition + +With the image in hand, we can finally **how to extract text** from it. The `Recognize` method returns an `OcrResult` object that contains not only the plain text but also positional data and confidence scores for each word. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Some PDFs contain invisible text layers. If you feed a PDF page rendered as an image, the engine may see nothing. In those cases, consider using Aspose.PDF to extract the hidden layer first, then fall back to OCR only when needed. + +## Step 4: OCR image to JSON – Convert the result + +The `OcrResult` class offers a convenient `ToJson()` helper that serializes the entire result set—including each word’s bounding box and confidence—into a JSON string. This is the cleanest way to achieve **OCR image to JSON** without writing your own serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +If you prefer a custom schema, you can iterate over `ocrResult.Words` and build your own object, but for most scenarios the built‑in JSON is sufficient and already well‑structured. + +## Step 5: Write JSON to file + +Now comes the final piece of the puzzle: persisting the JSON payload. The `File.WriteAllText` method ensures the file is created (or overwritten) atomically. Be sure the target directory exists, otherwise you’ll hit a `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* If you need UTF‑8 with BOM or a different encoding, use the overload that accepts an `Encoding` argument. + +## Step 6: Verify the output + +A quick `Console.WriteLine` tells us the process completed successfully. You can also open the JSON file in a viewer to confirm the structure. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +The JSON includes each word’s location, which is handy if you later want to highlight text in a UI. + +## Full Working Example + +Below is the complete, copy‑and‑paste‑ready program. Replace `YOUR_DIRECTORY` with the actual path where your image resides. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Run the program (`dotnet run` from the project folder) and you’ll find `invoice.json` alongside your original PNG. + +## Common Pitfalls & How to Avoid Them + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **FileNotFoundException** podczas ładowania obrazu | Błąd w ścieżce lub brak pliku | Użyj `Path.Combine` i sprawdź `File.Exists` przed wywołaniem `FromFile`. | +| **Low confidence scores** | Słaba jakość obrazu, niska rozdzielczość DPI | Wstępnie przetwórz przy użyciu `ocrImage.AdjustContrast` lub zwiększ rozdzielczość obrazu do 300 DPI. | +| **JSON file empty** | `ocrResult` zwrócił null (silnik nie powiódł się) | Sprawdź, czy format obrazu jest obsługiwany i czy licencja (jeśli istnieje) została poprawnie zastosowana. | +| **Performance bottleneck on large batches** | Ponowne tworzenie `OcrEngine` w każdej iteracji | Użyj jednego egzemplarza `OcrEngine` dla całej partii, zwalniając go dopiero na końcu. | + +## Next Steps + +Now that you’ve mastered the **c# OCR tutorial**, you might want to: + +- **Batch process** an entire folder and aggregate the JSON files into a single database. +- **Integrate** the output with Azure Cognitive Search for searchable PDFs. +- **Add language support** by setting `ocrEngine.Language = OcrLanguage.Spanish` (or any supported language). +- **Post‑process** the JSON to extract tables or key‑value pairs using regular expressions. + +Each of these extensions builds on the core concepts we covered: loading images for OCR, extracting text, converting to JSON, and writing that JSON to disk. + +--- + +### Conclusion + +In this **c# OCR tutorial** we walked through every step required to **load image for OCR**, **how to extract text**, transform the result into an **OCR image to JSON** payload, and finally **write JSON to file**. The complete code example is ready to drop into any .NET project, and the explanations give you the context you need to adapt the solution to real‑world scenarios. + +Give it a try with your own set of receipts or invoices—tweak the image preprocessing, experiment with different languages, and watch the JSON output grow. If you hit any snags, revisit the pitfalls table or drop a comment below. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/polish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..ed9bb174 --- /dev/null +++ b/ocr/polish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Dowiedz się, jak wykonać OCR obrazu w C# i konwertować JPG na ePub przy + użyciu Aspose OCR. Ten przewodnik krok po kroku pokazuje również, jak wyodrębnić + tekst z obrazu. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: pl +og_description: Jak wykonać OCR obrazu w C#? Skorzystaj z tego przewodnika, aby wyodrębnić + tekst z obrazu i przekonwertować JPG na ePub przy użyciu Aspose OCR. +og_title: Jak wykonać OCR obrazu w C# – konwertuj JPG na ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Jak wykonać OCR obrazu w C# – konwertować JPG na ePub +url: /pl/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wykonać OCR obrazu w C# – Konwersja JPG do ePub + +Zastanawiałeś się kiedyś **jak wykonać OCR obrazu** bezpośrednio z aplikacji konsolowej C#? Nie jesteś jedyny. Wielu programistów napotyka problem, gdy muszą wyodrębnić tekst ze zdjęcia i spakować go do czytelnej książki ePub. + +W tym samouczku przeprowadzimy Cię przez kompletny, gotowy do uruchomienia przykład, który **wyodrębnia tekst z obrazu**, zapisuje wynik jako ePub i pokazuje, jak **konwertować JPG do ePub** bez opuszczania IDE. Bez zbędnych wstępów, tylko kod, który możesz skopiować‑wkleić i uruchomić już dziś. + +## Czego się nauczysz + +- Jak skonfigurować silnik Aspose OCR w projekcie .NET. +- Dokładne kroki, aby **konwertować obraz do epub** przy użyciu opcji `OcrSaveFormat.Epub`. +- Wskazówki dotyczące radzenia sobie z typowymi problemami, takimi jak nieobsługiwane formaty obrazów lub brakujące czcionki. +- Pełny program w C#, który możesz skompilować i uruchomić od razu. + +**Wymagania wstępne**: .NET 6 SDK (lub dowolna nowsza wersja .NET), ważny pakiet NuGet Aspose.OCR oraz plik obrazu (`input.jpg`), który chcesz przetworzyć. Jeśli nigdy wcześniej nie używałeś NuGet, po prostu otwórz konsolę Package Manager i uruchom `Install-Package Aspose.OCR`. + +Gotowy? Zanurzmy się. + +## Krok 1 – Jak wykonać OCR obrazu i załadować źródło + +Pierwszą rzeczą, której potrzebujesz, jest instancja silnika OCR oraz obraz źródłowy. Aspose OCR upraszcza to: tworzysz `OcrEngine`, a następnie podajesz mu `OcrImage` załadowany z dysku. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Dlaczego to ważne** – Inicjalizacja silnika tylko raz utrzymuje niskie zużycie pamięci, a wczesne załadowanie obrazu pozwala zweryfikować ścieżkę pliku przed rozpoczęciem intensywnej pracy OCR. + +## Krok 2 – Uruchom OCR i wyodrębnij tekst z obrazu + +Teraz, gdy obraz znajduje się w pamięci, poproś silnik o rozpoznanie znaków. Metoda `Recognize` zwraca obiekt `OcrResult`, który zawiera czysty tekst, wyniki pewności oraz informacje o układzie. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Porada** – Jeśli potrzebujesz tylko tekstu, a nie ePub, możesz tutaj zakończyć. Właściwość `ocrResult.Text` to czysty ciąg znaków, który możesz przekazać do dowolnego innego systemu. + +## Krok 3 – Zapisz wynik jako książkę ePub (Konwersja JPG do ePub) + +Aspose OCR może bezpośrednio serializować wynik OCR do kilku formatów, w tym ePub. Ten krok pokazuje dokładnie, jak **konwertować JPG do ePub** w jednej linii. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Po uruchomieniu programu zobaczysz wyodrębniony tekst wypisany w konsoli oraz nowy plik `book_page.epub` pojawiający się obok obrazu źródłowego. Otwórz go w dowolnym czytniku ePub (Calibre, Apple Books itp.) i znajdziesz tekst OCR ładnie sformatowany jako jednosktronicowa książka. + +### Oczekiwany wynik + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Jeśli ePub otworzy się poprawnie, gratulacje — właśnie ukończyłeś pełny **przykład OCR w c#**, który zamienia JPEG na przenośny ePub. + +## Krok 4 – Częste problemy przy konwersji obrazu do ePub + +Nawet przy solidnej bibliotece możesz napotkać kilka przeszkód. Oto szybkie FAQ: + +| Problem | Dlaczego się pojawia | Jak naprawić | +|---------|----------------------|--------------| +| **Nieobsługiwany format obrazu** | Aspose OCR oczekuje formatów rastrowych (JPG, PNG, BMP). | Najpierw skonwertuj obraz do JPG lub PNG, np. przy użyciu `System.Drawing.Image`. | +| **Pusty wynik** | Niska jakość obrazu lub silna kompresja. | Zwiększ DPI, użyj wyraźniejszego skanu lub zastosuj wstępne przetwarzanie obrazu (`ocrEngine.Preprocess`). | +| **Brakujące czcionki w ePub** | Domyślny generator ePub używa czcionek systemowych, które mogą nie być osadzone. | Ustaw `ocrEngine.Config.FontsDirectory` na folder zawierający wymagane pliki .ttf. | +| **Duży plik ePub** | Obrazy wysokiej rozdzielczości są osadzane jako oddzielne strony. | Użyj `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Rozwiązanie tych problemów na wczesnym etapie oszczędza Ci późniejsze poszukiwanie błędów. + +## Krok 5 – Rozszerzenie przykładu (poza podstawami) + +Teraz, gdy masz działający pipeline **konwersji obrazu do epub**, możesz zastanawiać się, co jeszcze możesz zrobić. Oto kilka pomysłów, które możesz wypróbować jutro: + +1. **Przetwarzanie wsadowe** – Przejdź przez folder z JPG‑ami, wygeneruj jeden ePub na obraz lub połącz je w wielochapterowy ePub. +2. **Wybór języka** – Ustaw `ocrEngine.Language = Language.English;` lub dowolny obsługiwany język, aby zwiększyć dokładność. +3. **Zachowanie układu** – Najpierw użyj `OcrSaveFormat.Html`, a następnie opakuj HTML w ePub dla bogatszego formatowania. +4. **Wdrożenie w chmurze** – Umieść kod w Azure Function lub AWS Lambda, aby udostępnić OCR‑do‑ePub jako usługę webową. + +Każde z tych rozszerzeń opiera się na podstawowej logice **jak wykonać OCR obrazu**, którą właśnie omówiliśmy. + +## Pełny działający kod (gotowy do kopiowania‑wklejania) + +Poniżej znajduje się cały program w jednym bloku. Zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę do pliku obrazu. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Pamiętaj** – Pakiet NuGet `Aspose.OCR` musi być zainstalowany, a docelowy runtime .NET powinien mieć co najmniej .NET 5 dla najlepszej kompatybilności. + +## Zakończenie + +Właśnie omówiliśmy **jak wykonać OCR obrazu** w C# i przekształciliśmy te skany w czyste książki ePub — w zasadzie workflow **konwersji JPG do ePub**, który możesz wstawić do dowolnego projektu. Postępując zgodnie z powyższymi krokami, będziesz w stanie **wyodrębnić tekst z obrazu**, obsłużyć typowe przypadki brzegowe i rozszerzyć rozwiązanie o zadania wsadowe lub usługi w chmurze. + +Jeśli jesteś ciekawy kolejnego logicznego kroku, spróbuj zamienić wyjście ePub na PDF (`OcrSaveFormat.Pdf`) lub przekazać tekst OCR do API tłumaczeń. Nie ma granic, gdy opanujesz podstawy. + +Masz pytania dotyczące konkretnego formatu obrazu lub chcesz zobaczyć przykład ePub wielostronicowego? Napisz komentarz, a chętnie pomogę. Miłego kodowania i przyjemności z zamieniania obrazów w książki! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/polish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..b60a03f4 --- /dev/null +++ b/ocr/polish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-01-01 +description: rozpoznawaj rosyjski tekst natychmiast przy użyciu Aspose OCR C#. Naucz + się rozpoznawać chiński tekst, odczytywać liczbę stron PDF i konwertować tekst stron + PDF w jednym samouczku. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: pl +og_description: Szybko rozpoznawaj rosyjski tekst przy użyciu Aspose OCR C#. Ten samouczek + obejmuje także rozpoznawanie chińskiego tekstu, odczytywanie liczby stron PDF oraz + konwertowanie tekstu ze stron PDF. +og_title: Rozpoznawanie rosyjskiego tekstu za pomocą Aspose OCR C# – Kompletny przewodnik +tags: +- Aspose OCR +- C# +- PDF processing +title: Rozpoznawanie rosyjskiego tekstu przy użyciu Aspose OCR C# – Kompletny przewodnik + po wielostronicowym PDF +url: /pl/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznawanie rosyjskiego tekstu przy użyciu Aspose OCR C# – Kompletny poradnik wielostronicowego PDF + +Czy kiedykolwiek potrzebowałeś **rozpoznawać rosyjski tekst** w PDF‑ie, który miesza języki, i zastanawiałeś się, jak to zrobić bez używania osobnego narzędzia dla każdej strony? Nie jesteś sam. W wielu rzeczywistych projektach otrzymasz jeden PDF zawierający angielski, rosyjski, a nawet chiński na różnych stronach i nadal chcesz uzyskać jednolity, czysty tekst. + +W tym przewodniku pokażemy dokładnie, jak **rozpoznawać rosyjski tekst** (i inne języki) przy użyciu **Aspose OCR C#**, jednocześnie demonstrując, jak **odczytać liczbę stron PDF**, **rozpoznawać chiński tekst** oraz **konwertować tekst stron PDF** do wygodnego zrzutu konsoli. Bez zewnętrznych usług, bez ukrytych kroków — po prostu czysty kod C#, który możesz skopiować i uruchomić. + +> **Co zyskasz** +> * Działającą aplikację konsolową C#, która przetwarza wielostronicowy PDF. +> * Wybór języka per strona (rosyjski, chiński, angielski). +> * Techniki zapytania o liczbę stron PDF i wyodrębnienia tekstu z każdej strony. +> * Wskazówki, pułapki i rozszerzenia, które możesz zastosować w własnych projektach. + +## Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa również na .NET Framework 4.7+). +- Pakiet NuGet **Aspose.OCR for .NET** zainstalowany (`dotnet add package Aspose.OCR`). +- Plik PDF zawierający mieszane języki; w demonstracji odwołujemy się do `mixed_lang.pdf`. +- Podstawowa znajomość aplikacji konsolowych C#. + +Jeśli brakuje Ci któregoś z nich, pobierz najnowszy Aspose OCR z NuGet i umieść swój PDF w miejscu dostępnym z folderu projektu. + +## Krok 1 – Zainicjalizuj silnik Aspose OCR + +Pierwszą rzeczą, której potrzebujesz, jest instancja `OcrEngine`. Ten obiekt przechowuje wszystkie ustawienia (np. język) i wykonuje ciężką pracę. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Dlaczego to ważne:** +> Silnik jest wielokrotnego użytku, więc nie marnujemy pamięci tworząc nową instancję dla każdej strony. Ponowne użycie pozwala także zmieniać język w locie, co jest niezbędne do **rozpoznawania rosyjskiego tekstu** na jednej stronie i **rozpoznawania chińskiego tekstu** na innej. + +## Krok 2 – Załaduj PDF i dowiedz się, ile ma stron + +Zanim zaczniemy rozpoznawanie, potrzebujemy obiektu PDF i liczby jego stron. Aspose OCR traktuje każdą stronę jako `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Wskazówka:** Jeśli PDF jest duży, możesz najpierw odczytać liczbę stron i zdecydować, czy przetwarzać wszystkie strony, czy tylko ich podzbiór. + +## Krok 3 – Mapuj każdą stronę do żądanego języka + +Aspose OCR obsługuje wiele języków, ale musisz określić, którego używać dla każdej strony. Poniżej tworzymy `Dictionary`, gdzie kluczem jest indeks strony zaczynający się od zera. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Dlaczego to jest kluczowe:** +> Bez tej mapy silnik OCR próbowałby używać jednego domyślnego języka dla każdej strony, co skutkowałoby zniekształconym wynikiem dla rosyjskiego lub chińskiego tekstu. Ten krok bezpośrednio umożliwia poprawne **rozpoznawanie rosyjskiego tekstu** i **rozpoznawanie chińskiego tekstu**. + +## Krok 4 – Przejdź przez wszystkie strony, ustaw język i rozpoznaj tekst + +Teraz iterujemy po każdej stronie, przełączamy język w oparciu o naszą mapę i wywołujemy `Recognize`. Wynik jest przechowywany w `OcrResult`, z którego wyodrębniamy czysty tekst. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Oczekiwany wynik w konsoli + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Wyjaśnienie przepływu:** +> * Pętla respektuje **odczytaną liczbę stron PDF**, którą wydrukowaliśmy wcześniej. +> * Przez zamianę `ocrEngine.Settings.Language` w każdej iteracji zapewniamy dokładne **rozpoznawanie rosyjskiego tekstu** na stronie 2 i **rozpoznawanie chińskiego tekstu** na stronie 3. +> * Instrukcje `Console.WriteLine` skutecznie **konwertują tekst stron PDF** na czytelny dla człowieka ciąg znaków. + +## Krok 5 – Uruchom, zweryfikuj i dostosuj + +1. Zbuduj projekt (`dotnet build`). +2. Uruchom go (`dotnet run`). +3. Porównaj wynik w konsoli z oryginalnym PDF. + +Jeśli zauważysz brakujące znaki, rozważ: + +- **Zwiększenie dokładności OCR** poprzez ustawienie `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Dostarczenie własnego pakietu językowego**, jeśli wbudowane słowniki rosyjskiego lub chińskiego są przestarzałe. +- **Dostosowanie DPI** przy ładowaniu PDF (`OcrImage.FromFile(path, 300)`), co może poprawić rozpoznawanie w skanach o niskiej rozdzielczości. + +## Bonus: Obsługa przypadków brzegowych + +### Co zrobić, gdy język strony nie znajduje się w mapie? + +Kod już domyślnie przechodzi na angielski, ale możesz także dodać mechanizm, który zapisuje ostrzeżenie: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Czy możemy przetwarzać PDF‑y z więcej niż trzema językami? + +Oczywiście. Rozszerz `languageMap` o dodatkowe indeksy i obsługiwane wartości `OcrLanguage` (np. `OcrLanguage.French`). Pętla poradzi sobie z dowolną liczbą stron. + +### Jak wyeksportować wyniki do pliku zamiast konsoli? + +Zastąp wywołania `Console.WriteLine` przez `File.AppendAllText("output.txt", …)` lub użyj `StringBuilder`, który zapiszesz jednorazowo po zakończeniu pętli. + +## Ilustracja + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*Powyższy obrazek pokazuje wynik w konsoli, gdy wykonywane jest **rozpoznawanie rosyjskiego tekstu** na PDF‑ie o mieszanym języku.* + +## Zakończenie + +Przeszliśmy przez kompletny, pełny przykład, który pokazuje, jak **rozpoznawać rosyjski tekst** (oraz **rozpoznawać chiński tekst**) z wielostronicowego PDF przy użyciu **Aspose OCR C#**. Czytając liczbę stron PDF, mapując każdą stronę do odpowiedniego języka i iterując po dokumencie, możesz **konwertować tekst stron PDF** na zwykłe ciągi znaków gotowe do przechowywania, indeksowania lub dalszej analizy. + +W skrócie: + +- **Zainicjalizuj** pojedynczy `OcrEngine`. +- **Załaduj** PDF i **odczytaj liczbę stron PDF**. +- **Mapuj** strony do języków (rosyjski, chiński, itp.). +- **Iteruj**, ustaw `ocrEngine.Settings.Language` i **rozpoznaj** każdą stronę. +- **Wyświetl** lub zapisz wyodrębniony tekst. + +Nie krępuj się dostosować tego wzorca do większych dokumentów, dodać obsługę błędów lub podłączyć wyniki do indeksu wyszukiwania. Główna idea — wybór języka per strona — pozostaje taka sama i to ona umożliwia niezawodne **rozpoznawanie rosyjskiego tekstu** w PDF‑ach o mieszanym języku. + +Masz inny scenariusz, np. skanowanie obrazów zamiast PDF‑ów? Ten sam silnik działa; po prostu zamień `OcrImage.FromFile` na `OcrImage.FromStream` lub `FromBitmap`. Szczęśliwego kodowania i niech Twój OCR zawsze będzie precyzyjny! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/ocr-configuration/_index.md b/ocr/portuguese/net/ocr-configuration/_index.md index 190e7bbe..0e75f659 100644 --- a/ocr/portuguese/net/ocr-configuration/_index.md +++ b/ocr/portuguese/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Desbloqueie o poder do reconhecimento de imagem OCR em .NET com Aspose.OCR. Extr Desbloqueie recursos poderosos de OCR com Aspose.OCR para .NET. Extraia texto de imagens perfeitamente. ### [Operação OCR com lista no reconhecimento de imagem OCR](./ocr-operation-with-list/) Desbloqueie o potencial do Aspose.OCR para .NET. Execute facilmente o reconhecimento de imagens OCR com listas. Aumente a produtividade e a extração de dados em suas aplicações. +### [Como Aplicar Licença no Aspose OCR – Guia passo a passo em C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aprenda a aplicar a licença do Aspose OCR em projetos C# de forma simples e rápida. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/portuguese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..fd2694a3 --- /dev/null +++ b/ocr/portuguese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: Como aplicar a licença do Aspose OCR em C#. Aprenda como ler o arquivo, + definir a licença do Aspose, usar MemoryStream e carregar a licença de forma eficiente. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: pt +og_description: Como aplicar a licença do Aspose OCR em C#. Siga este guia para ler + o arquivo de licença, definir a licença do Aspose, usar MemoryStream e verificar + a configuração. +og_title: Como aplicar licença no Aspose OCR – Tutorial completo em C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Como Aplicar a Licença no Aspose OCR – Guia Passo a Passo em C# +url: /pt/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Aplicar Licença no Aspose OCR – Guia Completo em C# + +Já se perguntou **como aplicar licença** para o Aspose OCR sem ficar caçando documentação vaga? Você não está sozinho. A maioria dos desenvolvedores encontra o mesmo obstáculo: conseguem ler o arquivo, mas não sabem a maneira correta de fornecê‑lo à biblioteca. Neste tutorial vamos percorrer cada detalhe — desde carregar o arquivo `.lic` do disco até chamar `SetLicense` com um `MemoryStream`. Ao final, você terá uma solução funcional que pode ser inserida em qualquer projeto .NET. + +Também abordaremos **como ler arquivo** com segurança, a forma correta de **definir licença Aspose**, e por que usar um **MemoryStream** é a abordagem mais limpa. Se você estiver curioso sobre **como carregar licença** em diferentes ambientes, essas dicas também estão incluídas. Nenhuma referência externa é necessária — apenas código pronto para copiar e colar. + +## Pré‑requisitos + +- .NET 6.0 ou superior (o código funciona tanto com .NET Core quanto com .NET Framework) +- Pacote NuGet Aspose.OCR instalado (`Install-Package Aspose.OCR`) +- Um arquivo `Aspose.OCR.lic` válido colocado em um local acessível pela sua aplicação +- Familiaridade básica com C# e Visual Studio (ou qualquer IDE de sua preferência) + +> **Dica profissional:** Mantenha o arquivo de licença fora da pasta de controle de versão para evitar commits acidentais. + +## Etapa 1: Como Ler Arquivo – Carregar os Bytes da Licença + +A primeira coisa que precisamos é o array de bytes bruto do arquivo de licença. Usar `File.ReadAllBytes` é simples e eficiente, e lança uma exceção clara se o caminho estiver errado. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Por que isso importa:** Ler o arquivo diretamente para a memória evita vazamentos de manipuladores de arquivo e nos fornece um array de bytes limpo para uso posterior. Também torna o método reutilizável em aplicativos console, serviços web ou Azure Functions. + +## Etapa 2: Como Usar MemoryStream – Preparar o Stream da Licença + +A sobrecarga `License.SetLicense` do Aspose espera um `Stream`. Envolver o array de bytes em um `MemoryStream` é a forma idiomática de atender a esse requisito sem tocar novamente no sistema de arquivos. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Insight chave:** `MemoryStream` é leve e é descartado rapidamente. Ele também permite reutilizar o mesmo array de bytes para várias bibliotecas caso você precise aplicar mais de uma licença de produto Aspose. + +## Etapa 3: Definir Licença Aspose – O Núcleo do “como aplicar licença” + +Agora que temos um `MemoryStream`, aplicar a licença é uma única linha. A classe `License` está no namespace `Aspose.OCR`, então certifique‑se de que o `using` adequado foi adicionado. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Se a licença for inválida ou estiver expirada, `SetLicense` falhará silenciosamente e a biblioteca operará em modo de avaliação. Para ter absoluta certeza, você pode verificar um recurso que só está disponível na versão licenciada (por exemplo, configurações de precisão OCR) ou simplesmente confiar na mensagem de confirmação que imprimiremos mais adiante. + +## Etapa 4: Como Carregar Licença – Juntando Tudo + +Abaixo está o programa console completo e executável que demonstra **como carregar licença** do disco, usar um `MemoryStream` e verificar se a licença foi aplicada com sucesso. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Saída Esperada + +``` +License applied successfully. You can now perform OCR operations. +``` + +Se você vir a mensagem, a biblioteca está totalmente licenciada e pronta para tarefas OCR de nível de produção. + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que Acontece | Solução | +|----------|------------------|---------| +| **FileNotFoundException** ao ler a licença | O caminho está errado ou o arquivo não foi implantado com a aplicação | Use um caminho absoluto ou incorpore a licença como recurso (veja “carregamento alternativo” abaixo) | +| **Licença não aplicada, mas sem erro** | `SetLicense` recua silenciosamente para o modo de avaliação se o stream estiver vazio ou corrompido | Verifique `licenseData.Length > 0` antes de criar o `MemoryStream` | +| **MemoryStream não descartado** | Esquecer o `using` deixa recursos não gerenciados pendentes | Sempre envolva o stream em um bloco `using` como mostrado | + +### Alternativa: Incorporar a Licença como Recurso Embutido + +Se preferir não distribuir um arquivo `.lic` separado, adicione‑o ao seu projeto, defina **Build Action** como **Embedded Resource** e leia‑o assim: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Em seguida, chame `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` e continue com a mesma abordagem de `MemoryStream`. + +## Conclusão + +Cobremos **como aplicar licença** para o Aspose OCR do início ao fim: ler o arquivo, criar um `MemoryStream`, chamar `SetLicense` e confirmar a ativação. Seguindo esses passos, você elimina suposições, evita erros comuns e garante que seu motor OCR funcione em modo completo. + +A seguir, você pode explorar **como ler arquivo** de forma assíncrona para serviços de alta taxa de transferência, ou mergulhar nas configurações avançadas de OCR agora que a licença está carregada corretamente. De qualquer forma, o padrão permanece o mesmo — ler, stream, definir, verificar. + +Tem dúvidas sobre casos de borda, como carregar a licença em um ambiente ASP.NET Core ou lidar com múltiplas licenças de produtos Aspose? Deixe um comentário abaixo, e feliz codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/ocr-optimization/_index.md b/ocr/portuguese/net/ocr-optimization/_index.md index 3202c80b..de3dcf3c 100644 --- a/ocr/portuguese/net/ocr-optimization/_index.md +++ b/ocr/portuguese/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Explore Aspose.OCR para .NET. Aumente a precisão do OCR com filtros de pré-pro Aumente a precisão do OCR com Aspose.OCR para .NET. Corrija a ortografia, personalize dicionários e obtenha reconhecimento de texto sem erros sem esforço. ### [Salvar resultado de várias páginas como documento no reconhecimento de imagem OCR](./save-multipage-result-as-document/) Desbloqueie o potencial do Aspose.OCR para .NET. Salve facilmente resultados de OCR de várias páginas como documentos com este guia passo a passo abrangente. +### [Como fazer OCR em lote em C# com o motor Aspose OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Aprenda a processar múltiplas imagens em lote usando C# e o motor Aspose OCR, otimizando desempenho e precisão. +### [Pré-processar imagem OCR em C# – Aumente a precisão com Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Aprenda a pré-processar imagens para OCR em C# usando Aspose OCR, melhorando a precisão do reconhecimento. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/portuguese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..acdda6a9 --- /dev/null +++ b/ocr/portuguese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: Como fazer OCR em lote usando o Aspose OCR Engine em C#. Aprenda a reconhecer + texto a partir de imagens e extrair texto de arquivos TIFF com aceleração por GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: pt +og_description: Como fazer OCR em lote em C# com o Aspose OCR Engine. Este guia mostra + como reconhecer texto em imagens e extrair texto de arquivos TIFF de forma eficiente. +og_title: Como fazer OCR em lote em C# – Guia completo da Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Como fazer OCR em lote em C# com o motor OCR da Aspose +url: /pt/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como fazer OCR em lote em C# com o mecanismo Aspose OCR + +Já se perguntou **como fazer OCR em lote** quando você tem dezenas de documentos escaneados em uma pasta? Você não está sozinho — muitos desenvolvedores enfrentam esse desafio ao passar do reconhecimento de uma única imagem para o processamento de uma coleção inteira. A boa notícia é que o Aspose OCR torna isso muito simples, seja rodando em CPU ou aproveitando a aceleração por GPU. + +Neste tutorial vamos percorrer um exemplo completo e executável que **reconhece texto de imagens** e ainda **extrai texto de arquivos TIFF** em massa. Sem atalhos vagos como “veja a documentação” — apenas uma solução autocontida que você pode copiar‑colar e executar hoje. + +## Pré‑requisitos + +Antes de começarmos, certifique‑se de que você tem: + +* .NET 6.0 ou superior instalado (o código tem como alvo o .NET 6, mas o .NET 5 também funciona). +* Pacote NuGet Aspose.OCR para .NET (as versões CPU e GPU estão disponíveis; instale a que corresponde ao seu hardware). +* Uma pasta com alguns arquivos TIFF ou PNG de exemplo que você deseja processar. +* Visual Studio 2022 ou qualquer IDE de sua preferência. + +> **Dica profissional:** Se você pretende usar a versão GPU, verifique se o driver da sua placa gráfica está atualizado e se o CUDA 11+ está instalado. O mecanismo reverterá automaticamente para CPU caso não encontre uma GPU compatível. + +## Etapa 1 – Configurar o projeto e instalar o Aspose.OCR + +### H2: Crie um novo aplicativo de console e adicione o Aspose.OCR + +Abra um terminal (ou o Package Manager Console no Visual Studio) e execute: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Se você possui uma licença habilitada para GPU, adicione o pacote GPU em vez disso: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +É isso — seu projeto agora referencia a biblioteca OCR que usaremos para **OCR em lote**. + +## Etapa 2 – Inicializar o mecanismo OCR (CPU ou GPU) + +### H2: Como fazer OCR em lote – Inicialização do mecanismo + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Por que isso importa:** Ao alternar `UseGpu`, você permite que o Aspose escolha o caminho mais rápido. Se a GPU não estiver disponível, o mecanismo muda silenciosamente para CPU, de modo que seu trabalho em lote nunca falha por falta de hardware. + +## Etapa 3 – Coletar os arquivos que você deseja processar + +### H2: Reconhecer texto de imagens – Construindo a lista de arquivos + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Observação de caso extremo:** Se você tem uma mistura de formatos, altere o padrão de busca para `"*.*"` e filtre por extensão dentro do laço. Isso mantém o lote flexível. + +## Etapa 4 – Processar cada imagem e exibir uma pré‑visualização + +### H2: Extrair texto de TIFF – Percorrendo os arquivos + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**O que você verá:** Para cada TIFF, o console imprime algo como: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Essa pré‑visualização confirma que o lote foi concluído sem precisar abrir cada arquivo manualmente. + +## Etapa 5 – Salvar os resultados (Opcional, mas útil) + +### H3: Persistir a saída OCR em arquivos de texto + +Se você precisar do texto completo para processamento posterior, adicione isso dentro do laço `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Agora cada TIFF recebe um arquivo `.txt` acompanhante contendo a saída completa do OCR — perfeito para indexação, busca ou alimentação a um modelo de linguagem. + +## Etapa 6 – Executar a demonstração e verificar + +1. Compile o projeto: `dotnet build`. +2. Execute: `dotnet run --project GpuBatchDemo.csproj`. + +Você deverá ver as linhas de pré‑visualização impressas no console e (se adicionou a etapa opcional) uma série de arquivos `.txt` ao lado das imagens de origem. + +### H3: Problemas comuns e como corrigi-los + +| Sintoma | Causa provável | Solução | +|---------|----------------|--------| +| **`ocrResult.Text` vazio** | Imagem muito escura ou DPI baixo | Pré‑processar imagens (aumentar contraste, upscale) ou definir `ocrEngine.Settings.PreprocessImage = true`. | +| **Erro GPU “CUDA driver version is insufficient”** | Driver desatualizado | Atualize o driver da GPU ou defina `UseGpu = false` para forçar CPU. | +| **Exceção “File not found”** | Separador de caminho errado em Linux/macOS | Use `Path.Combine` ou barras (`/`). | + +## Etapa 7 – Escalando (Além de alguns arquivos) + +Quando você passa de algumas dezenas de TIFFs para milhares, considere: + +* **Processamento paralelo:** Envolva o `foreach` em `Parallel.ForEach` (garanta que a instância do mecanismo seja thread‑safe; caso contrário, crie uma por thread). +* **I/O em blocos:** Leia imagens em lotes para evitar esgotar a RAM. +* **Log:** Grave o progresso em um arquivo de log; isso ajuda a retomar após uma falha. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Lembre‑se:** A memória da GPU é compartilhada, portanto criar muitas tarefas paralelas de GPU pode, na verdade, diminuir a performance. Teste com poucos threads primeiro. + +## Exemplo completo funcional (pronto para copiar e colar) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Executar este programa **reconhecerá texto de imagens**, **extrairá texto de TIFF** e demonstrará **como fazer OCR em lote** de forma eficiente. + +--- + +## Conclusão + +Agora você tem um exemplo sólido, de ponta a ponta, de **como fazer OCR em lote** em C# usando o mecanismo OCR da Aspose. O tutorial abordou tudo, desde a configuração do projeto, alternância de aceleração GPU, construção da lista de arquivos, processamento de cada imagem e persistência dos resultados. Seja extraindo texto de arquivos TIFF ou de qualquer outro formato de imagem, o mesmo padrão se aplica — basta trocar as extensões dos arquivos. + +Pronto para o próximo passo? Experimente integrar a saída OCR a um índice de busca, alimentar o texto a um modelo de linguagem grande ou testar o processamento paralelo para reduzir minutos em lotes massivos. O céu é o limite, e você já tem a base para construir. + +Tem perguntas ou quer compartilhar suas próprias dicas de OCR em lote? Deixe um comentário abaixo — boa codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/portuguese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..376b2453 --- /dev/null +++ b/ocr/portuguese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Pré-processar imagem OCR para melhorar a precisão. Aprenda como reconhecer + texto em imagem, melhorar a precisão do OCR, carregar imagem OCR e exibir o texto + OCR usando Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: pt +og_description: Pré-processar OCR de imagem para melhorar a precisão. Este guia mostra + como reconhecer texto em imagem, carregar OCR da imagem, aplicar filtros e exibir + o texto OCR. +og_title: Pré-processar OCR de imagem em C# – Aumente a precisão com Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Pré-processar OCR de imagem em C# – Aumente a precisão com Aspose OCR +url: /pt/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# pré-processar imagem OCR em C# – Aumente a Precisão com Aspose OCR + +Já se perguntou como **pré‑processar imagem OCR** para que o motor realmente leia o que está na página? Você não está sozinho—a maioria dos desenvolvedores encontra um obstáculo quando uma digitalização ruidosa e inclinada se recusa a cooperar. A boa notícia é que alguns passos inteligentes de pré‑processamento podem transformar uma imagem caótica em texto limpo e legível. + +Neste tutorial, percorreremos um exemplo completo, pronto‑para‑executar, que **reconhece arquivos de imagem de texto**, **melhora a precisão do OCR**, e finalmente **exibe texto OCR** no console. Ao final, você saberá como **carregar imagem OCR** ativos, anexar filtros como correção de inclinação e redução de ruído, e obter resultados confiáveis — tudo com Aspose.OCR para .NET. + +## O que você aprenderá + +- Como criar uma instância `OcrEngine` e configurar filtros de pré‑processamento. +- Por que correção de inclinação e filtros de redução de ruído são importantes para **melhorar a precisão do OCR**. +- O código exato para **carregar imagem OCR** arquivos e executar o reconhecimento. +- Como **exibir texto OCR** de forma amigável ao usuário. +- Dicas, armadilhas e ajustes opcionais que você pode aplicar em projetos do mundo real. + +### Pré‑requisitos + +- .NET 6+ (ou .NET Framework 4.7+) instalado na sua máquina. +- Uma licença para Aspose.OCR (a versão de avaliação gratuita funciona para esta demonstração). +- Conhecimento básico de C# — sem truques avançados necessários. + +Se algum desses itens lhe for desconhecido, basta pausar e instalar as partes faltantes; o restante do guia assume que elas já estão em vigor. + +--- + +## pré‑processar imagem OCR – Configurando Filtros + +A primeira coisa que você precisa entender é **por que o pré‑processamento importa**. Os motores OCR são ótimos em ler texto nítido e alinhado, mas digitalizações do mundo real frequentemente sofrem com rotação, desfoque ou ruído de fundo. Ao fornecer uma imagem limpa ao motor, você aumenta drasticamente as chances de uma transcrição correta. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**O que está acontecendo aqui?** +- **Step 1** cria o motor — o coração da biblioteca Aspose OCR. +- **Step 2** anexa dois filtros. O `SkewCorrectionFilter` gira a imagem de volta ao horizontal, enquanto o `DenoiseFilter` suaviza o ruído a nível de pixel. +- **Step 3** é opcional, mas útil; você pode limitar o ângulo máximo que o motor tentará corrigir, evitando sobre‑rotação em páginas já retas. +- **Step 4** é onde você **carrega imagem OCR** dados. Substitua `YOUR_DIRECTORY/skewed_noisy.jpg` pelo caminho do seu arquivo de teste. +- **Step 5** realmente executa o OCR e produz um `OcrResult`. +- **Step 6** **exibe texto OCR** no console, fornecendo feedback imediato. + +> **Dica profissional:** Se você notar que a saída ainda contém caracteres confusos, tente aumentar o `MaxAngle` ou adicionar um `ContrastFilter` antes da etapa de redução de ruído. + +--- + +## reconhecer imagem de texto – Carregando seus arquivos corretamente + +Um obstáculo comum é **carregar imagem OCR** com o formato ou DPI incorreto. Aspose.OCR suporta PNG, JPEG, TIFF, BMP e até imagens baseadas em PDF. No entanto, o motor funciona melhor com 300 DPI ou mais para documentos impressos. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Se você estiver lidando com um TIFF de várias páginas, pode percorrer cada quadro: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Por que isso importa para melhorar a precisão do OCR?** Resolução mais alta preserva a forma de cada caractere, fornecendo ao reconhecedor mais pontos de dados para trabalhar. Imagens com DPI baixo frequentemente resultam em glifos mesclados ou quebrados, que o motor interpretará erroneamente. + +--- + +## melhorar a precisão do OCR – Ajustando os parâmetros dos filtros + +As configurações padrão dos filtros são um bom ponto de partida, mas você pode extrair desempenho extra deles. + +| Filtro | Propriedade‑Chave | Valor‑Típico | Quando Ajustar | +|--------|-------------------|--------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (graus) | Imagens muito inclinadas (até 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Digitalizações muito ruidosas; aumente para `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Capturas de tela de baixo contraste. | + +Exemplo de personalização de ambos: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Caso extremo:** Se sua imagem contiver notas manuscritas e texto impresso, você pode querer adicionar um `BinarizationFilter` antes da redução de ruído para separar o primeiro plano do fundo. + +--- + +## exibir texto OCR – Formatando a Saída + +A saída simples no console funciona para demonstrações, mas código de produção frequentemente precisa de strings limpas, quebras de linha ou até JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Se você precisar de JSON para uma resposta de API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Agora você **exibe texto OCR** em um formato que serviços downstream podem consumir. + +--- + +## Exemplo completo em funcionamento – Junte tudo + +Abaixo está o programa final, autônomo, que você pode copiar‑colar em um novo projeto de console. Ele inclui filtros opcionais, carregamento de imagem em alta resolução e saída limpa. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Saída esperada no console (exemplo):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Se você executar o programa com um arquivo diferente, o texto e a confiança mudarão de acordo. + +--- + +## Perguntas Frequentes & Respostas + +**Q: E se minha imagem já estiver reta?** +A: O filtro de inclinação detectará um ângulo próximo de zero e efetivamente se tornará um no‑op, então você pode mantê‑lo habilitado com segurança. + +**Q: O Aspose.OCR suporta idiomas além do inglês?** +A: Sim — basta definir `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (ou qualquer idioma suportado) antes de chamar `Recognize`. + +**Q: Como lidar com PDFs de várias páginas?** +A: Converta cada página em uma imagem (Aspose.PDF pode fazer isso) e alimente‑as uma a uma na mesma instância `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/text-recognition/_index.md b/ocr/portuguese/net/text-recognition/_index.md index 8efadbd2..fcb6f40c 100644 --- a/ocr/portuguese/net/text-recognition/_index.md +++ b/ocr/portuguese/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Aprimore seus aplicativos .NET com Aspose.OCR para reconhecimento eficiente de t Desbloqueie o potencial do OCR em .NET com Aspose.OCR. Extraia texto de PDFs sem esforço. Baixe agora para uma experiência de integração perfeita. ### [Reconhecer tabela no reconhecimento de imagem OCR](./recognize-table/) Desbloqueie o potencial do Aspose.OCR para .NET com nosso guia completo sobre reconhecimento de tabelas no reconhecimento de imagem OCR. +### [Tutorial c# OCR: Extrair texto de imagem com Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aprenda a extrair texto de imagens usando Aspose OCR em C#. Siga nosso guia passo a passo para integrar OCR em seus projetos. +### [Tutorial c# OCR – Extrair texto de imagens e exportar para JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aprenda a extrair texto de imagens e exportar os resultados em JSON usando Aspose OCR em C#. +### [Como fazer OCR de imagem em C# – Converter JPG para ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Aprenda a usar Aspose.OCR em C# para converter imagens JPG em ePub, extraindo texto e criando ebooks de forma simples. +### [Reconhecer texto russo com Aspose OCR C# – Guia completo de PDF multipágina](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Siga o guia passo a passo para extrair texto russo de PDFs de várias páginas com Aspose OCR em C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..d73a20ae --- /dev/null +++ b/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial de OCR em C# mostrando como extrair texto de imagem, realizar + OCR em arquivos JPG usando Aspose OCR. Aprenda a carregar a imagem para OCR e obter + resultados precisos. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: pt +og_description: Tutorial de OCR em C# que orienta você na extração de texto de imagens, + na realização de OCR em JPG e no carregamento de imagens para OCR usando Aspose. +og_title: tutorial de OCR em C# – Extrair texto de imagem com Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# tutorial de OCR: Extrair texto de imagem com Aspose OCR' +url: /pt/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tutorial de OCR em C# – Extrair Texto de Imagem com Aspose OCR + +Procurando um **tutorial de OCR em C#** que realmente funcione? Neste guia vamos mostrar como **extrair texto de uma imagem** e **realizar OCR em arquivos JPG** usando a biblioteca Aspose.OCR. Seja você quem está construindo um scanner de recibos, um arquivador de documentos ou apenas curioso sobre ler texto a partir de fotos, os passos abaixo levarão você do zero a um código funcional em minutos. + +Cobriremos tudo o que você precisa: instalar o pacote, carregar uma imagem para OCR, configurar recursos de idioma, executar o motor de reconhecimento e lidar com as armadilhas mais comuns. Ao final, você terá um aplicativo console autônomo que imprime o texto reconhecido no console — sem necessidade de serviços externos. + +## O que você vai precisar + +- .NET 6.0 ou superior (o código também funciona com .NET Framework 4.6+) +- Visual Studio 2022, VS Code ou qualquer editor C# de sua preferência +- Um arquivo de imagem que contenha texto em russo (cirílico), por exemplo, `receipt_ru.jpg` +- Conexão com a internet para a primeira execução (Aspose baixará automaticamente os recursos de idioma) + +Se já tem tudo isso, ótimo — vamos começar. + +## Etapa 1: Instalar Aspose.OCR e criar um novo projeto + +Primeiro, adicione o pacote NuGet Aspose.OCR ao seu projeto. Abra um terminal na pasta da solução e execute: + +```bash +dotnet add package Aspose.OCR +``` + +> **Dica:** Use a flag `--version` para fixar na versão estável mais recente, por exemplo, `Aspose.OCR 23.9.0`. + +Em seguida, crie um projeto console simples (ignore este passo se já possuir um): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Agora você tem um ambiente limpo onde poderá colar o código completo mais adiante. + +## Etapa 2: Carregar a imagem para OCR + +Carregar a imagem é o primeiro passo funcional em qualquer **tutorial de OCR em C#**. Aspose.OCR aceita um caminho de arquivo, um stream ou até um `Bitmap`. Para nosso exemplo, vamos manter simples e carregar a partir do disco: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Por que isso importa:** Ao carregar explicitamente a imagem, você fornece ao motor um alvo claro, o que melhora a precisão — especialmente ao lidar com PDFs de várias páginas ou entradas de formatos mistos. + +## Etapa 3: Configurar idioma e download automático de recursos + +Aspose.OCR vem com pacotes de idioma que podem ser baixados sob demanda. Habilitar o download automático garante que o motor obtenha os dados de idioma russo na primeira vez que o código for executado. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explicação:** +> • `AutoDownloadResources = true` elimina a necessidade manual de buscar arquivos `.dat`. +> • Definir `Language` informa ao motor qual conjunto de caracteres esperar, aumentando drasticamente a velocidade e a precisão do reconhecimento. + +## Etapa 4: Executar OCR e obter o texto reconhecido + +Agora a parte pesada acontece. O método `Recognize` processa a imagem e devolve um objeto `OcrResult` contendo a string extraída. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Ao executar o programa, você deverá ver algo como: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **O que esperar:** A saída exata depende da qualidade da imagem fonte, mas o motor baseado em redes neurais da Aspose costuma lidar com recibos limpos e formulários impressos com alta fidelidade. + +## Exemplo completo e funcional + +Abaixo está o **código completo e executável** que combina todas as etapas. Copie‑e‑cole em `Program.cs`, substitua `YOUR_DIRECTORY` pelo caminho da pasta real e execute `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Dica:** Se precisar **extrair texto de imagem** de arquivos diferentes de JPG (PNG, BMP, TIFF), basta mudar a extensão — Aspose os suporta todos. + +## Etapa 5: Armadilhas comuns & Dicas avançadas + +| Problema | Por que acontece | Solução | +|----------|------------------|---------| +| **Caracteres estranhos** | Imagem de baixa resolução ou compressão pesada | Use uma fonte de maior qualidade ou pré‑procese com `Bitmap` (ex.: aumente o contraste) | +| **Idioma não reconhecido** | Pacote de idioma não baixado | Certifique‑se de que `AutoDownloadResources` está `true` e que a máquina tem acesso à internet na primeira execução | +| **`ocrResult.Text` nulo** | Caminho da imagem incorreto ou arquivo ausente | Verifique o caminho, use `File.Exists` antes de carregar | +| **Desempenho lento** | Grande lote de imagens processado sequencialmente | Reutilize uma única instância de `OcrEngine` em múltiplas chamadas | + +### Bônus: Ler vários arquivos em um loop + +Se precisar **realizar OCR em JPG** em uma pasta, envolva a lógica em um `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Esse padrão escala bem para pipelines de processamento de recibos. + +## Conclusão + +Você acabou de concluir um **tutorial de OCR em C#** que mostra como **extrair texto de imagem**, **realizar OCR em JPG** e **carregar imagem para OCR** usando Aspose.OCR. O programa de exemplo demonstra todo o fluxo — da instalação do pacote NuGet à impressão do texto cirílico reconhecido — para que você possa copiá‑lo em qualquer projeto .NET imediatamente. + +Pronto para o próximo passo? Experimente trocar `OcrLanguage.Russian` por `OcrLanguage.English` para reconhecer recibos em inglês, ou brinque com as opções de `OcrEngine.Settings` (ex.: `PageSegmentationMode`, `ImagePreprocessing`) para ajustar a precisão. Você também pode integrar a saída a um banco de dados, gerar PDFs ou enviá‑la a uma API de tradução. + +Se encontrar algum obstáculo, consulte a documentação do Aspose.OCR ou deixe um comentário abaixo. Boa codificação, e que seus resultados de OCR sejam sempre cristalinos! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..9ca63250 --- /dev/null +++ b/ocr/portuguese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial de OCR em C# mostrando como extrair texto, carregar imagem para + OCR e gravar JSON em arquivo usando Aspose.OCR – guia passo a passo. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: pt +og_description: Tutorial de OCR em C# que orienta passo a passo como extrair texto + de imagens, carregar a imagem para OCR e gravar JSON em arquivo usando Aspose.OCR. +og_title: Tutorial de OCR em C# – Extrair Texto e Exportar para JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Tutorial de OCR em C# – Extrair texto de imagens e exportar para JSON +url: /pt/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# tutorial c# OCR – Extrair Texto de Imagens e Exportar para JSON + +Já se perguntou como extrair texto de uma nota fiscal escaneada sem passar horas escrevendo analisadores personalizados? Você não está sozinho. Neste **tutorial c# OCR** vamos mostrar exatamente como carregar uma imagem para OCR, executar o motor de reconhecimento e então **escrever JSON em arquivo** para que você possa alimentar os dados em sistemas downstream. + +Imagine que você tem uma pasta de recibos, cada um nomeado `receipt1.png`, `receipt2.png`, e precisa de uma maneira rápida de transformá‑los em registros JSON pesquisáveis. Esse é o problema que vamos resolver, e ao final você terá um aplicativo console pronto‑para‑executar que faz exatamente isso. Sem dependências extras além do Aspose.OCR, e sem mágica — apenas passos claros e reproduzíveis. + +> **O que você aprenderá** +> - Como **carregar imagem para OCR** usando Aspose.OCR. +> - A melhor forma de **extrair texto** e obter pontuações de confiança. +> - Converter o resultado do OCR em uma carga útil **OCR image to JSON** bem estruturada. +> - Gravar **JSON em arquivo** com segurança e verificar a saída. + +## Pré‑requisitos + +- .NET 6 SDK ou posterior (o código funciona também em .NET Core). +- Visual Studio 2022 ou qualquer editor de sua preferência. +- Pacote NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Um arquivo de imagem (PNG, JPG, BMP) que você queira processar — para a demonstração usaremos `invoice.png`. + +Se estiver faltando algum desses itens, baixe o SDK no site da Microsoft e adicione o pacote NuGet via Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Agora que a base está pronta, vamos mergulhar na implementação real. + +## Etapa 1: tutorial c# OCR – Inicializar o Motor OCR + +Antes de podermos **carregar imagem para OCR**, precisamos de uma instância do motor que conduzirá o processo de reconhecimento. A classe `OcrEngine` é leve, mas é uma boa prática envolvê‑la em um bloco `using` para que os recursos sejam liberados prontamente. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Dica profissional:* Se você planeja processar muitas imagens em lote, reutilize a mesma instância de `OcrEngine` em vez de criar uma nova a cada vez. Isso reduz o consumo de memória e acelera o processamento. + +## Etapa 2: Carregar imagem para OCR + +Agora realmente **carregamos a imagem para OCR**. Aspose.OCR suporta diversos formatos, então você pode apontar para um PNG, JPEG ou até um TIFF multipágina. O método `OcrImage.FromFile` lê o arquivo e o prepara para o reconhecimento. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Por que isso importa:** Carregar a imagem separadamente permite que você inspecione suas dimensões, DPI ou até pré‑procese-a (por exemplo, binarização) antes de enviá‑la ao motor. Se a imagem estiver corrompida, `FromFile` lançará uma exceção clara, que você pode capturar e registrar. + +## Etapa 3: Como extrair texto – Executar o reconhecimento + +Com a imagem em mãos, finalmente podemos **extrair texto** dela. O método `Recognize` devolve um objeto `OcrResult` que contém não apenas o texto puro, mas também dados posicionais e pontuações de confiança para cada palavra. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Caso extremo:* Alguns PDFs contêm camadas de texto invisíveis. Se você alimentar uma página PDF renderizada como imagem, o motor pode não encontrar nada. Nesses casos, considere usar Aspose.PDF para extrair a camada oculta primeiro, e só então recorrer ao OCR quando necessário. + +## Etapa 4: OCR image to JSON – Converter o resultado + +A classe `OcrResult` oferece um conveniente helper `ToJson()` que serializa todo o conjunto de resultados — incluindo a caixa delimitadora e a confiança de cada palavra — em uma string JSON. Essa é a maneira mais limpa de obter **OCR image to JSON** sem precisar escrever seu próprio serializador. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Se preferir um esquema customizado, você pode iterar sobre `ocrResult.Words` e montar seu próprio objeto, mas na maioria dos cenários o JSON embutido já é suficiente e bem estruturado. + +## Etapa 5: Gravar JSON em arquivo + +Agora vem a última peça do quebra‑cabeça: persistir a carga JSON. O método `File.WriteAllText` garante que o arquivo seja criado (ou sobrescrito) de forma atômica. Certifique‑se de que o diretório de destino exista, caso contrário você receberá uma `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Dica:* Se precisar de UTF‑8 com BOM ou outra codificação, use a sobrecarga que aceita um argumento `Encoding`. + +## Etapa 6: Verificar a saída + +Um rápido `Console.WriteLine` indica que o processo foi concluído com sucesso. Você também pode abrir o arquivo JSON em um visualizador para confirmar a estrutura. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Trecho JSON esperado + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +O JSON inclui a localização de cada palavra, o que é útil caso você queira destacar o texto em uma interface posteriormente. + +## Exemplo Completo Funcional + +Abaixo está o programa completo, pronto para copiar e colar. Substitua `YOUR_DIRECTORY` pelo caminho real onde sua imagem está localizada. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Execute o programa (`dotnet run` a partir da pasta do projeto) e você encontrará `invoice.json` ao lado do seu PNG original. + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| **FileNotFoundException** ao carregar a imagem | Erro de digitação no caminho ou arquivo ausente | Use `Path.Combine` e verifique `File.Exists` antes de chamar `FromFile`. | +| **Pontuações de confiança baixas** | Qualidade de imagem ruim, DPI baixo | Pré‑processar com `ocrImage.AdjustContrast` ou aumentar a imagem para 300 DPI. | +| **Arquivo JSON vazio** | `ocrResult` retornou null (motor falhou) | Verifique se o formato da imagem é suportado e se a licença (se houver) está aplicada corretamente. | +| **Gargalo de desempenho em lotes grandes** | Recriar `OcrEngine` a cada iteração | Reutilize uma única instância de `OcrEngine` ao longo do lote, descartando‑a apenas ao final. | + +## Próximos Passos + +Agora que você dominou o **tutorial c# OCR**, pode querer: + +- **Processar em lote** uma pasta inteira e agregar os arquivos JSON em um único banco de dados. +- **Integrar** a saída com Azure Cognitive Search para PDFs pesquisáveis. +- **Adicionar suporte a idiomas** definindo `ocrEngine.Language = OcrLanguage.Spanish` (ou qualquer idioma suportado). +- **Pós‑processar** o JSON para extrair tabelas ou pares chave‑valor usando expressões regulares. + +Cada uma dessas extensões se baseia nos conceitos centrais que abordamos: carregar imagens para OCR, extrair texto, converter para JSON e gravar esse JSON em disco. + +--- + +### Conclusão + +Neste **tutorial c# OCR** percorremos cada passo necessário para **carregar imagem para OCR**, **extrair texto**, transformar o resultado em uma carga **OCR image to JSON** e, finalmente, **gravar JSON em arquivo**. O código completo está pronto para ser inserido em qualquer projeto .NET, e as explicações fornecem o contexto necessário para adaptar a solução a cenários reais. + +Experimente com seu próprio conjunto de recibos ou notas fiscais — ajuste o pré‑processamento de imagem, experimente diferentes idiomas e observe o JSON crescer. Se encontrar algum obstáculo, consulte a tabela de armadilhas ou deixe um comentário abaixo. Boa codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/portuguese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..8b8da905 --- /dev/null +++ b/ocr/portuguese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: Aprenda a fazer OCR de imagens em C# e converter JPG para ePub usando + o Aspose OCR. Este guia passo a passo também mostra como extrair texto da imagem. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: pt +og_description: Como fazer OCR de imagem em C#? Siga este guia para extrair texto + da imagem e converter JPG para ePub com Aspose OCR. +og_title: Como fazer OCR de imagem em C# – Converter JPG para ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Como fazer OCR de imagem em C# – Converter JPG para ePub +url: /pt/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como fazer OCR de Imagem em C# – Converter JPG para ePub + +Já se perguntou **como fazer OCR de imagem** diretamente de um aplicativo console C#? Você não está sozinho. Muitos desenvolvedores se deparam com a necessidade de extrair texto de uma fotografia e, em seguida, empacotar esse texto em um ePub legível. + +Neste tutorial vamos percorrer um exemplo completo e executável que **extrai texto de imagem**, salva o resultado como ePub e mostra como **converter JPG para ePub** sem sair do seu IDE. Sem enrolação, apenas o código que você pode copiar‑colar e executar hoje. + +## O que você vai aprender + +- Como configurar o motor Aspose OCR em um projeto .NET. +- Os passos exatos para **converter imagem para epub** usando a opção `OcrSaveFormat.Epub`. +- Dicas para lidar com armadilhas comuns, como formatos de imagem não suportados ou fontes ausentes. +- Um programa C# completo que você pode compilar e executar agora mesmo. + +**Pré‑requisitos**: .NET 6 SDK (ou qualquer versão recente do .NET), um pacote NuGet válido do Aspose.OCR e um arquivo de imagem (`input.jpg`) que você deseja processar. Se você nunca usou o NuGet antes, basta abrir o Console do Gerenciador de Pacotes e executar `Install-Package Aspose.OCR`. + +Pronto? Vamos mergulhar. + +## Etapa 1 – Como fazer OCR de Imagem e Carregar a Fonte + +A primeira coisa que você precisa é uma instância do motor OCR e uma imagem de origem. O Aspose OCR torna isso simples: você cria um `OcrEngine` e, em seguida, fornece um `OcrImage` carregado do disco. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Por que isso importa** – Inicializar o motor apenas uma vez mantém o uso de memória baixo, e carregar a imagem antecipadamente permite que você verifique o caminho do arquivo antes que o trabalho pesado de OCR comece. + +## Etapa 2 – Executar OCR e Extrair Texto da Imagem + +Agora que a imagem está na memória, peça ao motor para reconhecer os caracteres. O método `Recognize` retorna um objeto `OcrResult` que contém o texto puro, pontuações de confiança e até informações de layout. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Dica de especialista** – Se você só precisa do texto e não do ePub, pode parar aqui. A propriedade `ocrResult.Text` é uma string limpa que pode ser encaminhada para qualquer outro sistema. + +## Etapa 3 – Salvar o Resultado como um Livro ePub (Converter JPG para ePub) + +O Aspose OCR pode serializar diretamente o resultado do OCR em vários formatos, incluindo ePub. Esta etapa mostra exatamente como **converter JPG para ePub** em uma única linha. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Ao executar o programa, você verá o texto extraído impresso no console e um novo arquivo `book_page.epub` aparecerá ao lado da sua imagem de origem. Abra‑o em qualquer leitor de ePub (Calibre, Apple Books, etc.) e encontrará o texto OCR formatado como um livro de página única. + +### Saída esperada + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Se o ePub abrir corretamente, parabéns—você acabou de concluir um **exemplo de OCR em C#** que transforma um JPEG em um ePub portátil. + +## Etapa 4 – Problemas Comuns ao Converter Imagem para ePub + +Mesmo com uma biblioteca robusta, você pode encontrar alguns obstáculos. Aqui está um FAQ rápido: + +| Problema | Por que acontece | Como corrigir | +|----------|------------------|---------------| +| **Formato de imagem não suportado** | O Aspose OCR espera formatos raster (JPG, PNG, BMP). | Converta a imagem para JPG ou PNG primeiro, por exemplo, com `System.Drawing.Image`. | +| **Saída em branco** | Qualidade de imagem baixa ou compressão excessiva. | Aumente o DPI, use uma digitalização mais clara ou aplique pré‑processamento de imagem (`ocrEngine.Preprocess`). | +| **Fontes ausentes no ePub** | O escritor padrão de ePub usa fontes do sistema que podem não estar incorporadas. | Defina `ocrEngine.Config.FontsDirectory` para uma pasta contendo os arquivos .ttf necessários. | +| **Arquivo ePub grande** | Imagens de alta resolução são incorporadas como páginas separadas. | Use `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Resolver esses pontos antecipadamente economiza tempo de depuração depois. + +## Etapa 5 – Expandindo o Exemplo (Além do Básico) + +Agora que você tem um pipeline funcional de **converter imagem para epub**, pode se perguntar o que mais fazer. Aqui vão algumas ideias para experimentar amanhã: + +1. **Processamento em lote** – Percorra uma pasta de JPGs, gere um ePub por imagem ou mescle‑os em um ePub de múltiplos capítulos. +2. **Seleção de idioma** – Defina `ocrEngine.Language = Language.English;` ou qualquer idioma suportado para melhorar a precisão. +3. **Preservação de layout** – Use `OcrSaveFormat.Html` primeiro, depois envolva o HTML em um ePub para formatação mais rica. +4. **Implantação na nuvem** – Envolva o código em uma Azure Function ou AWS Lambda para oferecer OCR‑para‑ePub como serviço web. + +Cada uma dessas extensões se baseia na lógica central de **como fazer OCR de imagem** que acabamos de cobrir. + +## Código Completo (Pronto para Copiar‑Colar) + +Abaixo está o programa inteiro em um único bloco. Substitua `YOUR_DIRECTORY` pelo caminho real do seu arquivo de imagem. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Lembre‑se** – O pacote NuGet `Aspose.OCR` deve estar instalado, e o runtime .NET alvo deve ser pelo menos .NET 5 para melhor compatibilidade. + +## Conclusão + +Acabamos de abordar **como fazer OCR de imagem** em C# e transformar essas digitalizações em livros ePub limpos—essencialmente um fluxo de **converter JPG para ePub** que você pode inserir em qualquer projeto. Seguindo os passos acima, você será capaz de **extrair texto de imagem**, lidar com casos de borda comuns e expandir a solução para trabalhos em lote ou serviços na nuvem. + +Se estiver curioso sobre o próximo passo lógico, experimente trocar a saída ePub por um PDF (`OcrSaveFormat.Pdf`) ou alimentar o texto OCR em uma API de tradução. O céu é o limite depois que você domina o básico. + +Tem dúvidas sobre um formato de imagem específico, ou quer ver um exemplo de ePub com várias páginas? Deixe um comentário, e eu ficarei feliz em ajudar. Boa codificação e aproveite para transformar imagens em livros! + +![exemplo de como OCR imagem](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/portuguese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..f5ab3627 --- /dev/null +++ b/ocr/portuguese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: reconheça texto russo instantaneamente usando Aspose OCR C#. Aprenda + a reconhecer texto chinês, ler a contagem de páginas de PDF e converter o texto + de páginas de PDF em um único tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: pt +og_description: reconheça texto russo rapidamente usando Aspose OCR C#. Este tutorial + também aborda como reconhecer texto chinês, ler a contagem de páginas de PDF e converter + o texto das páginas de PDF. +og_title: Reconheça texto russo com Aspose OCR C# – Guia Completo +tags: +- Aspose OCR +- C# +- PDF processing +title: reconheça texto russo com Aspose OCR C# – Guia completo de PDF multipágina +url: /pt/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconhecer texto russo com Aspose OCR C# – Tutorial Completo de PDF Multi‑Página + +Já precisou **reconhecer texto russo** em um PDF que mistura idiomas e se perguntou como fazer isso sem precisar de uma ferramenta separada para cada página? Você não está sozinho. Em muitos projetos reais você receberá um único PDF que contém inglês, russo e até chinês em páginas diferentes, e ainda assim deseja uma saída de texto única e limpa. + +Neste guia mostraremos exatamente como **reconhecer texto russo** (e outros idiomas) usando **Aspose OCR C#**, demonstrando também como **ler a contagem de páginas do PDF**, **reconhecer texto chinês**, e **converter texto de página PDF** em um dump de console prático. Sem serviços externos, sem etapas ocultas — apenas código C# puro que você pode copiar‑colar e executar. + +> **O que você levará** +> * Um aplicativo console C# executável que processa um PDF multi‑página. +> * Seleção de idioma por página (Russo, Chinês, Inglês). +> * Técnicas para consultar a contagem de páginas do PDF e extrair o texto de cada página. +> * Dicas, armadilhas e extensões que você pode aplicar aos seus próprios projetos. + +--- + +## Pré‑requisitos + +- .NET 6.0 ou superior (o código também funciona no .NET Framework 4.7+). +- Pacote NuGet **Aspose.OCR for .NET** instalado (`dotnet add package Aspose.OCR`). +- Um arquivo PDF que contenha idiomas misturados; para a demonstração usaremos `mixed_lang.pdf`. +- Familiaridade básica com aplicações console em C#. + +Se estiver faltando algum desses itens, obtenha a versão mais recente do Aspose OCR no NuGet e coloque seu PDF em um local acessível a partir da pasta do projeto. + +--- + +## Etapa 1 – Inicializar o Motor Aspose OCR + +A primeira coisa que você precisa é uma instância de `OcrEngine`. Esse objeto contém todas as configurações (como idioma) e realiza o trabalho pesado. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por que isso importa:** +> O motor é reutilizável, portanto não desperdiçamos memória criando uma nova instância para cada página. Reutilizá‑lo também nos permite mudar o idioma dinamicamente, o que é essencial para **reconhecer texto russo** em uma página e **reconhecer texto chinês** em outra. + +--- + +## Etapa 2 – Carregar o PDF e Descobrir Quantas Páginas Ele Possui + +Antes de começar a reconhecer, precisamos do objeto PDF e da sua contagem de páginas. O Aspose OCR trata cada página como um `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Dica:** Se o PDF for muito grande, você pode querer ler a contagem primeiro e decidir se processa todas as páginas ou apenas um subconjunto. + +--- + +## Etapa 3 – Mapear Cada Página para o Idioma Desejado + +O Aspose OCR suporta muitos idiomas, mas você precisa informar qual usar para cada página. Abaixo criamos um `Dictionary` onde a chave é o índice da página (baseado em zero). + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Por que isso é crucial:** +> Sem esse mapa, o motor OCR tentaria um único idioma padrão para todas as páginas, resultando em saída corrompida para texto russo ou chinês. Esta etapa habilita diretamente **reconhecer texto russo** e **reconhecer texto chinês** corretamente. + +--- + +## Etapa 4 – Percorrer Todas as Páginas, Definir o Idioma e Reconhecer o Texto + +Agora iteramos sobre cada página, trocamos o idioma com base no nosso mapa e chamamos `Recognize`. O resultado é armazenado em `OcrResult`, do qual extraímos o texto puro. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Saída Esperada no Console + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explicação do fluxo:** +> * O loop respeita a **contagem de páginas do PDF** que imprimimos anteriormente. +> * Ao trocar `ocrEngine.Settings.Language` a cada iteração, garantimos o **reconhecimento de texto russo** na página 2 e o **reconhecimento de texto chinês** na página 3. +> * As instruções `Console.WriteLine` efetivamente **convertem texto de página PDF** em uma string legível por humanos. + +--- + +## Etapa 5 – Executar, Verificar e Ajustar + +1. Compile o projeto (`dotnet build`). +2. Execute-o (`dotnet run`). +3. Compare a saída do console com o PDF original. + +Se notar caracteres ausentes, considere: + +- **Aumentar a precisão do OCR** definindo `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Fornecer um pacote de idioma personalizado** caso os dicionários integrados de Russo ou Chinês estejam desatualizados. +- **Ajustar o DPI** ao carregar o PDF (`OcrImage.FromFile(path, 300)`), o que pode melhorar o reconhecimento em digitalizações de baixa resolução. + +--- + +## Bônus: Tratamento de Casos Limite + +### E se o idioma de uma página não estiver no mapa? + +O código já recorre ao inglês, mas você pode adicionar um fallback que registre um aviso: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Podemos processar PDFs com mais de três idiomas? + +Com certeza. Expanda `languageMap` com índices adicionais e valores `OcrLanguage` suportados (por exemplo, `OcrLanguage.French`). O loop lidará com qualquer número de páginas. + +### Como exportar os resultados para um arquivo em vez do console? + +Substitua as chamadas `Console.WriteLine` por `File.AppendAllText("output.txt", …)` ou use um `StringBuilder` que você grava uma única vez após o loop. + +--- + +## Ilustração da Imagem + +![exemplo de reconhecimento de texto russo](/images/recognize-russian-text.png "Captura de tela mostrando a saída OCR para texto russo") + +*A imagem acima demonstra a saída do console quando **reconhecer texto russo** é realizado em um PDF de idiomas mistos.* + +--- + +## Conclusão + +Percorremos um exemplo completo, de ponta a ponta, que mostra como **reconhecer texto russo** (e também **reconhecer texto chinês**) de um PDF multi‑página usando **Aspose OCR C#**. Ao ler a contagem de páginas do PDF, mapear cada página ao idioma correto e percorrer o documento, você pode **converter texto de página PDF** em strings simples prontas para armazenamento, indexação ou análise adicional. + +Resumindo: + +- **Inicialize** um único `OcrEngine`. +- **Carregue** o PDF e **leia a contagem de páginas do PDF**. +- **Mapeie** páginas para idiomas (Russo, Chinês, etc.). +- **Itere**, defina `ocrEngine.Settings.Language` e **reconheça** cada página. +- **Saída** ou salve o texto extraído. + +Sinta‑se à vontade para adaptar esse padrão a documentos maiores, adicionar tratamento de erros ou conectar os resultados a um índice de busca. A ideia central — seleção de idioma por página — permanece a mesma, e é o que torna o **reconhecimento de texto russo** confiável em PDFs de idiomas mistos. + +Tem um cenário diferente, como escanear imagens em vez de PDFs? O mesmo motor funciona; basta substituir `OcrImage.FromFile` por `OcrImage.FromStream` ou `FromBitmap`. Boa codificação, e que seu OCR seja sempre preciso! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/ocr-configuration/_index.md b/ocr/russian/net/ocr-configuration/_index.md index c52b2c30..9a22963e 100644 --- a/ocr/russian/net/ocr-configuration/_index.md +++ b/ocr/russian/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ url: /ru/net/ocr-configuration/ Разблокируйте мощные возможности распознавания с помощью Aspose.OCR для .NET. Легко извлекайте текст из изображений. ### [OCROОперация со списком в распознавании изображений OCR](./ocr-operation-with-list/) Раскройте потенциал Aspose.OCR для .NET. Легко выполняйте распознавание изображений OCR с помощью списков. Повысьте производительность и извлечение данных в ваших приложениях. +### [Как применить лицензию в Aspose OCR – пошаговое руководство C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Узнайте, как применить лицензию Aspose OCR в C# шаг за шагом. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/russian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..6569ce8f --- /dev/null +++ b/ocr/russian/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: Как применить лицензию для Aspose OCR в C#. Узнайте, как читать файл, + установить лицензию Aspose, использовать MemoryStream и эффективно загружать лицензию. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: ru +og_description: Как применить лицензию Aspose OCR в C#. Следуйте этому руководству, + чтобы прочитать файл лицензии, установить лицензию Aspose, использовать MemoryStream + и проверить настройку. +og_title: Как применить лицензию в Aspose OCR – Полный учебник по C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Как применить лицензию в Aspose OCR – пошаговое руководство на C# +url: /ru/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как применить лицензию в Aspose OCR – Полное руководство на C# + +Когда‑нибудь задавались вопросом **как применить лицензию** для Aspose OCR, не разбираясь в расплывчатой документации? Вы не одиноки. Большинство разработчиков сталкиваются с одной и той же проблемой: они могут прочитать файл, но не знают, как правильно передать его в библиотеку. В этом руководстве мы пройдем каждый шаг — от загрузки файла `.lic` с диска до вызова `SetLicense` с `MemoryStream`. К концу вы получите рабочее решение, которое можно вставить в любой .NET‑проект. + +Мы также расскажем, **как безопасно читать файл**, правильный способ **установить лицензию Aspose**, и почему использование **MemoryStream** является самым чистым подходом. Если вам интересно, **как загрузить лицензию** в разных средах, эти подсказки тоже включены. Никаких внешних ссылок не требуется — только готовый к копированию код. + +## Требования + +- .NET 6.0 или новее (код работает как с .NET Core, так и с .NET Framework) +- Установленный NuGet‑пакет Aspose.OCR (`Install-Package Aspose.OCR`) +- Действительный файл `Aspose.OCR.lic`, размещенный в месте, доступном вашему приложению +- Базовые знания C# и Visual Studio (или любой другой IDE по вашему выбору) + +> **Pro tip:** Храните файл лицензии вне папки с исходным кодом, чтобы избежать случайных коммитов. + +## Шаг 1: Как прочитать файл — Загрузка байтов лицензии + +Первое, что нам нужно, — массив байтов лицензии. Использование `File.ReadAllBytes` одновременно простое и эффективное, и оно автоматически бросает понятное исключение, если путь неверен. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Почему это важно:** Чтение файла напрямую в память избавляет от утечек файловых дескрипторов и дает чистый массив байтов для дальнейшей работы. Это также делает метод переиспользуемым в консольных приложениях, веб‑службах или Azure Functions. + +## Шаг 2: Как использовать MemoryStream — Подготовка потока лицензии + +Перегрузка `License.SetLicense` в Aspose ожидает `Stream`. Обернуть массив байтов в `MemoryStream` — идиоматичный способ выполнить это требование без повторного обращения к файловой системе. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Ключевой момент:** `MemoryStream` лёгок и быстро освобождается. Он также позволяет повторно использовать тот же массив байтов для нескольких библиотек, если понадобится применить лицензии более чем одного продукта Aspose. + +## Шаг 3: Установить лицензию Aspose — Суть «как применить лицензию» + +Теперь, когда у нас есть `MemoryStream`, применение лицензии сводится к одной строке. Класс `License` находится в пространстве имён `Aspose.OCR`, поэтому убедитесь, что добавили соответствующую директиву `using`. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Если лицензия недействительна или истекла, `SetLicense` тихо завершится без ошибки, и библиотека будет работать в режиме пробной версии. Чтобы быть полностью уверенными, можно проверить функцию, доступную только в лицензированной версии (например, настройки точности OCR), или просто полагаться на сообщение подтверждения, которое мы выведем позже. + +## Шаг 4: Как загрузить лицензию — Собираем всё вместе + +Ниже представлен полностью готовый к запуску консольный пример, демонстрирующий **как загрузить лицензию** с диска, использовать `MemoryStream` и проверять, что лицензия успешно применена. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Ожидаемый вывод + +``` +License applied successfully. You can now perform OCR operations. +``` + +Если вы видите это сообщение, библиотека полностью лицензирована и готова к производственным задачам OCR. + +## Распространённые ошибки и как их избежать + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| **FileNotFoundException** при чтении лицензии | Неправильный путь или файл не развернут вместе с приложением | Используйте абсолютный путь или внедрите лицензию как ресурс (см. «альтернативная загрузка» ниже) | +| **Лицензия не применена, но нет ошибки** | `SetLicense` тихо переходит в пробный режим, если поток пустой или повреждён | Проверьте `licenseData.Length > 0` перед созданием `MemoryStream` | +| **MemoryStream не освобождается** | Забвение `using` приводит к оставшимся неуправляемым ресурсам | Всегда оборачивайте поток в блок `using`, как показано | + +### Альтернатива: Встраивание лицензии как Embedded Resource + +Если вы не хотите распространять отдельный файл `.lic`, добавьте его в проект, установите **Build Action** в **Embedded Resource** и читайте так: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Затем вызовите `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` и продолжайте работу тем же подходом с `MemoryStream`. + +## Заключение + +Мы рассмотрели **как применить лицензию** для Aspose OCR от начала до конца: чтение файла, создание `MemoryStream`, вызов `SetLicense` и подтверждение активации. Следуя этим шагам, вы исключаете догадки, избегаете типичных ошибок и гарантируете, что ваш OCR‑движок работает в полном режиме. + +Далее вы можете изучить **как асинхронно читать файл** для сервисов с высокой пропускной способностью или погрузиться в продвинутые настройки OCR, теперь когда лицензия загружена корректно. В любом случае схема остаётся той же — читать, поток, установить, проверить. + +Есть вопросы о специфических сценариях, например загрузка лицензии в ASP.NET Core или работа с несколькими лицензиями продуктов Aspose? Оставляйте комментарий ниже, и happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/ocr-optimization/_index.md b/ocr/russian/net/ocr-optimization/_index.md index 1a0003ec..1d529c42 100644 --- a/ocr/russian/net/ocr-optimization/_index.md +++ b/ocr/russian/net/ocr-optimization/_index.md @@ -17,7 +17,6 @@ url: /ru/net/ocr-optimization/ Максимизируйте точность распознавания с помощью учебных пособий Aspose.OCR для .NET. Выполняйте распознавание изображений, подготавливайте прямоугольники, применяйте фильтры предварительной обработки, исправляйте результаты с помощью проверки орфографии и легко сохраняйте многостраничные результаты. - ## Выполните распознавание изображения по URL-адресу в распознавании изображений OCR. Погрузитесь в мир оптического распознавания символов с помощью Aspose.OCR для .NET. Наш урок по[выполнение оптического распознавания изображений с URL-адреса](./perform-ocr-on-image-from-url/) проведет вас через бесшовную интеграцию. Точно распознавайте текст на изображениях, делая ваши приложения умнее. @@ -50,9 +49,14 @@ url: /ru/net/ocr-optimization/ Повысьте точность распознавания с помощью Aspose.OCR для .NET. Исправляйте орфографию, настраивайте словари и без труда добивайтесь безошибочного распознавания текста. ### [Сохранить многостраничный результат как документ в распознавании изображений OCR](./save-multipage-result-as-document/) Раскройте потенциал Aspose.OCR для .NET. С легкостью сохраняйте многостраничные результаты оптического распознавания текста в виде документов с помощью этого подробного пошагового руководства. +### [Предобработка изображения OCR в C# – Повышение точности с Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Узнайте, как предобрабатывать изображения в C# для OCR, повышая точность распознавания с помощью Aspose OCR. +### [Как пакетно выполнять OCR в C# с движком Aspose OCR](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Узнайте, как обрабатывать множество изображений за один проход, используя Aspose OCR в C#. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/russian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..c647ea90 --- /dev/null +++ b/ocr/russian/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-01-01 +description: Как выполнять пакетное распознавание OCR с помощью Aspose OCR Engine + в C#. Научитесь распознавать текст на изображениях и извлекать текст из файлов TIFF + с ускорением на GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: ru +og_description: Как выполнять пакетное OCR в C# с помощью Aspose OCR Engine. Это руководство + показывает, как распознавать текст на изображениях и эффективно извлекать текст + из файлов TIFF. +og_title: Как выполнить пакетное OCR в C# – Полное руководство Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Как пакетно выполнять OCR в C# с помощью движка Aspose OCR +url: /ru/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как выполнять пакетное OCR в C# с Aspose OCR Engine + +Когда‑нибудь задавались вопросом **как выполнять пакетное OCR**, когда у вас есть десятки отсканированных документов, лежащих в папке? Вы не одиноки — многие разработчики сталкиваются с этой проблемой, переходя от распознавания одного изображения к обработке целой коллекции. Хорошая новость в том, что Aspose OCR делает это проще простого, независимо от того, работаете ли вы на CPU или используете ускорение GPU. + +В этом руководстве мы пройдем полный, готовый к запуску пример, который **распознает текст с изображений** и даже **извлекает текст из TIFF**‑файлов пакетно. Никаких расплывчатых «см. документацию» обходных путей — только автономное решение, которое вы можете скопировать‑вставить и запустить уже сегодня. + +## Предварительные требования + +Перед тем как начать, убедитесь, что у вас есть: + +* .NET 6.0 или новее (код нацелен на .NET 6, но .NET 5 тоже работает). +* NuGet‑пакет Aspose.OCR для .NET (доступны версии для CPU и GPU; установите ту, которая соответствует вашему оборудованию). +* Папка с несколькими образцами файлов TIFF или PNG, которые вы хотите обработать. +* Visual Studio 2022 или любая другая IDE по вашему выбору. + +> **Pro tip:** Если планируете использовать версию с GPU, убедитесь, что драйвер видеокарты обновлен, а CUDA 11+ установлен. При отсутствии совместимого GPU движок автоматически переключится на CPU. + +## Шаг 1 – Настройка проекта и установка Aspose.OCR + +### H2: Создайте новое консольное приложение и добавьте Aspose.OCR + +Откройте терминал (или консоль диспетчера пакетов в Visual Studio) и выполните: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Если у вас есть лицензия с поддержкой GPU, добавьте вместо этого пакет GPU: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Вот и всё — ваш проект теперь ссылается на OCR‑библиотеку, которую мы будем использовать для **пакетного OCR**. + +## Шаг 2 – Инициализация OCR‑движка (CPU или GPU) + +### H2: Как выполнять пакетное OCR – Инициализация движка + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Почему это важно:** Переключая `UseGpu`, вы позволяете Aspose выбрать самый быстрый путь. Если GPU недоступен, движок тихо переключается обратно на CPU, поэтому ваш пакетный процесс никогда не падает из‑за отсутствующего оборудования. + +## Шаг 3 – Сбор файлов для обработки + +### H2: Распознавание текста с изображений – Формирование списка файлов + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Примечание о граничных случаях:** Если у вас смешанный набор форматов, измените шаблон поиска на `"*.*"` и отфильтруйте по расширению внутри цикла. Это сохраняет гибкость пакетной обработки. + +## Шаг 4 – Обработка каждого изображения и предварительный просмотр + +### H2: Извлечение текста из TIFF – Проход по файлам + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Что вы увидите:** Для каждого TIFF консоль выводит что‑то вроде: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Этот предварительный просмотр подтверждает, что пакет успешно завершён, без необходимости открывать каждый файл вручную. + +## Шаг 5 – Сохранение результатов (необязательно, но удобно) + +### H3: Сохранение OCR‑вывода в текстовые файлы + +Если вам нужен полный текст для последующей обработки, добавьте следующий код внутри цикла `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Теперь каждый TIFF получает сопутствующий файл `.txt` с полным результатом OCR — идеально для индексации, поиска или передачи в языковую модель. + +## Шаг 6 – Запуск демо и проверка + +1. Сборка проекта: `dotnet build`. +2. Запуск: `dotnet run --project GpuBatchDemo.csproj`. + +Вы должны увидеть строки предварительного просмотра в консоли, а (если вы добавили необязательный шаг) серию файлов `.txt` рядом с исходными изображениями. + +### H3: Распространённые ошибки и способы их исправления + +| Симптом | Вероятная причина | Решение | +|---------|-------------------|---------| +| **Empty `ocrResult.Text`** | Изображение слишком тёмное или низкое DPI | Предобработайте изображения (увеличьте контраст, масштабируйте) или установите `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Устаревший драйвер | Обновите драйвер GPU или установите `UseGpu = false`, чтобы принудительно использовать CPU. | +| **Exception “File not found”** | Неправильный разделитель пути в Linux/macOS | Используйте `Path.Combine` или прямые слеши (`/`). | + +## Шаг 7 – Масштабирование (больше нескольких файлов) + +Когда количество TIFF переходит от десятков к тысячам, учитывайте: + +* **Параллельная обработка:** Оберните `foreach` в `Parallel.ForEach` (убедитесь, что экземпляр движка потокобезопасен; иначе создавайте отдельный экземпляр на каждый поток). +* **Пакетный ввод/вывод:** Читайте изображения партиями, чтобы не исчерпать ОЗУ. +* **Логирование:** Записывайте прогресс в лог‑файл; это помогает возобновить работу после сбоя. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Remember:** Память GPU общая, поэтому запуск слишком большого количества параллельных GPU‑задач может фактически замедлить процесс. Сначала протестируйте с небольшим числом потоков. + +## Полный рабочий пример (готовый к копированию) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Запуск этой программы **распознает текст с изображений**, **извлечёт текст из TIFF** и продемонстрирует **как выполнять пакетное OCR** эффективно. + +## Заключение + +У вас теперь есть надёжный сквозной пример **как выполнять пакетное OCR** в C# с использованием OCR‑движка Aspose. Руководство охватывало всё: от настройки проекта, переключения ускорения GPU, формирования списка файлов, обработки каждого изображения и сохранения результатов. Независимо от того, извлекаете ли вы текст из TIFF‑файлов или любого другого формата, тот же шаблон применим — просто замените расширения файлов. + +Готовы к следующему шагу? Попробуйте интегрировать вывод OCR в поисковый индекс, передать текст в большую языковую модель или поэкспериментировать с параллельной обработкой, чтобы сократить время обработки огромных пакетов. Возможности безграничны, а у вас уже есть фундамент для дальнейшего развития. + +Есть вопросы или хотите поделиться своими приёмами пакетного OCR? Оставьте комментарий ниже — happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/russian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..fe580a74 --- /dev/null +++ b/ocr/russian/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,270 @@ +--- +category: general +date: 2026-01-01 +description: Предобработка изображения OCR для повышения точности. Узнайте, как распознавать + текст на изображении, улучшать точность OCR, загружать изображение OCR и отображать + текст OCR с помощью Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: ru +og_description: Предобработка изображения OCR для повышения точности. Это руководство + показывает, как распознавать текст на изображении, загружать изображение в OCR, + применять фильтры и отображать текст OCR. +og_title: Предобработка изображений OCR в C# — повысите точность с помощью Aspose + OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Предобработка изображений OCR в C# – Повышение точности с Aspose OCR +url: /ru/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Повышение точности с Aspose OCR + +Задумывались ли вы когда‑нибудь, как **preprocess image ocr**, чтобы движок действительно читал то, что находится на странице? Вы не одиноки — большинство разработчиков сталкиваются с проблемой, когда шумный, наклонённый скан отказывается сотрудничать. Хорошая новость в том, что несколько умных шагов предобработки могут превратить изображение‑катастрофу в чистый, читаемый текст. + +В этом руководстве мы пройдем полный, готовый к запуску пример, который **recognize text image** файлы, **improve OCR accuracy**, и в конце **display OCR text** в консоли. К концу вы узнаете, как **load image OCR** ресурсы, подключать фильтры, такие как коррекция наклона и подавление шума, и получать надёжные результаты — всё это с Aspose.OCR для .NET. + +## Что вы узнаете + +- Как создать экземпляр `OcrEngine` и настроить фильтры предобработки. +- Почему коррекция наклона и фильтры подавления шума важны для **improve OCR accuracy**. +- Точный код для **load image ocr** файлов и запуска распознавания. +- Как **display OCR text** в удобном для пользователя виде. +- Советы, подводные камни и необязательные настройки, которые можно применить в реальных проектах. + +### Предварительные требования + +- .NET 6+ (или .NET Framework 4.7+) установлен на вашем компьютере. +- Лицензия Aspose.OCR (бесплатная пробная версия подходит для этой демонстрации). +- Базовые знания C# — никаких продвинутых трюков не требуется. + +Если что‑то из этого вам незнакомо, просто сделайте паузу и установите недостающие компоненты; остальная часть руководства предполагает, что они уже есть. + +--- + +## preprocess image ocr – Настройка фильтров + +Первое, что вам нужно понять, — **why preprocessing matters**. OCR‑движки отлично читают чёткий, прямой текст, но реальные сканы часто страдают от вращения, размытия или фонового шума. Передавая очищенное изображение движку, вы значительно повышаете шансы на правильную транскрипцию. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Что происходит здесь?** +- **Step 1** создаёт движок — ядро библиотеки Aspose OCR. +- **Step 2** подключает два фильтра. `SkewCorrectionFilter` вращает изображение обратно в горизонтальное положение, а `DenoiseFilter` сглаживает шум на уровне пикселей. +- **Step 3** необязателен, но полезен; вы можете ограничить максимальный угол, который движок будет пытаться исправить, предотвращая пере‑вращение уже прямых страниц. +- **Step 4** — это место, где вы **load image OCR** данные. Замените `YOUR_DIRECTORY/skewed_noisy.jpg` на путь к вашему тестовому файлу. +- **Step 5** фактически запускает OCR и создаёт `OcrResult`. +- **Step 6** **display OCR text** в консоли, предоставляя мгновенную обратную связь. + +> **Pro tip:** Если вы заметите, что вывод всё ещё содержит искажённые символы, попробуйте увеличить `MaxAngle` или добавить `ContrastFilter` перед шагом подавления шума. + +--- + +## recognize text image – Правильная загрузка файлов + +Распространённая проблема — **load image ocr** с неправильным форматом или DPI. Aspose.OCR поддерживает PNG, JPEG, TIFF, BMP и даже изображения на основе PDF. Однако движок лучше всего работает с 300 DPI и выше для печатных документов. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Если вы работаете с многостраничным TIFF, вы можете перебрать каждый кадр: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Более высокое разрешение сохраняет форму каждого символа, предоставляя распознавателю больше точек данных. Изображения с низким DPI часто приводят к слиянию или разрушению глифов, которые движок будет интерпретировать неверно. + +--- + +## improve OCR accuracy – Настройка параметров фильтров + +Настройки фильтров по умолчанию являются хорошей отправной точкой, но из них можно выжать дополнительную производительность. + +| Фильтр | Ключевое свойство | Типичное значение | Когда корректировать | +|--------|-------------------|-------------------|----------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (градусов) | Изображения, сильно наклонённые (до 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Очень шумные сканы; увеличить до `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Снимки экрана с низким контрастом. | + +Пример настройки обоих: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Если ваше изображение содержит как рукописные заметки, так и печатный текст, возможно, стоит добавить `BinarizationFilter` перед подавлением шума, чтобы отделить передний план от фона. + +--- + +## display OCR text – Форматирование вывода + +Простой вывод в консоль подходит для демонстраций, но в продакшн‑коде часто нужны очищенные строки, разрывы строк или даже JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Если вам нужен JSON для ответа API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Теперь вы **display OCR text** в формате, который могут использовать downstream‑сервисы. + +--- + +## Полный рабочий пример – собрать всё вместе + +Ниже представлен окончательный, автономный пример программы, который вы можете скопировать и вставить в новый консольный проект. Он включает необязательные фильтры, загрузку изображения высокого разрешения и чистый вывод. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Ожидаемый вывод в консоль (пример):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Если вы запустите программу с другим файлом, текст и степень уверенности изменятся соответственно. + +--- + +## Часто задаваемые вопросы и ответы + +**Q: Что если мое изображение уже прямое?** +**A:** Фильтр коррекции наклона обнаружит почти нулевой угол и фактически не будет выполнять никаких действий, поэтому его можно оставлять включённым. + +**Q: Поддерживает ли Aspose.OCR языки, отличные от английского?** +**A:** Да — просто установите `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (или любой поддерживаемый язык) перед вызовом `Recognize`. + +**Q: Как обрабатывать многостраничные PDF?** +**A:** Преобразуйте каждую страницу в изображение (это может сделать Aspose.PDF) и передавайте их по одной в тот же экземпляр `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/text-recognition/_index.md b/ocr/russian/net/text-recognition/_index.md index cbc7a99c..3d6f7d3d 100644 --- a/ocr/russian/net/text-recognition/_index.md +++ b/ocr/russian/net/text-recognition/_index.md @@ -35,7 +35,7 @@ url: /ru/net/text-recognition/ ## Распознать PDF в распознавании изображений OCR -Раскройте потенциал оптического распознавания символов в .NET с помощью Aspose.OCR. Легко извлекайте текст из PDF-файлов и легко интегрируйте его в свои приложения. В этом руководстве представлено подробное руководство по распознаванию текста в PDF-файлах, обеспечивающее плавную и эффективную интеграцию. +Раскройте потенциал оптического распознавания символов в .NET с помощью Aspose.OCR. Легко извлекайте текст из PDF-файлов и легко интегрируйте его в свои приложения. В этом руководстве представлено подробное руководство по распознаванию текста в PDF-файлах, обеспечующее плавную и эффективную интеграцию. ## Распознать таблицу в распознавании изображений OCR @@ -55,9 +55,18 @@ url: /ru/net/text-recognition/ Раскройте потенциал оптического распознавания символов в .NET с помощью Aspose.OCR. Извлекайте текст из PDF-файлов без особых усилий. Загрузите сейчас и получите беспрепятственную интеграцию. ### [Распознать таблицу в распознавании изображений OCR](./recognize-table/) Раскройте потенциал Aspose.OCR для .NET с помощью нашего подробного руководства по распознаванию таблиц в распознавании изображений OCR. +### [c# OCR учебник: извлечение текста из изображения с Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Извлеките текст из изображений в .NET с помощью Aspose OCR, следуя пошаговому руководству на C#. +### [c# OCR учебник: извлечение текста из изображений и экспорт в JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Извлеките текст из изображений с помощью Aspose OCR в .NET и экспортируйте результаты в формат JSON. +### [Как распознать изображение в C# – Конвертировать JPG в ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Извлеките текст из JPG‑изображения и преобразуйте его в ePub с помощью Aspose OCR на C#. +### [Распознать русский текст с Aspose OCR C# – Полное руководство по многостраничному PDF](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Извлеките русский текст из многостраничных PDF-файлов с помощью Aspose OCR на C# в полном пошаговом руководстве. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..04f6b253 --- /dev/null +++ b/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# учебник по OCR, показывающий, как извлекать текст из изображения, + выполнять OCR для JPG‑файлов с помощью Aspose OCR. Узнайте, как загрузить изображение + для OCR и получить точные результаты. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: ru +og_description: c# OCR‑урок, который пошагово покажет, как извлекать текст из изображения, + выполнять OCR на JPG и загружать изображения для OCR с помощью Aspose. +og_title: C# OCR‑урок – Извлечение текста из изображения с помощью Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# OCR учебник: извлечение текста из изображения с помощью Aspose OCR' +url: /ru/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – Извлечение текста из изображения с Aspose OCR + +Ищете **c# ocr tutorial**, который действительно работает? В этом руководстве мы покажем, как **извлекать текст из изображения** и **выполнять OCR для файлов JPG** с использованием библиотеки Aspose.OCR. Независимо от того, создаёте ли вы сканер чеков, архиватор документов или просто хотите читать текст с картинок, приведённые ниже шаги помогут вам перейти от нуля к работающему коду за несколько минут. + +Мы рассмотрим всё, что вам нужно: установку пакета, загрузку изображения для OCR, настройку языковых ресурсов, запуск движка распознавания и обработку самых распространённых подводных камней. К концу вы получите автономное консольное приложение, которое выводит распознанный текст в консоль — без внешних сервисов. + +## Что понадобится + +- .NET 6.0 или новее (код также работает с .NET Framework 4.6+) +- Visual Studio 2022, VS Code или любой другой редактор C# по вашему выбору +- Файл изображения, содержащий русский (кириллический) текст, например `receipt_ru.jpg` +- Интернет‑соединение для первого запуска (Aspose автоматически загрузит языковые ресурсы) + +Если у вас уже есть всё это, отлично — давайте начнём. + +## Шаг 1: Установить Aspose.OCR и создать новый проект + +Сначала добавьте NuGet‑пакет Aspose.OCR в ваш проект. Откройте терминал в папке решения и выполните: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Используйте флаг `--version`, чтобы зафиксировать последнюю стабильную версию, например `Aspose.OCR 23.9.0`. + +Далее создайте простой консольный проект (пропустите этот шаг, если он у вас уже есть): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Теперь у вас чистый шаблон, в который позже можно вставить полный пример кода. + +## Шаг 2: Загрузка изображения для OCR + +Загрузка изображения — первый функциональный шаг в любом **c# ocr tutorial**. Aspose.OCR принимает путь к файлу, поток или даже `Bitmap`. Для нашего примера будем использовать простой вариант загрузки с диска: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** Явно загружая изображение, вы даёте движку чёткую цель, что повышает точность — особенно при работе с многостраничными PDF или смешанными форматами. + +## Шаг 3: Настройка языка и автоматической загрузки ресурсов + +Aspose.OCR поставляется с языковыми пакетами, которые можно загружать по требованию. Включение авто‑загрузки гарантирует, что движок получит русские языковые данные при первом запуске кода. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` убирает необходимость вручную скачивать файлы `.dat`. +> • Установка `Language` сообщает движку, какой набор символов ожидать, что значительно ускоряет и улучшает распознавание. + +## Шаг 4: Запуск OCR и получение распознанного текста + +Теперь происходит основная работа. Метод `Recognize` обрабатывает изображение и возвращает объект `OcrResult`, содержащий извлечённую строку. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +При выполнении программы вы должны увидеть что‑то вроде: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** Точный вывод зависит от качества исходного изображения, но нейронный движок Aspose обычно справляется с чистыми чеками и печатными формами с высокой точностью. + +## Полный рабочий пример + +Ниже представлен **полный, исполняемый код**, объединяющий все шаги. Скопируйте его в `Program.cs`, замените `YOUR_DIRECTORY` на реальный путь к папке и выполните `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Если нужно **извлекать текст из изображения** файлов, отличных от JPG (PNG, BMP, TIFF), просто измените расширение — Aspose поддерживает их все. + +## Шаг 5: Распространённые проблемы и профессиональные советы + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| **Непонятные символы** | Низкое разрешение изображения или сильное сжатие | Используйте изображение более высокого качества или предобработайте его с помощью `Bitmap` (например, увеличьте контраст) | +| **Язык не распознан** | Языковой пакет не загружен | Убедитесь, что `AutoDownloadResources` установлен в `true`, и у машины есть доступ к интернету при первом запуске | +| **Null `ocrResult.Text`** | Неправильный путь к изображению или файл отсутствует | Проверьте путь, используйте `File.Exists` перед загрузкой | +| **Задержка производительности** | Большая партия изображений обрабатывается последовательно | Переиспользуйте один экземпляр `OcrEngine` для нескольких вызовов | + +### Бонус: Чтение нескольких файлов в цикле + +Если нужно **выполнять OCR для JPG** файлов в папке, оберните логику в `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Этот шаблон хорошо масштабируется для конвейеров обработки чеков. + +## Заключение + +Вы только что завершили **c# ocr tutorial**, показывающий, как **извлекать текст из изображения**, **выполнять OCR для JPG** и **загружать изображение для OCR** с помощью Aspose.OCR. Пример программы демонстрирует весь процесс — от установки NuGet‑пакета до вывода распознанного кириллического текста — так что вы можете сразу скопировать его в любой .NET‑проект. + +Готовы к следующему шагу? Попробуйте заменить `OcrLanguage.Russian` на `OcrLanguage.English`, чтобы распознавать английские чеки, или поэкспериментировать с параметрами `OcrEngine.Settings` (например, `PageSegmentationMode`, `ImagePreprocessing`) для тонкой настройки точности. Вы также можете интегрировать вывод в базу данных, генерировать PDF‑файлы или передавать его в API перевода. + +Если возникнут проблемы, обратитесь к документации Aspose.OCR или оставьте комментарий ниже. Приятного кодинга, и пусть результаты OCR всегда будут кристально чистыми! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..e6256f90 --- /dev/null +++ b/ocr/russian/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-01-01 +description: Учебник по OCR на C#, показывающий, как извлекать текст, загружать изображение + для OCR и записывать JSON в файл с использованием Aspose.OCR – пошаговое руководство. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: ru +og_description: Учебник по OCR на C#, который пошагово покажет, как извлекать текст + из изображений, загружать изображение для OCR и записывать JSON в файл с помощью + Aspose.OCR. +og_title: c# OCR tutorial – Извлечение текста и экспорт в JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: C# OCR‑урок – извлечение текста из изображений и экспорт в JSON +url: /ru/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – Извлечение текста из изображений и экспорт в JSON + +Ever wondered how to extract text from a scanned invoice without spending hours writing custom parsers? You're not alone. In this **c# OCR tutorial** we’ll show you exactly how to load an image for OCR, run the recognition engine, and then **write JSON to file** so you can feed the data into downstream systems. + +Imagine you have a folder of receipts, each named `receipt1.png`, `receipt2.png`, and you need a quick way to turn them into searchable JSON records. That's the problem we’ll solve, and by the end you’ll have a ready‑to‑run console app that does just that. No extra dependencies beyond Aspose.OCR, and no magic—just clear, reproducible steps. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Prerequisites + +- .NET 6 SDK or later (the code works on .NET Core as well). +- Visual Studio 2022 or any editor you prefer. +- Aspose.OCR NuGet package (`Install-Package Aspose.OCR`). +- An image file (PNG, JPG, BMP) you’d like to process – for demo we’ll use `invoice.png`. + +If you’re missing any of these, grab the SDK from Microsoft’s site and add the NuGet package via the Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Now that the groundwork is set, let’s dive into the actual implementation. + +## Step 1: c# OCR tutorial – Initialize the OCR Engine + +Before we can **load image for OCR**, we need an instance of the engine that will drive the recognition process. The `OcrEngine` class is lightweight, but it’s good practice to wrap it in a `using` block so resources are released promptly. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* If you plan to process many images in a batch, reuse the same `OcrEngine` instance instead of creating a new one each time. It reduces memory churn and speeds things up. + +## Step 2: Load image for OCR + +Now we actually **load image for OCR**. Aspose.OCR supports a variety of formats, so you can point it at a PNG, JPEG, or even a multi‑page TIFF. The `OcrImage.FromFile` method reads the file and prepares it for recognition. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Loading the image separately lets you inspect its dimensions, DPI, or even pre‑process it (e.g., binarization) before sending it to the engine. If the image is corrupted, `FromFile` will throw a clear exception, which you can catch and log. + +## Step 3: How to extract text – Run the recognition + +With the image in hand, we can finally **how to extract text** from it. The `Recognize` method returns an `OcrResult` object that contains not only the plain text but also positional data and confidence scores for each word. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Some PDFs contain invisible text layers. If you feed a PDF page rendered as an image, the engine may see nothing. In those cases, consider using Aspose.PDF to extract the hidden layer first, then fall back to OCR only when needed. + +## Step 4: OCR image to JSON – Convert the result + +The `OcrResult` class offers a convenient `ToJson()` helper that serializes the entire result set—including each word’s bounding box and confidence—into a JSON string. This is the cleanest way to achieve **OCR image to JSON** without writing your own serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +If you prefer a custom schema, you can iterate over `ocrResult.Words` and build your own object, but for most scenarios the built‑in JSON is sufficient and already well‑structured. + +## Step 5: Write JSON to file + +Now comes the final piece of the puzzle: persisting the JSON payload. The `File.WriteAllText` method ensures the file is created (or overwritten) atomically. Be sure the target directory exists, otherwise you’ll hit a `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* If you need UTF‑8 with BOM or a different encoding, use the overload that accepts an `Encoding` argument. + +## Step 6: Verify the output + +A quick `Console.WriteLine` tells us the process completed successfully. You can also open the JSON file in a viewer to confirm the structure. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +The JSON includes each word’s location, which is handy if you later want to highlight text in a UI. + +## Full Working Example + +Below is the complete, copy‑and‑paste‑ready program. Replace `YOUR_DIRECTORY` with the actual path where your image resides. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Run the program (`dotnet run` from the project folder) and you’ll find `invoice.json` alongside your original PNG. + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | Path typo or missing file | Use `Path.Combine` and check `File.Exists` before calling `FromFile`. | +| **Low confidence scores** | Poor image quality, low DPI | Pre‑process with `ocrImage.AdjustContrast` or upscale the image to 300 DPI. | +| **JSON file empty** | `ocrResult` returned null (engine failed) | Verify that the image format is supported and that the license (if any) is correctly applied. | +| **Performance bottleneck on large batches** | Re‑creating `OcrEngine` each iteration | Reuse a single `OcrEngine` instance across the batch, disposing only at the end. | + +## Next Steps + +Now that you’ve mastered the **c# OCR tutorial**, you might want to: + +- **Batch process** an entire folder and aggregate the JSON files into a single database. +- **Integrate** the output with Azure Cognitive Search for searchable PDFs. +- **Add language support** by setting `ocrEngine.Language = OcrLanguage.Spanish` (or any supported language). +- **Post‑process** the JSON to extract tables or key‑value pairs using regular expressions. + +Each of these extensions builds on the core concepts we covered: loading images for OCR, extracting text, converting to JSON, and writing that JSON to disk. + +--- + +### Conclusion + +In this **c# OCR tutorial** we walked through every step required to **load image for OCR**, **how to extract text**, transform the result into an **OCR image to JSON** payload, and finally **write JSON to file**. The complete code example is ready to drop into any .NET project, and the explanations give you the context you need to adapt the solution to real‑world scenarios. + +Give it a try with your own set of receipts or invoices—tweak the image preprocessing, experiment with different languages, and watch the JSON output grow. If you hit any snags, revisit the pitfalls table or drop a comment below. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/russian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..17815c14 --- /dev/null +++ b/ocr/russian/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Узнайте, как выполнять OCR изображения в C# и конвертировать JPG в ePub + с помощью Aspose OCR. Это пошаговое руководство также показывает, как извлекать + текст из изображения. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: ru +og_description: Как выполнить OCR изображения в C#? Следуйте этому руководству, чтобы + извлечь текст из изображения и преобразовать JPG в ePub с помощью Aspose OCR. +og_title: Как распознать изображение в C# – Конвертировать JPG в ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Как выполнить OCR изображения в C# – преобразовать JPG в ePub +url: /ru/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как выполнить OCR изображения в C# – Конвертация JPG в ePub + +Задумывались ли вы **как выполнить OCR изображения** напрямую из консольного приложения C#? Вы не одиноки. Многие разработчики сталкиваются с проблемой, когда нужно извлечь текст из фотографии и упаковать его в читаемую книгу ePub. + +В этом руководстве мы пройдем полный, готовый к запуску пример, который **извлекает текст из изображения**, сохраняет результат в виде ePub и показывает, как **конвертировать JPG в ePub** не выходя из IDE. Без лишних слов, только код, который можно скопировать‑вставить и запустить уже сегодня. + +## Что вы узнаете + +- Как настроить движок Aspose OCR в проекте .NET. +- Точные шаги для **конвертации изображения в epub** с использованием опции `OcrSaveFormat.Epub`. +- Советы по работе с распространенными проблемами, такими как неподдерживаемые форматы изображений или отсутствие шрифтов. +- Полную программу на C#, которую можно сразу собрать и выполнить. + +**Требования**: .NET 6 SDK (или любая современная версия .NET), действующий пакет Aspose.OCR из NuGet и файл изображения (`input.jpg`), который вы хотите обработать. Если вы никогда не пользовались NuGet, просто откройте консоль диспетчера пакетов и выполните `Install-Package Aspose.OCR`. + +Готовы? Поехали. + +## Шаг 1 – Как выполнить OCR изображения и загрузить источник + +Первое, что нужно, — это экземпляр OCR‑движка и исходное изображение. Aspose OCR делает это простым: вы создаёте `OcrEngine`, а затем передаёте ему `OcrImage`, загруженный с диска. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Почему это важно** – Инициализация движка один раз снижает потребление памяти, а ранняя загрузка изображения позволяет проверить путь к файлу до начала тяжёлой OCR‑работы. + +## Шаг 2 – Запуск OCR и извлечение текста из изображения + +Теперь, когда изображение находится в памяти, попросите движок распознать символы. Метод `Recognize` возвращает объект `OcrResult`, содержащий чистый текст, оценки уверенности и даже информацию о разметке. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Профессиональный совет** – Если вам нужен только текст, а не ePub, можно остановиться здесь. Свойство `ocrResult.Text` представляет собой чистую строку, которую можно передать в любую другую систему. + +## Шаг 3 – Сохранение результата в виде книги ePub (Конвертация JPG в ePub) + +Aspose OCR может напрямую сериализовать результат OCR в несколько форматов, включая ePub. Этот шаг показывает, как **конвертировать JPG в ePub** одной строкой. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +При запуске программы вы увидите извлечённый текст в консоли и появление нового файла `book_page.epub` рядом с исходным изображением. Откройте его в любом читалке ePub (Calibre, Apple Books и т.д.) — OCR‑текст будет красиво отформатирован как одностраничная книга. + +### Ожидаемый вывод + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Если ePub открывается корректно, поздравляем — вы только что завершили полный **пример OCR на C#**, который превращает JPEG в переносимый ePub. + +## Шаг 4 – Распространённые проблемы при конвертации изображения в ePub + +Даже при надёжной библиотеке могут возникнуть трудности. Ниже быстрый FAQ: + +| Проблема | Почему происходит | Как исправить | +|----------|-------------------|---------------| +| **Неподдерживаемый формат изображения** | Aspose OCR ожидает растровые форматы (JPG, PNG, BMP). | Сначала конвертируйте изображение в JPG или PNG, например с помощью `System.Drawing.Image`. | +| **Пустой вывод** | Низкое качество изображения или сильное сжатие. | Увеличьте DPI, используйте более чёткое сканирование или примените предварительную обработку (`ocrEngine.Preprocess`). | +| **Отсутствие шрифтов в ePub** | Стандартный писатель ePub использует системные шрифты, которые могут не быть встроены. | Установите `ocrEngine.Config.FontsDirectory` на папку с необходимыми .ttf‑файлами. | +| **Большой размер ePub** | Высокое разрешение изображений встраивается как отдельные страницы. | Используйте `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Решение этих вопросов на ранних этапах экономит время на отладку позже. + +## Шаг 5 – Расширение примера (Выход за пределы базового) + +Теперь, когда у вас есть рабочий конвейер **конвертации изображения в epub**, можно задуматься о дальнейшем развитии. Вот несколько идей, которые можно попробовать уже завтра: + +1. **Пакетная обработка** – Переберите папку с JPG‑файлами, создавая по одному ePub на изображение, либо объедините их в много‑главный ePub. +2. **Выбор языка** – Установите `ocrEngine.Language = Language.English;` или любой поддерживаемый язык для повышения точности. +3. **Сохранение разметки** – Сначала используйте `OcrSaveFormat.Html`, а затем оберните HTML в ePub для более богатого форматирования. +4. **Развёртывание в облаке** – Оберните код в Azure Function или AWS Lambda, чтобы предлагать OCR‑в‑ePub как веб‑сервис. + +Каждое из этих расширений опирается на ядро **как выполнить OCR изображения**, которое мы только что рассмотрели. + +## Полный рабочий код (Готов к копированию) + +Ниже представлен весь код программы в одном блоке. Замените `YOUR_DIRECTORY` на реальный путь к вашему файлу изображения. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Помните** – Пакет `Aspose.OCR` из NuGet должен быть установлен, а целевая среда .NET должна быть как минимум .NET 5 для лучшей совместимости. + +## Заключение + +Мы только что рассмотрели **как выполнить OCR изображения** в C# и превратили эти сканы в чистые книги ePub — по сути, рабочий процесс **конвертации JPG в ePub**, который можно внедрить в любой проект. Следуя описанным шагам, вы сможете **извлекать текст из изображения**, справляться с типичными проблемами и расширять решение до пакетных заданий или облачных сервисов. + +Если хотите следующий шаг, попробуйте заменить вывод ePub на PDF (`OcrSaveFormat.Pdf`) или передать OCR‑текст в API перевода. Возможности безграничны, как только вы освоите основы. + +Есть вопросы по конкретному формату изображения или хотите увидеть пример много‑страничного ePub? Оставляйте комментарий, и я с радостью помогу. Счастливого кодинга и приятного превращения картинок в книги! + +![пример OCR изображения](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/russian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/russian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..f79ecd4a --- /dev/null +++ b/ocr/russian/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-01-01 +description: Мгновенно распознавайте русский текст с помощью Aspose OCR C#. Узнайте, + как распознавать китайский текст, определять количество страниц PDF и извлекать + текст со страниц PDF в одном руководстве. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: ru +og_description: Быстро распознавать русский текст с помощью Aspose OCR C#. Этот учебник + также охватывает, как распознавать китайский текст, читать количество страниц PDF + и конвертировать текст страниц PDF. +og_title: Распознавание русского текста с помощью Aspose OCR C# – Полное руководство +tags: +- Aspose OCR +- C# +- PDF processing +title: Распознавание русского текста с помощью Aspose OCR C# – полное руководство + по многостраничному PDF. +url: /ru/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# распознавание русского текста с Aspose OCR C# – Полный учебник по многостраничному PDF + +Когда‑нибудь вам нужно было **распознать русский текст** в PDF, который содержит несколько языков, и вы задавались вопросом, как сделать это без использования отдельного инструмента для каждой страницы? Вы не одиноки. Во многих реальных проектах вы получаете один PDF, содержащий английский, русский и даже китайский на разных страницах, и при этом хотите получить единый чистый текстовый вывод. + +В этом руководстве мы покажем вам, как именно **распознать русский текст** (и другие языки) с помощью **Aspose OCR C#**, а также продемонстрируем, как **прочитать количество страниц PDF**, **распознать китайский текст** и **преобразовать текст страниц PDF** в удобный вывод в консоль. Никаких внешних сервисов, никаких скрытых шагов — только чистый C# код, который вы можете скопировать и запустить. + +> **Что вы получите** +> * Работоспособное C# консольное приложение, обрабатывающее многостраничный PDF. +> * Выбор языка для каждой страницы (Russian, Chinese, English). +> * Техники запроса количества страниц PDF и извлечения текста каждой страницы. +> * Советы, подводные камни и расширения, которые вы можете применить в своих проектах. + +--- + +## Prerequisites + +- .NET 6.0 или новее (код также работает на .NET Framework 4.7+). +- Пакет NuGet **Aspose.OCR for .NET**, установленный (`dotnet add package Aspose.OCR`). +- PDF‑файл, содержащий несколько языков; для демонстрации будем использовать `mixed_lang.pdf`. +- Базовое знакомство с консольными приложениями C#. + +Если у вас отсутствует что‑то из перечисленного, скачайте последнюю версию Aspose OCR из NuGet и разместите ваш PDF в доступном для проекта месте. + +--- + +## Step 1 – Initialize the Aspose OCR Engine + +Первое, что вам нужно, — это экземпляр `OcrEngine`. Этот объект хранит все настройки (например, язык) и выполняет основную работу. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Почему это важно:** +> Движок переиспользуемый, поэтому мы не тратим память, создавая новый экземпляр для каждой страницы. Повторное использование также позволяет менять язык «на лету», что необходимо для **распознавания русского текста** на одной странице и **распознавания китайского текста** на другой. + +--- + +## Step 2 – Load the PDF and Find Out How Many Pages It Has + +Прежде чем начать распознавание, нам нужен объект PDF и количество его страниц. Aspose OCR рассматривает каждую страницу как `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Подсказка:** Если PDF огромный, возможно, стоит сначала прочитать количество страниц и решить, обрабатывать все страницы или только их часть. + +--- + +## Step 3 – Map Each Page to Its Desired Language + +Aspose OCR поддерживает множество языков, но вы должны указать, какой использовать для каждой страницы. Ниже мы создаём `Dictionary`, где ключ — нулевой индекс страницы. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Почему это критично:** +> Без этой карты OCR‑движок будет пытаться использовать один язык по умолчанию для всех страниц, что приводит к искажённому выводу для русского или китайского текста. Этот шаг напрямую позволяет правильно **распознавать русский текст** и **распознавать китайский текст**. + +--- + +## Step 4 – Loop Through All Pages, Set Language, and Recognize Text + +Теперь мы проходим по каждой странице, переключаем язык в соответствии с нашей картой и вызываем `Recognize`. Результат сохраняется в `OcrResult`, из которого мы извлекаем простой текст. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Expected Console Output + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Объяснение процесса:** +> * Цикл учитывает **прочитанное количество страниц PDF**, которое мы вывели ранее. +> * Меняя `ocrEngine.Settings.Language` на каждой итерации, мы гарантируем точное **распознавание русского текста** на странице 2 и **распознавание китайского текста** на странице 3. +> * Выражения `Console.WriteLine` эффективно **преобразуют текст страниц PDF** в читаемую строку. + +--- + +## Step 5 – Run, Verify, and Tweak + +1. Сборка проекта (`dotnet build`). +2. Запуск (`dotnet run`). +3. Сравнение вывода консоли с оригинальным PDF. + +Если вы заметили пропущенные символы, рассмотрите: + +- **Повышение точности OCR** путем установки `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Предоставление пользовательского языкового пакета**, если встроенные словари русского или китайского устарели. +- **Настройку DPI** при загрузке PDF (`OcrImage.FromFile(path, 300)`), что может улучшить распознавание при сканах низкого разрешения. + +--- + +## Bonus: Handling Edge Cases + +### What if a page’s language isn’t in the map? + +Код уже переходит к английскому, но вы также можете добавить резервный вариант, который будет записывать предупреждение: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Can we process PDFs with more than three languages? + +Конечно. Расширьте `languageMap`, добавив дополнительные индексы и поддерживаемые значения `OcrLanguage` (например, `OcrLanguage.French`). Цикл обработает любое количество страниц. + +### How to export the results to a file instead of the console? + +Замените вызовы `Console.WriteLine` на `File.AppendAllText("output.txt", …)` или используйте `StringBuilder`, который вы запишете один раз после цикла. + +--- + +## Image Illustration + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*Изображение выше демонстрирует вывод консоли при выполнении **распознавания русского текста** на PDF с несколькими языками.* + +--- + +## Conclusion + +Мы прошли полный пример от начала до конца, показывающий, как **распознать русский текст** (а также **распознать китайский текст**) из многостраничного PDF с помощью **Aspose OCR C#**. Считая количество страниц PDF, сопоставляя каждую страницу с нужным языком и проходя по документу, вы можете **преобразовать текст страниц PDF** в обычные строки, готовые для хранения, индексации или дальнейшего анализа. + +In short: + +- **Инициализировать** один `OcrEngine`. +- **Загрузить** PDF и **прочитать количество страниц PDF**. +- **Сопоставить** страницы с языками (Russian, Chinese и т.д.). +- **Итерировать**, установить `ocrEngine.Settings.Language` и **распознать** каждую страницу. +- **Вывести** или сохранить извлечённый текст. + +Не стесняйтесь адаптировать этот шаблон для больших документов, добавить обработку ошибок или подключить результаты к поисковому индексу. Основная идея — выбор языка для каждой страницы — остаётся той же, и именно она делает возможным надёжное **распознавание русского текста** в PDF с несколькими языками. + +Есть другой сценарий, например сканирование изображений вместо PDF? Тот же движок работает; просто замените `OcrImage.FromFile` на `OcrImage.FromStream` или `FromBitmap`. Приятного кодинга, и пусть ваш OCR всегда будет точным! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/ocr-configuration/_index.md b/ocr/spanish/net/ocr-configuration/_index.md index 1c0ae924..964af378 100644 --- a/ocr/spanish/net/ocr-configuration/_index.md +++ b/ocr/spanish/net/ocr-configuration/_index.md @@ -39,9 +39,12 @@ Desbloquee el poder del reconocimiento de imágenes OCR en .NET con Aspose.OCR. Desbloquee potentes capacidades de OCR con Aspose.OCR para .NET. Extraiga texto de imágenes sin problemas. ### [OCROperación con lista en reconocimiento de imágenes OCR](./ocr-operation-with-list/) Libere el potencial de Aspose.OCR para .NET. Realice sin esfuerzo el reconocimiento de imágenes OCR con listas. Aumente la productividad y la extracción de datos en sus aplicaciones. +### [Cómo aplicar la licencia en Aspose OCR – Guía paso a paso en C#](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aprenda a aplicar la licencia de Aspose OCR en sus aplicaciones C# paso a paso. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/spanish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..5b4dedb7 --- /dev/null +++ b/ocr/spanish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Cómo aplicar la licencia para Aspose OCR en C#. Aprende cómo leer el + archivo, establecer la licencia de Aspose, usar MemoryStream y cargar la licencia + de manera eficiente. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: es +og_description: Cómo aplicar la licencia de Aspose OCR en C#. Siga esta guía para + leer el archivo de licencia, establecer la licencia de Aspose, usar MemoryStream + y verificar la configuración. +og_title: Cómo aplicar la licencia en Aspose OCR – Tutorial completo de C# +tags: +- Aspose +- OCR +- C# +- Licensing +title: Cómo aplicar la licencia en Aspose OCR – Guía paso a paso en C# +url: /es/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo aplicar la licencia en Aspose OCR – Guía completa en C# + +¿Alguna vez te has preguntado **cómo aplicar la licencia** para Aspose OCR sin perderte en documentación confusa? No estás solo. La mayoría de los desarrolladores se topan con el mismo problema: pueden leer el archivo, pero no saben la forma correcta de pasarlo a la biblioteca. En este tutorial repasaremos cada detalle, desde cargar el archivo `.lic` desde el disco hasta llamar a `SetLicense` con un `MemoryStream`. Al final tendrás una solución funcional que podrás incorporar a cualquier proyecto .NET. + +También cubriremos **cómo leer el archivo** de forma segura, la manera adecuada de **establecer la licencia de Aspose**, y por qué usar un **MemoryStream** es el enfoque más limpio. Si tienes curiosidad sobre **cómo cargar la licencia** en diferentes entornos, esos consejos también están incluidos. No se requieren referencias externas, solo código listo para copiar y pegar. + +## Requisitos previos + +- .NET 6.0 o superior (el código funciona tanto con .NET Core como con .NET Framework) +- Paquete NuGet Aspose.OCR instalado (`Install-Package Aspose.OCR`) +- Un archivo `Aspose.OCR.lic` válido colocado en una ubicación accesible para tu aplicación +- Conocimientos básicos de C# y Visual Studio (o cualquier IDE que prefieras) + +> **Consejo profesional:** Mantén el archivo de licencia fuera de la carpeta de control de versiones para evitar commits accidentales. + +## Paso 1: Cómo leer el archivo – Cargar los bytes de la licencia + +Lo primero que necesitamos es la matriz de bytes cruda del archivo de licencia. Usar `File.ReadAllBytes` es simple y eficiente, y lanza automáticamente una excepción clara si la ruta es incorrecta. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Por qué es importante:** Leer el archivo directamente a memoria evita fugas de manejadores de archivo y nos brinda una matriz de bytes limpia para usar más adelante. Además, hace que el método sea reutilizable en aplicaciones de consola, servicios web o Azure Functions. + +## Paso 2: Cómo usar MemoryStream – Preparar el flujo de la licencia + +La sobrecarga `License.SetLicense` de Aspose espera un `Stream`. Envolver la matriz de bytes en un `MemoryStream` es la forma idiomática de cumplir con ese requisito sin volver a tocar el sistema de archivos. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Idea clave:** `MemoryStream` es liviano y se elimina rápidamente. También te permite reutilizar la misma matriz de bytes para varias bibliotecas si alguna vez necesitas aplicar más de una licencia de producto Aspose. + +## Paso 3: Establecer la licencia de Aspose – El núcleo de “cómo aplicar la licencia” + +Ahora que tenemos un `MemoryStream`, aplicar la licencia es una sola línea. La clase `License` se encuentra en el espacio de nombres `Aspose.OCR`, así que asegúrate de haber agregado la directiva `using` correspondiente. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Si la licencia es inválida o está caducada, `SetLicense` fallará silenciosamente y la biblioteca funcionará en modo de prueba. Para estar absolutamente seguro, puedes comprobar una característica que solo está disponible en la versión con licencia (por ejemplo, configuraciones de precisión OCR) o simplemente confiar en el mensaje de confirmación que imprimiremos más adelante. + +## Paso 4: Cómo cargar la licencia – Uniendo todo + +A continuación se muestra el programa de consola completo y ejecutable que demuestra **cómo cargar la licencia** desde el disco, usar un `MemoryStream` y verificar que la licencia se haya aplicado correctamente. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Salida esperada + +``` +License applied successfully. You can now perform OCR operations. +``` + +Si ves el mensaje, la biblioteca está totalmente licenciada y lista para tareas OCR de nivel de producción. + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **FileNotFoundException** al leer la licencia | La ruta es incorrecta o el archivo no se despliega con la aplicación | Usa una ruta absoluta o incrusta la licencia como recurso (ver “carga alternativa” más abajo) | +| **Licencia no aplicada pero sin error** | `SetLicense` vuelve al modo de prueba silenciosamente si el flujo está vacío o corrupto | Verifica que `licenseData.Length > 0` antes de crear el `MemoryStream` | +| **MemoryStream no se elimina** | Olvidar `using` deja recursos no administrados pendientes | Siempre envuelve el flujo en un bloque `using` como se muestra | + +### Alternativa: Incrustar la licencia como recurso incrustado + +Si prefieres no distribuir un archivo `.lic` separado, agrégalo a tu proyecto, establece **Build Action** a **Embedded Resource**, y léelo de esta forma: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Luego llama a `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` y continúa con el mismo enfoque de `MemoryStream`. + +## Conclusión + +Hemos cubierto **cómo aplicar la licencia** para Aspose OCR de principio a fin: leer el archivo, crear un `MemoryStream`, llamar a `SetLicense` y confirmar la activación. Siguiendo estos pasos eliminas la conjetura, evitas errores comunes y garantizas que tu motor OCR funcione en modo de todas las funcionalidades. + +A continuación, podrías explorar **cómo leer el archivo** de forma asíncrona para servicios de alto rendimiento, o profundizar en configuraciones avanzadas de OCR ahora que la licencia está cargada correctamente. En cualquier caso, el patrón sigue siendo el mismo: leer, transmitir, establecer, verificar. + +¿Tienes preguntas sobre casos extremos, como cargar la licencia en un entorno ASP.NET Core o manejar múltiples licencias de productos Aspose? Deja un comentario abajo, ¡y feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/ocr-optimization/_index.md b/ocr/spanish/net/ocr-optimization/_index.md index accbe5af..27d9bee5 100644 --- a/ocr/spanish/net/ocr-optimization/_index.md +++ b/ocr/spanish/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Explore Aspose.OCR para .NET. Aumente la precisión del OCR con filtros de prepr Mejore la precisión del OCR con Aspose.OCR para .NET. Corrija la ortografía, personalice diccionarios y logre un reconocimiento de texto sin errores sin esfuerzo. ### [Guarde el resultado de varias páginas como documento en el reconocimiento de imágenes OCR](./save-multipage-result-as-document/) Libere el potencial de Aspose.OCR para .NET. Guarde sin esfuerzo los resultados de OCR de varias páginas como documentos con esta guía completa paso a paso. +### [Cómo realizar OCR por lotes en C# con el motor OCR de Aspose](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Aprenda a procesar múltiples imágenes en lote usando Aspose OCR en C# para mejorar la eficiencia. +### [Preprocesar imagen OCR en C# – Mejore la precisión con Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Aprenda a preprocesar imágenes para OCR en C# y aumente la precisión usando Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/spanish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..f68d1135 --- /dev/null +++ b/ocr/spanish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-01-01 +description: Cómo procesar OCR por lotes usando Aspose OCR Engine en C#. Aprende a + reconocer texto de imágenes y extraer texto de archivos TIFF con aceleración GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: es +og_description: Cómo realizar OCR por lotes en C# con el motor OCR de Aspose. Esta + guía le muestra cómo reconocer texto a partir de imágenes y extraer texto de archivos + TIFF de manera eficiente. +og_title: Cómo realizar OCR por lotes en C# – Guía completa de Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Cómo hacer OCR por lotes en C# con el motor OCR de Aspose +url: /es/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo hacer OCR por lotes en C# con el motor OCR de Aspose + +¿Alguna vez te has preguntado **cómo hacer OCR por lotes** cuando tienes docenas de documentos escaneados en una carpeta? No estás solo: muchos desarrolladores se topan con esa barrera al pasar del reconocimiento de una sola imagen al procesamiento de una colección completa. La buena noticia es que Aspose OCR lo convierte en pan comido, ya sea que estés ejecutando en CPU o aprovechando la aceleración GPU. + +En este tutorial recorreremos un ejemplo completo y ejecutable que **reconoce texto de imágenes** e incluso **extrae texto de archivos TIFF** en bloque. Sin atajos vagos de “ver la documentación”; solo una solución autocontenida que puedes copiar‑pegar y ejecutar hoy. + +## Prerequisites + +Antes de sumergirnos, asegúrate de tener: + +* .NET 6.0 o posterior instalado (el código está dirigido a .NET 6, pero .NET 5 también funciona). +* Paquete NuGet Aspose.OCR para .NET (disponibles versiones CPU y GPU; instala la que coincida con tu hardware). +* Una carpeta con algunos archivos TIFF o PNG de muestra que quieras procesar. +* Visual Studio 2022 o cualquier IDE que prefieras. + +> **Pro tip:** Si planeas usar la versión GPU, verifica que tu controlador gráfico esté actualizado y que CUDA 11+ esté instalado. El motor volverá automáticamente a CPU si no encuentra una GPU compatible. + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: Create a New Console App and Add Aspose.OCR + +Abre una terminal (o la Consola del Administrador de Paquetes en Visual Studio) y ejecuta: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Si tienes una licencia habilitada para GPU, agrega el paquete GPU en su lugar: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Eso es todo: tu proyecto ahora referencia la biblioteca OCR que usaremos para **OCR por lotes**. + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: How to Batch OCR – Engine Initialization + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Por qué importa:** Al alternar `UseGpu`, dejas que Aspose decida la ruta más rápida. Si la GPU no está disponible, el motor cambia silenciosamente a CPU, de modo que tu trabajo por lotes nunca se bloquea por falta de hardware. + +## Step 3 – Gather the Files You Want to Process + +### H2: Recognize Text from Images – Building the File List + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Nota de caso límite:** Si tienes una mezcla de formatos, cambia el patrón de búsqueda a `"*.*"` y filtra por extensión dentro del bucle. Así mantienes el lote flexible. + +## Step 4 – Process Each Image and Show a Preview + +### H2: Extract Text from TIFF – Loop Through the Files + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Lo que verás:** Por cada TIFF, la consola imprimirá algo como: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Esa vista previa confirma que el lote se completó sin necesidad de abrir cada archivo manualmente. + +## Step 5 – Save Results (Optional but Handy) + +### H3: Persist OCR Output to Text Files + +Si necesitas el texto completo para procesamiento posterior, agrega esto dentro del bucle `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Ahora cada TIFF obtiene un archivo `.txt` acompañante que contiene la salida OCR completa—perfecto para indexación, búsqueda o alimentar a un modelo de lenguaje. + +## Step 6 – Run the Demo and Verify + +1. Compila el proyecto: `dotnet build`. +2. Ejecuta: `dotnet run --project GpuBatchDemo.csproj`. + +Deberías ver las líneas de vista previa impresas en la consola y (si añadiste el paso opcional) una serie de archivos `.txt` junto a tus imágenes de origen. + +### H3: Common Pitfalls & How to Fix Them + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Image too dark or low DPI | Pre‑process images (increase contrast, upscale) or set `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Out‑of‑date driver | Update GPU driver, or set `UseGpu = false` to force CPU. | +| **Exception “File not found”** | Wrong path separator on Linux/macOS | Use `Path.Combine` or forward slashes (`/`). | + +## Step 7 – Scaling Up (Beyond a Few Files) + +Cuando pases de unas cuantas TIFF a miles, considera: + +* **Procesamiento paralelo:** Envuelve el `foreach` en `Parallel.ForEach` (asegúrate de que la instancia del motor sea segura para subprocesos; de lo contrario crea una por hilo). +* **E/S por bloques:** Lee imágenes en lotes para evitar agotar la RAM. +* **Registro:** Escribe el progreso en un archivo de log; ayuda a reanudar después de un fallo. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Recuerda:** La memoria GPU es compartida, así que lanzar demasiados trabajos GPU en paralelo puede ralentizarte. Prueba con unos pocos hilos primero. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Ejecutar este programa **reconocerá texto de imágenes**, **extraerá texto de TIFF**, y demostrará **cómo hacer OCR por lotes** de manera eficiente. + +--- + +## Conclusion + +Ahora tienes un ejemplo sólido, de extremo a extremo, de **cómo hacer OCR por lotes** en C# usando el motor OCR de Aspose. El tutorial cubrió todo, desde la configuración del proyecto, la conmutación de aceleración GPU, la construcción de la lista de archivos, el procesamiento de cada imagen y la persistencia de resultados. Ya sea que extraigas texto de archivos TIFF o de cualquier otro formato de imagen, el mismo patrón se aplica—solo cambia las extensiones de archivo. + +¿Listo para el siguiente paso? Intenta integrar la salida OCR con un índice de búsqueda, alimentar el texto a un modelo de lenguaje grande, o experimentar con procesamiento paralelo para ahorrar minutos en lotes masivos. El cielo es el límite, y ya tienes la base para construir. + +¿Tienes preguntas o quieres compartir tus propios trucos de OCR por lotes? Deja un comentario abajo—¡feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/spanish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..39145747 --- /dev/null +++ b/ocr/spanish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Preprocesar imagen OCR para mejorar la precisión. Aprende a reconocer + texto en imágenes, mejorar la precisión del OCR, cargar la imagen OCR y mostrar + el texto OCR usando Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: es +og_description: Preprocesar OCR de imágenes para mejorar la precisión. Esta guía muestra + cómo reconocer texto en imágenes, cargar OCR de imágenes, aplicar filtros y mostrar + el texto OCR. +og_title: Preprocesar OCR de imagen en C# – Mejora la precisión con Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Preprocesar OCR de imagen en C# – Mejora la precisión con Aspose OCR +url: /es/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Boost Accuracy with Aspose OCR + +¿Alguna vez te has preguntado cómo **preprocess image ocr** para que el motor realmente lea lo que está en la página? No estás solo: la mayoría de los desarrolladores se topan con un muro cuando un escaneo ruidoso y sesgado se niega a cooperar. La buena noticia es que unos pocos pasos inteligentes de preprocesamiento pueden convertir una imagen caótica en texto limpio y legible. + +En este tutorial recorreremos un ejemplo completo, listo para ejecutar, que **recognize text image** archivos, **improve OCR accuracy**, y finalmente **display OCR text** en la consola. Al final sabrás cómo **load image OCR** recursos, adjuntar filtros como corrección de sesgo y reducción de ruido, y obtener resultados fiables, todo con Aspose.OCR para .NET. + +## What You’ll Learn + +- Cómo crear una instancia de `OcrEngine` y configurar filtros de preprocesamiento. +- Por qué la corrección de sesgo y los filtros de reducción de ruido son importantes para **improve OCR accuracy**. +- El código exacto para **load image ocr** archivos y ejecutar el reconocimiento. +- Cómo **display OCR text** de forma amigable para el usuario. +- Consejos, trampas y ajustes opcionales que puedes aplicar en proyectos del mundo real. + +### Prerequisites + +- .NET 6+ (o .NET Framework 4.7+) instalado en tu máquina. +- Una licencia para Aspose.OCR (la prueba gratuita funciona para esta demo). +- Conocimientos básicos de C#—no se requieren trucos avanzados. + +Si alguno de estos puntos te resulta desconocido, detente y instala lo que falta; el resto de la guía asume que ya está listo. + +--- + +## preprocess image ocr – Setting Up Filters + +Lo primero que debes entender es **why preprocessing matters**. Los motores OCR son excelentes leyendo texto nítido y alineado, pero los escaneos del mundo real a menudo presentan rotación, desenfoque o ruido de fondo. Al proporcionar una imagen limpiada al motor, aumentas drásticamente las probabilidades de una transcripción correcta. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**¿Qué está pasando aquí?** +- **Paso 1** crea el motor, el corazón de la biblioteca Aspose OCR. +- **Paso 2** adjunta dos filtros. El `SkewCorrectionFilter` rota la imagen de vuelta a la horizontal, mientras que `DenoiseFilter` suaviza el ruido a nivel de píxel. +- **Paso 3** es opcional pero útil; puedes limitar el ángulo máximo que el motor intentará corregir, evitando sobre‑rotaciones en páginas ya rectas. +- **Paso 4** es donde **load image OCR** los datos. Reemplaza `YOUR_DIRECTORY/skewed_noisy.jpg` con la ruta a tu archivo de prueba. +- **Paso 5** ejecuta realmente el OCR y produce un `OcrResult`. +- **Paso 6** **display OCR text** en la consola, dándote retroalimentación inmediata. + +> **Pro tip:** Si notas que la salida sigue conteniendo caracteres distorsionados, intenta aumentar el `MaxAngle` o agregar un `ContrastFilter` antes del paso de reducción de ruido. + +--- + +## recognize text image – Loading Your Files Correctly + +Un obstáculo frecuente es **load image ocr** con el formato o DPI incorrectos. Aspose.OCR admite PNG, JPEG, TIFF, BMP e incluso imágenes basadas en PDF. Sin embargo, el motor funciona mejor con 300 DPI o más para documentos impresos. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Si trabajas con un TIFF de varias páginas, puedes iterar sobre cada fotograma: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**¿Por qué esto importa para improve OCR accuracy?** Una mayor resolución conserva la forma de cada carácter, proporcionando al reconocedor más puntos de datos. Las imágenes con DPI bajo suelen producir glifos fusionados o rotos, que el motor interpretará incorrectamente. + +--- + +## improve OCR accuracy – Tweaking Filter Parameters + +Los valores predeterminados de los filtros son un buen punto de partida, pero puedes exprimir rendimiento adicional de ellos. + +| Filtro | Propiedad clave | Valor típico | Cuándo ajustar | +|--------|-----------------|--------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (grados) | Imágenes muy inclinadas (hasta 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Escaneos muy ruidosos; aumentarlo a `0.8`. | +| `ContrastFilter` (opcional) | `Level` | `1.2` | Capturas de pantalla con bajo contraste. | + +Ejemplo de personalización de ambos: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Caso extremo:** Si tu imagen contiene notas manuscritas y texto impreso, podrías añadir un `BinarizationFilter` antes de la reducción de ruido para separar el primer plano del fondo. + +--- + +## display OCR text – Formatting the Output + +La salida simple en consola funciona para demostraciones, pero el código de producción a menudo necesita cadenas limpiadas, saltos de línea o incluso JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Si necesitas JSON para una respuesta de API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Ahora **display OCR text** en un formato que los servicios posteriores pueden consumir. + +--- + +## Full Working Example – Put It All Together + +A continuación tienes el programa final, autocontenido, que puedes copiar y pegar en un nuevo proyecto de consola. Incluye filtros opcionales, carga de imagen de alta resolución y salida limpia. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Salida esperada en consola (ejemplo):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Si ejecutas el programa con un archivo diferente, el texto y la confianza cambiarán en consecuencia. + +--- + +## Common Questions & Answers + +**Q: ¿Qué pasa si mi imagen ya está recta?** +A: El filtro de sesgo detectará un ángulo cercano a cero y efectivamente no hará nada, por lo que puedes dejarlo habilitado sin problemas. + +**Q: ¿Aspose.OCR admite idiomas distintos al inglés?** +A: Sí—simplemente establece `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (o cualquier idioma compatible) antes de llamar a `Recognize`. + +**Q: ¿Cómo manejo PDFs de varias páginas?** +A: Convierte cada página a una imagen (Aspose.PDF puede hacerlo) y pásalas una por una a la misma instancia de `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/text-recognition/_index.md b/ocr/spanish/net/text-recognition/_index.md index 8f06dcbf..9155de0b 100644 --- a/ocr/spanish/net/text-recognition/_index.md +++ b/ocr/spanish/net/text-recognition/_index.md @@ -46,7 +46,7 @@ Navegue por las complejidades del reconocimiento de tablas en el reconocimiento ### [Obtenga opciones para caracteres reconocidos en el reconocimiento de imágenes OCR](./get-choices-for-recognized-characters/) Mejore sus aplicaciones .NET con Aspose.OCR para un reconocimiento preciso de caracteres. Siga nuestra guía paso a paso para recuperar opciones de caracteres reconocidos en el reconocimiento de imágenes. ### [Obtener el resultado del reconocimiento en el reconocimiento de imágenes OCR](./get-recognition-result/) -Explore Aspose.OCR para .NET, una potente solución de OCR para un reconocimiento perfecto de texto en imágenes. +Explore Aspose.OCR para .NET, una potente solución de OCR para un reconocimiento perfecto del texto en imágenes. ### [Obtenga resultados como JSON en el reconocimiento de imágenes OCR](./get-result-as-json/) Libere el poder de Aspose.OCR para .NET. Aprenda a obtener resultados OCR en formato JSON sin esfuerzo. Mejore el reconocimiento de sus imágenes con esta guía paso a paso. ### [Modo de detección de áreas OCR en reconocimiento de imágenes OCR](./ocr-detect-areas-mode/) @@ -55,9 +55,18 @@ Mejore sus aplicaciones .NET con Aspose.OCR para un reconocimiento eficiente del Libere el potencial del OCR en .NET con Aspose.OCR. Extraiga texto de archivos PDF sin esfuerzo. Descárguelo ahora para disfrutar de una experiencia de integración perfecta. ### [Reconocer tabla en reconocimiento de imágenes OCR](./recognize-table/) Descubra el potencial de Aspose.OCR para .NET con nuestra guía completa sobre cómo reconocer tablas en el reconocimiento de imágenes OCR. +### [Tutorial c# OCR: Extraer texto de una imagen con Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aprenda a extraer texto de imágenes usando Aspose OCR en C# con este tutorial paso a paso. +### [Tutorial c# OCR: Extraer texto de imágenes y exportar a JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aprenda a extraer texto de imágenes y exportarlo en formato JSON usando Aspose OCR en C# con este tutorial paso a paso. +### [Cómo hacer OCR de una imagen en C# – Convertir JPG a ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Aprenda a extraer texto de una imagen JPG y guardarlo como ePub usando Aspose OCR en C#. +### [Reconocer texto ruso con Aspose OCR C# – Guía completa de PDF multipágina](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Aprenda a reconocer texto ruso en PDFs multipágina usando Aspose OCR con C# en esta guía paso a paso. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..c5b2cf04 --- /dev/null +++ b/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: Tutorial de OCR en C# que muestra cómo extraer texto de una imagen, realizar + OCR en archivos JPG usando Aspose OCR. Aprende a cargar la imagen para OCR y obtener + resultados precisos. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: es +og_description: tutorial de OCR en C# que te guía a través de la extracción de texto + de una imagen, la realización de OCR en JPG y la carga de imágenes para OCR usando + Aspose. +og_title: c# tutorial OCR – Extraer texto de una imagen con Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'tutorial de OCR en C#: extraer texto de una imagen con Aspose OCR' +url: /es/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tutorial de OCR en c# – Extraer texto de una imagen con Aspose OCR + +¿Buscas un **c# ocr tutorial** que realmente funcione? En esta guía te mostraremos cómo **extraer texto de una imagen** y **realizar OCR en archivos JPG** usando la biblioteca Aspose.OCR. Ya sea que estés construyendo un escáner de recibos, un archivador de documentos, o simplemente tengas curiosidad por leer texto de fotos, los pasos a continuación te llevarán de cero a código funcional en minutos. + +Cubrirémos todo lo que necesitas: instalar el paquete, cargar una imagen para OCR, configurar los recursos de idioma, ejecutar el motor de reconocimiento y manejar los problemas más comunes. Al final tendrás una aplicación de consola autónoma que imprime el texto reconocido en la consola—sin servicios externos. + +## Qué necesitarás + +- .NET 6.0 o posterior (el código también funciona con .NET Framework 4.6+) +- Visual Studio 2022, VS Code, o cualquier editor de C# que prefieras +- Un archivo de imagen que contenga texto en ruso (cirílico), por ejemplo `receipt_ru.jpg` +- Conexión a Internet para la primera ejecución (Aspose descargará automáticamente los recursos de idioma) + +Si ya tienes todo esto, genial—¡vamos a sumergirnos! + +## Paso 1: Instalar Aspose.OCR y crear un nuevo proyecto + +Primero lo primero, agrega el paquete NuGet Aspose.OCR a tu proyecto. Abre una terminal en la carpeta de tu solución y ejecuta: + +```bash +dotnet add package Aspose.OCR +``` + +> **Consejo profesional:** Usa la bandera `--version` para fijar la última versión estable, por ejemplo `Aspose.OCR 23.9.0`. + +A continuación, crea un proyecto de consola simple (omite esto si ya tienes uno): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Ahora tienes una base limpia donde podrás pegar el código de ejemplo completo más adelante. + +## Paso 2: Cargar imagen para OCR + +Cargar la imagen es el primer paso funcional en cualquier **c# ocr tutorial**. Aspose.OCR acepta una ruta de archivo, un flujo o incluso un `Bitmap`. Para nuestro ejemplo lo mantendremos sencillo y cargaremos desde el disco: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Por qué es importante:** Al cargar explícitamente la imagen, le das al motor un objetivo claro, lo que mejora la precisión—especialmente al trabajar con PDFs de varias páginas o entradas de formato mixto. + +## Paso 3: Configurar idioma y descarga automática de recursos + +Aspose.OCR incluye paquetes de idioma que pueden descargarse bajo demanda. Habilitar la descarga automática asegura que el motor obtenga los datos del idioma ruso la primera vez que ejecutes el código. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explicación:** +> • `AutoDownloadResources = true` elimina el paso manual de obtener archivos `.dat`. +> • Configurar `Language` indica al motor qué conjunto de caracteres esperar, aumentando drásticamente la velocidad y precisión del reconocimiento. + +## Paso 4: Ejecutar OCR y obtener el texto reconocido + +Ahora ocurre el trabajo pesado. El método `Recognize` procesa la imagen y devuelve un objeto `OcrResult` que contiene la cadena extraída. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Al ejecutar el programa, deberías ver algo como: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Qué esperar:** La salida exacta depende de la calidad de la imagen fuente, pero el motor basado en redes neuronales de Aspose normalmente maneja recibos limpios y formularios impresos con alta fidelidad. + +## Ejemplo completo y funcional + +A continuación está el **código completo y ejecutable** que combina todos los pasos. Copia‑pega en `Program.cs`, reemplaza `YOUR_DIRECTORY` con la ruta real de la carpeta y ejecuta `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Consejo:** Si necesitas **extraer texto de una imagen** de archivos que no sean JPG (PNG, BMP, TIFF), simplemente cambia la extensión del archivo—Aspose los maneja todos. + +## Paso 5: Problemas comunes y consejos profesionales + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **Garbage characters** | Imagen de baja resolución o compresión alta | Usa una fuente de mayor calidad, o pre‑procesa con `Bitmap` (p. ej., aumenta el contraste) | +| **Language not recognized** | Paquete de idioma no descargado | Asegúrate de que `AutoDownloadResources` sea `true` y la máquina tenga acceso a internet en la primera ejecución | +| **Null `ocrResult.Text`** | Ruta de la imagen incorrecta o archivo faltante | Verifica la ruta, usa `File.Exists` antes de cargar | +| **Performance lag** | Gran lote de imágenes procesadas secuencialmente | Reutiliza una única instancia de `OcrEngine` en múltiples llamadas | + +### Bonus: Leer varios archivos en un bucle + +Si necesitas **realizar OCR en archivos JPG** en una carpeta, envuelve la lógica en un `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +## Conclusión + +Acabas de completar un **c# ocr tutorial** que muestra cómo **extraer texto de una imagen**, **realizar OCR en JPG**, y **cargar imagen para OCR** usando Aspose.OCR. El programa de ejemplo demuestra todo el flujo—desde instalar el paquete NuGet hasta imprimir el texto cirílico reconocido—para que puedas copiarlo en cualquier proyecto .NET de inmediato. + +¿Listo para el siguiente paso? Prueba cambiar `OcrLanguage.Russian` por `OcrLanguage.English` para reconocer recibos en inglés, o experimenta con las opciones de `OcrEngine.Settings` (p. ej., `PageSegmentationMode`, `ImagePreprocessing`) para afinar la precisión. También puedes integrar la salida en una base de datos, generar PDFs, o enviarla a una API de traducción. + +Si encuentras algún problema, revisa la documentación de Aspose.OCR o deja un comentario abajo. ¡Feliz codificación, y que tus resultados de OCR siempre sean cristalinos! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..50986a4b --- /dev/null +++ b/ocr/spanish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: 'Tutorial de OCR en C# que muestra cómo extraer texto, cargar una imagen + para OCR y escribir JSON en un archivo usando Aspose.OCR: guía paso a paso.' +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: es +og_description: tutorial de OCR en C# que te guía paso a paso sobre cómo extraer texto + de imágenes, cargar la imagen para OCR y escribir JSON en un archivo usando Aspose.OCR. +og_title: Tutorial de OCR en C# – Extraer texto y exportar a JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Tutorial de OCR en C# – Extraer texto de imágenes y exportar a JSON +url: /es/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# tutorial c# OCR – Extraer texto de imágenes y exportar a JSON + +¿Alguna vez te has preguntado cómo extraer texto de una factura escaneada sin pasar horas escribiendo analizadores personalizados? No estás solo. En este **tutorial c# OCR** te mostraremos exactamente cómo cargar una imagen para OCR, ejecutar el motor de reconocimiento y luego **escribir JSON en un archivo** para que puedas alimentar los datos a sistemas posteriores. + +Imagina que tienes una carpeta de recibos, cada uno llamado `receipt1.png`, `receipt2.png`, y necesitas una forma rápida de convertirlos en registros JSON buscables. Ese es el problema que resolveremos, y al final tendrás una aplicación de consola lista‑para‑ejecutar que hace precisamente eso. Sin dependencias adicionales más allá de Aspose.OCR, y sin magia—solo pasos claros y reproducibles. + +> **Lo que aprenderás** +> - Cómo **cargar imagen para OCR** usando Aspose.OCR. +> - La mejor manera de **extraer texto** y obtener puntuaciones de confianza. +> - Convertir el resultado OCR en una carga útil **OCR image to JSON** bien estructurada. +> - Escribir **JSON en un archivo** de forma segura y verificar la salida. + +## Prerrequisitos + +- .NET 6 SDK o posterior (el código funciona también en .NET Core). +- Visual Studio 2022 o cualquier editor que prefieras. +- Paquete NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Un archivo de imagen (PNG, JPG, BMP) que quieras procesar – para la demo usaremos `invoice.png`. + +Si te falta alguno de estos, descarga el SDK del sitio de Microsoft y agrega el paquete NuGet mediante la consola del Administrador de paquetes: + +```powershell +Install-Package Aspose.OCR +``` + +Ahora que la base está lista, sumerjámonos en la implementación real. + +## Paso 1: tutorial c# OCR – Inicializar el motor OCR + +Antes de que podamos **cargar imagen para OCR**, necesitamos una instancia del motor que impulsará el proceso de reconocimiento. La clase `OcrEngine` es ligera, pero es una buena práctica envolverla en un bloque `using` para que los recursos se liberen rápidamente. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Consejo profesional:* Si planeas procesar muchas imágenes en lote, reutiliza la misma instancia de `OcrEngine` en lugar de crear una nueva cada vez. Reduce el consumo de memoria y acelera el proceso. + +## Paso 2: Cargar imagen para OCR + +Ahora realmente **cargamos la imagen para OCR**. Aspose.OCR admite una variedad de formatos, por lo que puedes apuntar a un PNG, JPEG o incluso a un TIFF multipágina. El método `OcrImage.FromFile` lee el archivo y lo prepara para el reconocimiento. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Por qué es importante:** Cargar la imagen por separado te permite inspeccionar sus dimensiones, DPI o incluso pre‑procesarla (p. ej., binarización) antes de enviarla al motor. Si la imagen está corrupta, `FromFile` lanzará una excepción clara, que puedes capturar y registrar. + +## Paso 3: Cómo extraer texto – Ejecutar el reconocimiento + +Con la imagen en mano, finalmente podemos **extraer texto** de ella. El método `Recognize` devuelve un objeto `OcrResult` que contiene no solo el texto plano sino también datos posicionales y puntuaciones de confianza para cada palabra. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Caso límite:* Algunos PDFs contienen capas de texto invisibles. Si alimentas una página PDF renderizada como imagen, el motor puede no ver nada. En esos casos, considera usar Aspose.PDF para extraer la capa oculta primero, y luego recurrir al OCR solo cuando sea necesario. + +## Paso 4: OCR image to JSON – Convertir el resultado + +La clase `OcrResult` ofrece un práctico método auxiliar `ToJson()` que serializa todo el conjunto de resultados —incluyendo el cuadro delimitador y la confianza de cada palabra— en una cadena JSON. Esta es la forma más limpia de lograr **OCR image to JSON** sin escribir tu propio serializador. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Si prefieres un esquema personalizado, puedes iterar sobre `ocrResult.Words` y construir tu propio objeto, pero para la mayoría de los escenarios el JSON incorporado es suficiente y ya está bien estructurado. + +## Paso 5: Escribir JSON en un archivo + +Ahora llega la pieza final del rompecabezas: persistir la carga JSON. El método `File.WriteAllText` asegura que el archivo se cree (o sobrescriba) de forma atómica. Asegúrate de que el directorio de destino exista, de lo contrario obtendrás una `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Consejo:* Si necesitas UTF‑8 con BOM o una codificación diferente, usa la sobrecarga que acepta un argumento `Encoding`. + +## Paso 6: Verificar la salida + +Un rápido `Console.WriteLine` nos indica que el proceso se completó con éxito. También puedes abrir el archivo JSON en un visor para confirmar la estructura. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Fragmento JSON esperado + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +El JSON incluye la ubicación de cada palabra, lo cual es útil si más adelante deseas resaltar texto en una interfaz. + +## Ejemplo completo y funcional + +Abajo tienes el programa completo listo para copiar y pegar. Reemplaza `YOUR_DIRECTORY` con la ruta real donde se encuentra tu imagen. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Ejecuta el programa (`dotnet run` desde la carpeta del proyecto) y encontrarás `invoice.json` junto a tu PNG original. + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **FileNotFoundException** al cargar la imagen | Error tipográfico en la ruta o archivo faltante | Usa `Path.Combine` y verifica `File.Exists` antes de llamar a `FromFile`. | +| **Low confidence scores** | Calidad de imagen deficiente, DPI bajo | Pre‑procesa con `ocrImage.AdjustContrast` o aumenta la resolución de la imagen a 300 DPI. | +| **JSON file empty** | `ocrResult` devolvió null (el motor falló) | Verifica que el formato de imagen sea compatible y que la licencia (si la hay) esté aplicada correctamente. | +| **Performance bottleneck on large batches** | Re‑crear `OcrEngine` en cada iteración | Reutiliza una única instancia de `OcrEngine` durante el lote, descartándola solo al final. | + +## Próximos pasos + +Ahora que dominas el **tutorial c# OCR**, podrías querer: + +- **Procesar por lotes** una carpeta completa y agregar los archivos JSON en una única base de datos. +- **Integrar** la salida con Azure Cognitive Search para PDFs buscables. +- **Agregar soporte de idioma** estableciendo `ocrEngine.Language = OcrLanguage.Spanish` (o cualquier idioma soportado). +- **Post‑procesar** el JSON para extraer tablas o pares clave‑valor usando expresiones regulares. + +Cada una de estas extensiones se basa en los conceptos centrales que cubrimos: cargar imágenes para OCR, extraer texto, convertir a JSON y escribir ese JSON en disco. + +--- + +### Conclusión + +En este **tutorial c# OCR** recorrimos cada paso necesario para **cargar imagen para OCR**, **extraer texto**, transformar el resultado en una carga **OCR image to JSON**, y finalmente **escribir JSON en un archivo**. El ejemplo de código completo está listo para integrarse en cualquier proyecto .NET, y las explicaciones te dan el contexto necesario para adaptar la solución a escenarios del mundo real. + +Pruébalo con tu propio conjunto de recibos o facturas—ajusta el pre‑procesamiento de la imagen, experimenta con diferentes idiomas, y observa cómo crece la salida JSON. Si encuentras algún problema, revisa la tabla de obstáculos o deja un comentario abajo. ¡Feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/spanish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..f06cfe00 --- /dev/null +++ b/ocr/spanish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: Aprende cómo hacer OCR de una imagen en C# y convertir JPG a ePub usando + Aspose OCR. Esta guía paso a paso también muestra cómo extraer texto de la imagen. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: es +og_description: ¿Cómo hacer OCR de una imagen en C#? Sigue esta guía para extraer + texto de la imagen y convertir JPG a ePub con Aspose OCR. +og_title: Cómo hacer OCR de una imagen en C# – Convertir JPG a ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Cómo hacer OCR de una imagen en C# – Convertir JPG a ePub +url: /es/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo hacer OCR de una imagen en C# – Convertir JPG a ePub + +¿Alguna vez te has preguntado **cómo hacer OCR de una imagen** directamente desde una aplicación de consola C#? No eres el único. Muchos desarrolladores se topan con un obstáculo cuando necesitan extraer texto de una fotografía y luego empaquetar ese texto en un libro ePub legible. + +En este tutorial recorreremos un ejemplo completo y ejecutable que **extrae texto de una imagen**, guarda el resultado como ePub y te muestra cómo **convertir JPG a ePub** sin salir de tu IDE. Sin rodeos, solo el código que puedes copiar‑pegar y ejecutar hoy. + +## Lo que aprenderás + +- Cómo configurar el motor Aspose OCR en un proyecto .NET. +- Los pasos exactos para **convertir imagen a epub** usando la opción `OcrSaveFormat.Epub`. +- Consejos para manejar problemas comunes como formatos de imagen no compatibles o fuentes faltantes. +- Un programa completo en C# que puedes compilar y ejecutar ahora mismo. + +**Requisitos previos**: .NET 6 SDK (o cualquier versión reciente de .NET), un paquete NuGet válido de Aspose.OCR y un archivo de imagen (`input.jpg`) que deseas procesar. Si nunca has usado NuGet antes, simplemente abre la consola del Administrador de paquetes y ejecuta `Install-Package Aspose.OCR`. + +¿Listo? Vamos a sumergirnos. + +## Paso 1 – Cómo hacer OCR de una imagen y cargar la fuente + +Lo primero que necesitas es una instancia del motor OCR y una imagen fuente. Aspose OCR lo hace sencillo: creas un `OcrEngine` y luego le proporcionas un `OcrImage` cargado desde el disco. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Por qué es importante** – Inicializar el motor solo una vez mantiene bajo el uso de memoria, y cargar la imagen al principio te permite verificar la ruta del archivo antes de que comience el trabajo intensivo de OCR. + +## Paso 2 – Ejecutar OCR y extraer texto de la imagen + +Ahora que la imagen está en memoria, pide al motor que reconozca los caracteres. El método `Recognize` devuelve un objeto `OcrResult` que contiene el texto plano, los puntajes de confianza e incluso información de diseño. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Consejo profesional** – Si solo necesitas el texto y no el ePub, puedes detenerte aquí. La propiedad `ocrResult.Text` es una cadena limpia que puedes canalizar a cualquier otro sistema. + +## Paso 3 – Guardar el resultado como un libro ePub (Convertir JPG a ePub) + +Aspose OCR puede serializar directamente el resultado OCR en varios formatos, incluido ePub. Este paso muestra exactamente cómo **convertir JPG a ePub** en una sola línea. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Cuando ejecutes el programa, verás el texto extraído impreso en la consola y aparecerá un nuevo archivo `book_page.epub` junto a tu imagen fuente. Ábrelo en cualquier lector ePub (Calibre, Apple Books, etc.) y encontrarás el texto OCR formateado agradablemente como un libro de una sola página. + +### Salida esperada + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Si el ePub se abre correctamente, felicidades—acabas de completar un **ejemplo completo de OCR en C#** que convierte un JPEG en un ePub portátil. + +## Paso 4 – Problemas comunes al convertir imagen a ePub + +Incluso con una biblioteca sólida, podrías encontrarte con algunos obstáculos. Aquí tienes una breve FAQ: + +| Problema | Por qué ocurre | Cómo solucionarlo | +|-------|----------------|------------| +| **Formato de imagen no compatible** | Aspose OCR espera formatos raster (JPG, PNG, BMP). | Convierte la imagen a JPG o PNG primero, por ejemplo, con `System.Drawing.Image`. | +| **Salida en blanco** | Baja calidad de la imagen o compresión excesiva. | Incrementa DPI, usa un escaneo más claro, o aplica preprocesamiento de imagen (`ocrEngine.Preprocess`). | +| **Fuentes faltantes en ePub** | El escritor ePub predeterminado usa fuentes del sistema que pueden no estar incrustadas. | Establece `ocrEngine.Config.FontsDirectory` a una carpeta con los archivos .ttf requeridos. | +| **Archivo ePub grande** | Imágenes de alta resolución se incrustan como páginas separadas. | Usa `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Abordar estos problemas temprano te ahorra perseguir errores más tarde. + +## Paso 5 – Extender el ejemplo (más allá de lo básico) + +Ahora que tienes una canalización funcional de **convertir imagen a epub**, podrías preguntarte qué más puedes hacer. Aquí tienes algunas ideas que puedes probar mañana: + +1. **Procesamiento por lotes** – Recorrer una carpeta de JPGs, generar un ePub por imagen, o combinarlos en un ePub de varios capítulos. +2. **Selección de idioma** – Establece `ocrEngine.Language = Language.English;` o cualquier idioma compatible para mejorar la precisión. +3. **Preservación del diseño** – Usa primero `OcrSaveFormat.Html`, luego envuelve el HTML en un ePub para un formato más rico. +4. **Despliegue en la nube** – Envuelve el código en una Azure Function o AWS Lambda para ofrecer OCR‑a‑ePub como un servicio web. + +Cada una de estas extensiones se basa en la lógica central de **cómo hacer OCR de una imagen** que acabamos de cubrir. + +## Código completo y funcional (listo para copiar‑pegar) + +A continuación está todo el programa en un solo bloque. Reemplaza `YOUR_DIRECTORY` con la ruta real a tu archivo de imagen. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Recuerda** – El paquete NuGet `Aspose.OCR` debe estar instalado, y el runtime .NET objetivo debe ser al menos .NET 5 para la mejor compatibilidad. + +## Conclusión + +Acabamos de cubrir **cómo hacer OCR de una imagen** en C# y convertir esas escaneos en libros ePub limpios—básicamente un flujo de trabajo de **convertir JPG a ePub** que puedes integrar en cualquier proyecto. Siguiendo los pasos anteriores podrás **extraer texto de una imagen**, manejar casos límite comunes y extender la solución a trabajos por lotes o servicios en la nube. + +Si tienes curiosidad por el siguiente paso lógico, prueba cambiar la salida ePub por un PDF (`OcrSaveFormat.Pdf`) o alimentar el texto OCR a una API de traducción. El cielo es el límite una vez que domines lo básico. + +¿Tienes preguntas sobre un formato de imagen en particular, o quieres ver un ejemplo de ePub de varias páginas? Deja un comentario y estaré encantado de ayudar. ¡Feliz codificación y disfruta convirtiendo imágenes en libros! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/spanish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..318f5685 --- /dev/null +++ b/ocr/spanish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-01-01 +description: Reconoce texto ruso al instante con Aspose OCR C#. Aprende a reconocer + texto chino, leer el número de páginas del PDF y convertir el texto de la página + del PDF en un solo tutorial. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: es +og_description: Reconocer texto ruso rápidamente usando Aspose OCR C#. Este tutorial + también cubre cómo reconocer texto chino, leer el recuento de páginas de PDF y convertir + el texto de la página PDF. +og_title: Reconocer texto ruso con Aspose OCR C# – Guía completa +tags: +- Aspose OCR +- C# +- PDF processing +title: Reconocer texto ruso con Aspose OCR C# – Guía completa de PDF multipágina +url: /es/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconocer texto ruso con Aspose OCR C# – Tutorial completo de PDF multipágina + +¿Alguna vez necesitaste **reconocer texto ruso** en un PDF que mezcla idiomas y te preguntaste cómo hacerlo sin usar una herramienta distinta para cada página? No estás solo. En muchos proyectos reales recibirás un único PDF que contiene inglés, ruso e incluso chino en diferentes páginas, y aún así querrás una salida de texto única y limpia. + +En esta guía te mostraremos exactamente cómo **reconocer texto ruso** (y otros idiomas) usando **Aspose OCR C#**, mientras demostramos cómo **leer el recuento de páginas del PDF**, **reconocer texto chino**, y **convertir texto de página PDF** en un práctico volcado de consola. Sin servicios externos, sin pasos ocultos—solo código puro en C# que puedes copiar‑pegar y ejecutar. + +> **Lo que obtendrás** +> * Una aplicación de consola C# ejecutable que procesa un PDF multipágina. +> * Selección de idioma por página (Ruso, Chino, Inglés). +> * Técnicas para consultar el recuento de páginas del PDF y extraer el texto de cada página. +> * Consejos, trampas y extensiones que puedes aplicar a tus propios proyectos. + +--- + +## Requisitos previos + +- .NET 6.0 o posterior (el código también funciona en .NET Framework 4.7+). +- Paquete NuGet **Aspose.OCR for .NET** instalado (`dotnet add package Aspose.OCR`). +- Un archivo PDF que contenga varios idiomas; para la demostración nos referiremos a `mixed_lang.pdf`. +- Familiaridad básica con aplicaciones de consola en C#. + +Si te falta alguno de estos, descarga la última versión de Aspose OCR desde NuGet y coloca tu PDF en una ubicación accesible desde la carpeta del proyecto. + +--- + +## Paso 1 – Inicializar el motor Aspose OCR + +Lo primero que necesitas es una instancia de `OcrEngine`. Este objeto contiene todas las configuraciones (como el idioma) y realiza el trabajo pesado. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por qué es importante:** +> El motor es reutilizable, por lo que no desperdiciamos memoria creando una nueva instancia para cada página. Reutilizarlo también nos permite cambiar el idioma sobre la marcha, lo cual es esencial para **reconocer texto ruso** en una página y **reconocer texto chino** en otra. + +--- + +## Paso 2 – Cargar el PDF y averiguar cuántas páginas tiene + +Antes de comenzar a reconocer, necesitamos el objeto PDF y su recuento de páginas. Aspose OCR trata cada página como un `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Consejo:** Si el PDF es muy grande, podrías querer leer el recuento primero y decidir si procesas todas las páginas o solo un subconjunto. + +--- + +## Paso 3 – Asignar a cada página su idioma deseado + +Aspose OCR soporta muchos idiomas, pero debes indicarle cuál usar para cada página. A continuación creamos un `Dictionary` donde la clave es el índice de página basado en cero. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Por qué es crucial:** +> Sin este mapa, el motor OCR intentaría un solo idioma predeterminado para todas las páginas, lo que produciría una salida distorsionada para texto ruso o chino. Este paso habilita directamente **reconocer texto ruso** y **reconocer texto chino** de forma correcta. + +--- + +## Paso 4 – Recorrer todas las páginas, establecer el idioma y reconocer el texto + +Ahora iteramos sobre cada página, cambiamos el idioma según nuestro mapa y llamamos a `Recognize`. El resultado se almacena en `OcrResult`, del cual extraemos el texto plano. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Salida esperada en la consola + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Explicación del flujo:** +> * El bucle respeta el **leer el recuento de páginas del PDF** que imprimimos antes. +> * Al intercambiar `ocrEngine.Settings.Language` en cada iteración, garantizamos un **reconocer texto ruso** preciso en la página 2 y un **reconocer texto chino** preciso en la página 3. +> * Las sentencias `Console.WriteLine` convierten efectivamente **convertir texto de página PDF** en una cadena legible por humanos. + +--- + +## Paso 5 – Ejecutar, verificar y ajustar + +1. Compila el proyecto (`dotnet build`). +2. Ejecútalo (`dotnet run`). +3. Compara la salida de la consola con el PDF original. + +Si notas caracteres faltantes, considera: + +- **Aumentar la precisión del OCR** configurando `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Proveer un paquete de idioma personalizado** si los diccionarios integrados de ruso o chino están desactualizados. +- **Ajustar DPI** al cargar el PDF (`OcrImage.FromFile(path, 300)`), lo que puede mejorar el reconocimiento en escaneos de baja resolución. + +--- + +## Bonus: Manejo de casos límite + +### ¿Qué pasa si el idioma de una página no está en el mapa? + +El código ya recurre al inglés por defecto, pero también puedes añadir un fallback que registre una advertencia: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### ¿Podemos procesar PDFs con más de tres idiomas? + +Claro. Amplía `languageMap` con índices adicionales y valores `OcrLanguage` soportados (por ejemplo, `OcrLanguage.French`). El bucle manejará cualquier número de páginas. + +### ¿Cómo exportar los resultados a un archivo en lugar de la consola? + +Reemplaza las llamadas a `Console.WriteLine` por `File.AppendAllText("output.txt", …)` o usa un `StringBuilder` que escribas una sola vez después del bucle. + +--- + +## Ilustración de imagen + +![recognize russian text example](/images/recognize-russian-text.png "Screenshot showing OCR output for Russian text") + +*La imagen anterior muestra la salida de consola cuando se **reconoce texto ruso** en un PDF multilingüe.* + +--- + +## Conclusión + +Hemos recorrido un ejemplo completo, de extremo a extremo, que muestra cómo **reconocer texto ruso** (y también **reconocer texto chino**) de un PDF multipágina usando **Aspose OCR C#**. Al leer el recuento de páginas del PDF, asignar cada página a su idioma correcto y recorrer el documento, puedes **convertir texto de página PDF** en cadenas simples listas para almacenar, indexar o analizar más a fondo. + +En resumen: + +- **Inicializa** un único `OcrEngine`. +- **Carga** el PDF y **lee el recuento de páginas del PDF**. +- **Asigna** páginas a idiomas (Ruso, Chino, etc.). +- **Itera**, establece `ocrEngine.Settings.Language` y **reconoce** cada página. +- **Salida** o guarda el texto extraído. + +Siéntete libre de adaptar este patrón a documentos más grandes, añadir manejo de errores o conectar los resultados a un índice de búsqueda. La idea central—selección de idioma por página—permanece igual, y es lo que hace posible un **reconocer texto ruso** fiable en PDFs multilingües. + +¿Tienes otro escenario, como escanear imágenes en lugar de PDFs? El mismo motor funciona; solo reemplaza `OcrImage.FromFile` por `OcrImage.FromStream` o `FromBitmap`. ¡Feliz codificación, y que tu OCR sea siempre preciso! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/ocr-configuration/_index.md b/ocr/swedish/net/ocr-configuration/_index.md index c6ad0534..39c5091b 100644 --- a/ocr/swedish/net/ocr-configuration/_index.md +++ b/ocr/swedish/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Lås upp kraften med OCR-bildigenkänning i .NET med Aspose.OCR. Extrahera text Lås upp kraftfulla OCR-funktioner med Aspose.OCR för .NET. Extrahera text från bilder sömlöst. ### [OCRoperation med List i OCR-bildigenkänning](./ocr-operation-with-list/) Lås upp potentialen hos Aspose.OCR för .NET. Utför enkelt OCR-bildigenkänning med listor. Öka produktiviteten och datautvinningen i dina applikationer. +### [Hur du tillämpar licens i Aspose OCR – Steg‑för‑steg C#‑guide](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Lär dig hur du aktiverar licensen för Aspose OCR i C# med en tydlig steg‑för‑steg‑guide. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/swedish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..dcc23c1f --- /dev/null +++ b/ocr/swedish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-01-01 +description: Hur man tillämpar licens för Aspose OCR i C#. Lär dig hur man läser fil, + sätter Aspose‑licens, använder MemoryStream och laddar licensen effektivt. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: sv +og_description: Hur man tillämpar licens för Aspose OCR i C#. Följ den här guiden + för att läsa licensfilen, ställa in Aspose‑licensen, använda MemoryStream och verifiera + installationen. +og_title: Hur man tillämpar licens i Aspose OCR – Komplett C#‑handledning +tags: +- Aspose +- OCR +- C# +- Licensing +title: Hur man tillämpar licens i Aspose OCR – Steg‑för‑steg C#‑guide +url: /sv/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Så här tillämpar du licens i Aspose OCR – Komplett C#‑guide + +Har du någonsin undrat **hur man tillämpar licens** för Aspose OCR utan att jaga vaga dokument? Du är inte ensam. De flesta utvecklare stöter på samma problem: de kan läsa filen, men de vet inte hur de ska mata in den i biblioteket på rätt sätt. I den här handledningen går vi igenom varje detalj—från att ladda `.lic`‑filen från disk till att anropa `SetLicense` med en `MemoryStream`. När du är klar har du en fungerande lösning som du kan lägga in i vilket .NET‑projekt som helst. + +Vi kommer också att gå igenom **hur man läser fil** på ett säkert sätt, det korrekta sättet att **sätta Aspose‑licens**, och varför användning av en **MemoryStream** är det renaste tillvägagångssättet. Om du är nyfiken på **hur man laddar licens** i olika miljöer, så finns även dessa tips med. Inga externa referenser behövs—bara ren, kopiera‑och‑klistra‑klar kod. + +## Förutsättningar + +- .NET 6.0 eller senare (koden fungerar med .NET Core och .NET Framework lika bra) +- Aspose.OCR NuGet‑paket installerat (`Install-Package Aspose.OCR`) +- En giltig `Aspose.OCR.lic`‑fil placerad någonstans där din applikation kan nå den +- Grundläggande kunskap om C# och Visual Studio (eller någon annan IDE du föredrar) + +> **Proffstips:** Håll licensfilen utanför din källkontrollsmapp för att undvika oavsiktliga incheckningar. + +## Steg 1: Hur man läser fil – Ladda licensens byte + +Det första vi behöver är den råa byte‑arrayen för licensfilen. Att använda `File.ReadAllBytes` är både enkelt och effektivt, och det kastar automatiskt ett tydligt undantag om sökvägen är fel. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Varför detta är viktigt:** Att läsa filen direkt till minnet undviker filhandtagsläckor och ger oss en ren byte‑array att arbeta med senare. Det gör också metoden återanvändbar i konsolappar, webb‑tjänster eller Azure Functions. + +## Steg 2: Hur man använder MemoryStream – Förbered licensströmmen + +Asposes `License.SetLicense`‑överkurs förväntar sig en `Stream`. Att omsluta byte‑arrayen i en `MemoryStream` är det idiomatiska sättet att uppfylla det kravet utan att röra filsystemet igen. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Viktig insikt:** `MemoryStream` är lättviktig och frigörs snabbt. Den låter dig också återanvända samma byte‑array för flera bibliotek om du någonsin behöver tillämpa mer än en Aspose‑produktlicens. + +## Steg 3: Sätt Aspose‑licens – Kärnan i “hur man tillämpar licens” + +Nu när vi har en `MemoryStream` är det en enkelrad att tillämpa licensen. `License`‑klassen finns i `Aspose.OCR`‑namnrymden, så se till att du har lagt till rätt `using`‑direktiv. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Om licensen är ogiltig eller har gått ut kommer `SetLicense` att misslyckas tyst, och biblioteket körs i provläge. För att vara helt säker kan du kontrollera en funktion som bara finns i den licensierade versionen (t.ex. OCR‑noggrannhetsinställningar) eller helt enkelt förlita dig på bekräftelsemeddelandet som vi skriver ut senare. + +## Steg 4: Hur man laddar licens – Sätt ihop allt + +Nedan är det kompletta, körbara konsolprogrammet som demonstrerar **hur man laddar licens** från disk, använder en `MemoryStream` och verifierar att licensen har tillämpats framgångsrikt. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Förväntad utdata + +``` +License applied successfully. You can now perform OCR operations. +``` + +Om du ser meddelandet är biblioteket fullt licensierat och redo för produktionsklassade OCR‑uppgifter. + +## Vanliga fallgropar & hur man undviker dem + +| Problem | Varför det händer | Åtgärd | +|---------|-------------------|--------| +| **FileNotFoundException** när licensen läses | Sökvägen är fel eller filen är inte distribuerad med appen | Använd en absolut sökväg eller bädda in licensen som en resurs (se “alternativ inläsning” nedan) | +| **Licensen tillämpas inte men inget fel** | `SetLicense` faller tyst tillbaka till provläge om strömmen är tom eller korrupt | Verifiera `licenseData.Length > 0` innan du skapar `MemoryStream` | +| **MemoryStream inte disponeras** | Glömmer `using` vilket leder till att ohanterade resurser hänger kvar | Omge alltid strömmen med ett `using`‑block som visat | + +### Alternativ: Bädda in licensen som en inbäddad resurs + +Om du föredrar att inte leverera en separat `.lic`‑fil, lägg till den i ditt projekt, sätt **Build Action** till **Embedded Resource**, och läs den så här: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Anropa sedan `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` och fortsätt med samma `MemoryStream`‑metod. + +## Slutsats + +Vi har gått igenom **hur man tillämpar licens** för Aspose OCR från början till slut: läsa filen, skapa en `MemoryStream`, anropa `SetLicense` och bekräfta aktiveringen. Genom att följa dessa steg eliminerar du gissningar, undviker vanliga fel och säkerställer att din OCR‑motor körs i fullfunktionsläge. + +Nästa steg kan vara att utforska **hur man läser fil** asynkront för höggenomströmningstjänster, eller dyka ner i avancerade OCR‑inställningar nu när licensen är korrekt laddad. Oavsett så förblir mönstret detsamma—läsa, strömma, sätta, verifiera. + +Har du frågor om kantfall, som att ladda licensen i en ASP.NET Core‑miljö eller hantera flera Aspose‑produktlicenser? Lämna en kommentar nedan, och lycka till med kodandet! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/ocr-optimization/_index.md b/ocr/swedish/net/ocr-optimization/_index.md index cef3fac3..9e0aeb3c 100644 --- a/ocr/swedish/net/ocr-optimization/_index.md +++ b/ocr/swedish/net/ocr-optimization/_index.md @@ -50,9 +50,14 @@ Utforska Aspose.OCR för .NET. Öka OCR-noggrannheten med förbehandlingsfilter. Förbättra OCR-noggrannheten med Aspose.OCR för .NET. Korrigera stavningar, anpassa ordböcker och uppnå felfri textigenkänning utan ansträngning. ### [Spara flersidigt resultat som dokument i OCR-bildigenkänning](./save-multipage-result-as-document/) Lås upp potentialen hos Aspose.OCR för .NET. Spara enkelt flersidiga OCR-resultat som dokument med denna omfattande steg-för-steg-guide. +### [Hur man batch-OCR i C# med Aspose OCR-motorn](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Lär dig bearbeta flera bilder samtidigt med Aspose OCR i C#. Effektiv batch-OCR för dina .NET-applikationer. +### [Förbehandla bild‑OCR i C# – öka noggrannheten med Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Lär dig hur du förbehandlar bilder för OCR i C# för att förbättra igenkänningsprecisionen med Aspose OCR. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/swedish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..245061ce --- /dev/null +++ b/ocr/swedish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-01-01 +description: Hur man batch-OCR med Aspose OCR Engine i C#. Lär dig att känna igen + text från bilder och extrahera text från TIFF-filer med GPU-acceleration. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: sv +og_description: Hur man batch-OCR i C# med Aspose OCR Engine. Denna guide visar hur + du kan känna igen text från bilder och extrahera text från TIFF-filer på ett effektivt + sätt. +og_title: Hur man batchar OCR i C# – Komplett Aspose‑guide +tags: +- OCR +- C# +- Aspose +- GPU +title: Hur man batchar OCR i C# med Aspose OCR-motorn +url: /sv/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man batch-OCR i C# med Aspose OCR Engine + +Har du någonsin undrat **hur man batch-OCR** när du har dussintals skannade dokument liggande i en mapp? Du är inte ensam—många utvecklare stöter på den muren när de går från enstaka bildigenkänning till att bearbeta en hel samling. Den goda nyheten är att Aspose OCR gör det till en barnlek, oavsett om du kör på en CPU eller utnyttjar GPU-acceleration. + +I den här handledningen går vi igenom ett komplett, körbart exempel som **läser av text från bilder** och även **extraherar text från TIFF**‑filer i bulk. Inga vaga “se dokumentationen”-genvägar—bara en självständig lösning som du kan kopiera‑klistra in och köra idag. + +## Förutsättningar + +* .NET 6.0 eller senare installerat (koden riktar sig mot .NET 6, men .NET 5 fungerar också). +* Aspose.OCR för .NET NuGet‑paket (både CPU‑ och GPU‑versioner finns tillgängliga; installera den som matchar din hårdvara). +* En mapp med några exempel‑TIFF‑ eller PNG‑filer som du vill bearbeta. +* Visual Studio 2022 eller någon annan IDE du föredrar. + +> **Proffstips:** Om du planerar att använda GPU‑versionen, kontrollera att din grafikdrivrutin är uppdaterad och att CUDA 11+ är installerat. Motorn kommer automatiskt att falla tillbaka till CPU om den inte hittar ett kompatibelt GPU. + +## Steg 1 – Ställ in projektet och installera Aspose.OCR + +### H2: Skapa en ny konsolapp och lägg till Aspose.OCR + +Öppna en terminal (eller Package Manager Console i Visual Studio) och kör: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Om du har en GPU‑aktiverad licens, lägg till GPU‑paketet istället: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Klart—ditt projekt refererar nu till OCR‑biblioteket som vi kommer att använda för **batch-OCR**. + +## Steg 2 – Initiera OCR‑motorn (CPU eller GPU) + +### H2: Hur man batch-OCR – Motorinitiering + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Varför detta är viktigt:** Genom att växla `UseGpu` låter du Aspose bestämma den snabbaste vägen. Om GPU inte är tillgänglig byter motorn tyst tillbaka till CPU, så ditt batch‑jobb kraschar aldrig på grund av saknad hårdvara. + +## Steg 3 – Samla filerna du vill bearbeta + +### H2: Läs av text från bilder – Bygg fillistan + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Obs på kantfall:** Om du har en blandning av format, ändra sökmönstret till `"*.*"` och filtrera efter filändelse i loopen. Detta håller batchen flexibel. + +## Steg 4 – Bearbeta varje bild och visa en förhandsgranskning + +### H2: Extrahera text från TIFF – Loopa igenom filerna + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Vad du kommer att se:** För varje TIFF skriver konsolen ut något i stil med: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Den förhandsgranskningen bekräftar att batchen lyckades utan att du behöver öppna varje fil manuellt. + +## Steg 5 – Spara resultat (valfritt men praktiskt) + +### H3: Spara OCR‑utdata till textfiler + +Om du behöver hela texten för efterföljande bearbetning, lägg till detta inuti `foreach`‑loopen: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Nu får varje TIFF en tillhörande `.txt`‑fil som innehåller hela OCR‑utdata—perfekt för indexering, sökning eller för att mata in i en språkmodell. + +## Steg 6 – Kör demon och verifiera + +1. Bygg projektet: `dotnet build`. +2. Kör: `dotnet run --project GpuBatchDemo.csproj`. + +Du bör se förhandsgranskningsraderna skrivas ut i konsolen, och (om du lade till det valfria steget) en serie `.txt`‑filer bredvid dina källbilder. + +### H3: Vanliga fallgropar & hur man åtgärdar dem + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Bilden är för mörk eller låg DPI | Förprocessa bilder (öka kontrast, skala upp) eller sätt `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Föråldrad drivrutin | Uppdatera GPU‑drivrutin, eller sätt `UseGpu = false` för att tvinga CPU. | +| **Exception “File not found”** | Fel sökvägsseparator på Linux/macOS | Använd `Path.Combine` eller framåtsnedstreck (`/`). | + +## Steg 7 – Skala upp (utöver några filer) + +När du går från ett fåtal TIFF‑filer till tusentals, överväg: + +* **Parallell bearbetning:** Inslå `foreach` i `Parallel.ForEach` (se till att motorinstansen är trådsäker; annars skapa en per tråd). +* **Chunkad I/O:** Läs bilder i batcher för att undvika att RAM tar slut. +* **Loggning:** Skriv framsteg till en loggfil; det hjälper att återuppta efter en krasch. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Kom ihåg:** GPU‑minnet delas, så att starta för många parallella GPU‑jobb kan faktiskt göra det långsammare. Testa med några trådar först. + +## Fullt fungerande exempel (Klar att kopiera‑klistra in) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Att köra detta program kommer att **läsa av text från bilder**, **extrahera text från TIFF**, och demonstrera **hur man batch-OCR** effektivt. + +## Slutsats + +Du har nu ett gediget, end‑to‑end‑exempel på **hur man batch-OCR** i C# med Asposes OCR‑motor. Handledningen täckte allt från att sätta upp projektet, växla GPU‑acceleration, bygga en fillista, bearbeta varje bild och spara resultat. Oavsett om du extraherar text från TIFF‑filer eller något annat bildformat, gäller samma mönster—byt bara filändelserna. + +Redo för nästa steg? Prova att integrera OCR‑utdata med ett sökindex, mata in texten i en stor språkmodell, eller experimentera med parallell bearbetning för att spara minuter på massiva batcher. Himlen är gränsen, och du har grunden att bygga vidare på. + +Har du frågor eller vill dela dina egna batch‑OCR‑tips? Lämna en kommentar nedan—lycka till med kodandet! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/swedish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..55fa7e64 --- /dev/null +++ b/ocr/swedish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Förbehandla bild‑OCR för att förbättra noggrannheten. Lär dig hur du + känner igen text i bild, förbättra OCR‑noggrannheten, ladda bild‑OCR och visa OCR‑text + med Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: sv +og_description: Förbehandla bild‑OCR för att förbättra noggrannheten. Denna guide + visar hur man känner igen text i en bild, laddar bild‑OCR, tillämpar filter och + visar OCR‑texten. +og_title: Förbehandla bild‑OCR i C# – Öka noggrannheten med Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Förbehandla bild‑OCR i C# – Öka noggrannheten med Aspose OCR +url: /sv/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr i C# – Öka noggrannheten med Aspose OCR + +Har du någonsin funderat på hur man **preprocess image ocr** så att motorn faktiskt läser vad som står på sidan? Du är inte ensam – de flesta utvecklare stöter på problem när en brusig, sned bild vägrar samarbeta. Den goda nyheten är att några smarta förbehandlingssteg kan förvandla en katastrofbild till ren, läsbar text. + +I den här handledningen går vi igenom ett komplett, färdigt exempel som **recognize text image**‑filer, **improve OCR accuracy**, och slutligen **display OCR text** i konsolen. När du är klar vet du hur du **load image OCR**‑resurser, bifogar filter som snedkorrigering och brusreducering, och får pålitliga resultat – allt med Aspose.OCR för .NET. + +## Vad du kommer att lära dig + +- Hur du skapar en `OcrEngine`‑instans och konfigurerar förbehandlingsfilter. +- Varför snedkorrigering och brusfilter är viktiga för **improve OCR accuracy**. +- Den exakta koden för att **load image ocr**‑filer och köra igenkänning. +- Hur du **display OCR text** på ett användarvänligt sätt. +- Tips, fallgropar och valfria justeringar du kan använda i verkliga projekt. + +### Förutsättningar + +- .NET 6+ (eller .NET Framework 4.7+) installerat på din maskin. +- En licens för Aspose.OCR (gratis provversion fungerar för detta demo). +- Grundläggande kunskaper i C# – inga avancerade knep krävs. + +Om någon av dessa känns obekant, pausa och installera de saknade komponenterna; resten av guiden förutsätter att de finns på plats. + +--- + +## preprocess image ocr – Ställa in filter + +Det första du måste förstå är **why preprocessing matters**. OCR‑motorer är bra på att läsa skarp, rak text, men verkliga skanningar lider ofta av rotation, oskärpa eller bakgrundsbrus. Genom att mata in en rengjord bild till motorn ökar du dramatiskt chansen för en korrekt transkription. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Vad händer här?** +- **Steg 1** skapar motorn – hjärtat i Aspose OCR‑biblioteket. +- **Steg 2** bifogar två filter. `SkewCorrectionFilter` roterar bilden tillbaka till horisontell, medan `DenoiseFilter` jämnar ut brus på pixelnivå. +- **Steg 3** är valfritt men praktiskt; du kan begränsa den maximala vinkel som motorn försöker korrigera, vilket förhindrar överrotation på redan raka sidor. +- **Steg 4** är där du **load image OCR**‑data. Ersätt `YOUR_DIRECTORY/skewed_noisy.jpg` med sökvägen till din testfil. +- **Steg 5** kör faktiskt OCR och producerar ett `OcrResult`. +- **Steg 6** **display OCR text** i konsolen, vilket ger dig omedelbar återkoppling. + +> **Pro tip:** Om du märker att utskriften fortfarande innehåller förvrängda tecken, prova att öka `MaxAngle` eller lägga till ett `ContrastFilter` före brusreduceringssteget. + +--- + +## recognize text image – Ladda dina filer korrekt + +Ett vanligt fallgropp är **load image ocr** med fel format eller DPI. Aspose.OCR stödjer PNG, JPEG, TIFF, BMP och även PDF‑baserade bilder. Motorn fungerar dock bäst med 300 DPI eller högre för tryckta dokument. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Om du arbetar med en flersidig TIFF kan du loopa igenom varje ram: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Varför är detta viktigt för improve OCR accuracy?** Högre upplösning bevarar varje teckens form, vilket ger igenkännaren fler datapunkter att arbeta med. Bilder med låg DPI leder ofta till sammanslagna eller brutna tecken, som motorn missförstår. + +--- + +## improve OCR accuracy – Justera filterparametrar + +Standardinställningarna för filter är en bra utgångspunkt, men du kan pressa ut extra prestanda. + +| Filter | Nyckelegenskap | Typiskt värde | När du ska justera | +|--------|----------------|---------------|--------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (grader) | Bilder som är kraftigt lutade (upp till 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Mycket brusiga skanningar; öka till `0.8`. | +| `ContrastFilter` (valfritt) | `Level` | `1.2` | Lågkontrast‑skärmbilder. | + +Exempel på anpassning av båda: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** Om din bild innehåller både handskrivna anteckningar och tryckt text kan du vilja lägga till ett `BinarizationFilter` före brusreducering för att separera förgrund från bakgrund. + +--- + +## display OCR text – Formatera utskriften + +Vanlig konsolutskrift fungerar för demo, men produktionskod kräver ofta rensade strängar, radbrytningar eller till och med JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Om du behöver JSON för ett API‑svar: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Nu har du **display OCR text** i ett format som efterföljande tjänster kan konsumera. + +--- + +## Fullt fungerande exempel – Sätt ihop allt + +Nedan är det slutgiltiga, självständiga programmet som du kan kopiera och klistra in i ett nytt konsolprojekt. Det inkluderar valfria filter, inläsning av högupplöst bild och ren utskrift. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Förväntad konsolutskrift (exempel):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Om du kör programmet med en annan fil kommer texten och förtroendevärdet att förändras därefter. + +--- + +## Vanliga frågor & svar + +**Q: Vad händer om min bild redan är rak?** +A: Snedkorrigeringsfiltret kommer att upptäcka en nästan nollvinkel och i praktiken bli en ingen‑operation, så du kan säkert ha den aktiverad. + +**Q: Stöder Aspose.OCR språk annat än engelska?** +A: Ja – sätt helt enkelt `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (eller vilket stödjert språk som helst) innan du anropar `Recognize`. + +**Q: Hur hanterar jag flersidiga PDF‑filer?** +A: Konvertera varje sida till en bild (Aspose.PDF kan göra detta) och skicka dem en‑och‑en till samma `OcrEngine`‑instans. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/text-recognition/_index.md b/ocr/swedish/net/text-recognition/_index.md index fbefcc10..237e38ee 100644 --- a/ocr/swedish/net/text-recognition/_index.md +++ b/ocr/swedish/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Förbättra dina .NET-applikationer med Aspose.OCR för effektiv bildtextigenkä Lås upp potentialen för OCR i .NET med Aspose.OCR. Extrahera text från PDF-filer utan ansträngning. Ladda ner nu för en sömlös integrationsupplevelse. ### [Identifiera tabell i OCR-bildigenkänning](./recognize-table/) Lås upp potentialen hos Aspose.OCR för .NET med vår omfattande guide om att känna igen tabeller i OCR-bildigenkänning. +### [c# OCR-handledning: Extrahera text från bild med Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Lär dig hur du med C# och Aspose OCR extraherar text från bilder i enkla steg. +### [c# OCR-handledning – Extrahera text från bilder och exportera till JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Lär dig hur du med C# och Aspose OCR extraherar text från bilder och sparar resultatet i JSON-format. +### [Hur man OCR:ar bild i C# – Konvertera JPG till ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Lär dig hur du med Aspose.OCR i C# konverterar JPG-bilder till ePub-format för e-böcker. +### [Känn igen rysk text med Aspose OCR C# – Full guide för flersidig PDF](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Lär dig hur du med Aspose OCR i C# extraherar rysk text från flersidiga PDF-filer i en komplett guide. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..1be50a68 --- /dev/null +++ b/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR-handledning som visar hur man extraherar text från en bild, utför + OCR på JPG-filer med Aspose OCR. Lär dig att ladda bild för OCR och få exakta resultat. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: sv +og_description: c# OCR-handledning som guidar dig genom att extrahera text från en + bild, utföra OCR på JPG och ladda bilder för OCR med Aspose. +og_title: c# OCR-handledning – Extrahera text från bild med Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'c# ocr-handledning: Extrahera text från bild med Aspose OCR' +url: /sv/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR‑handledning – Extrahera text från bild med Aspose OCR + +Letar du efter en **c# ocr tutorial** som faktiskt fungerar? I den här guiden visar vi hur du **extraherar text från en bild** och **utför OCR på JPG**‑filer med Aspose.OCR‑biblioteket. Oavsett om du bygger en kvittescanner, ett dokumentarkiv eller bara är nyfiken på att läsa text från bilder, så tar stegen nedan dig från noll till fungerande kod på några minuter. + +Vi går igenom allt du behöver: installera paketet, ladda en bild för OCR, konfigurera språkresurser, köra igenkänningsmotorn och hantera de vanligaste fallgroparna. I slutet har du en självständig konsolapp som skriver ut den igenkända texten i konsolen – utan externa tjänster. + +## Vad du behöver + +- .NET 6.0 eller senare (koden fungerar även med .NET Framework 4.6+) +- Visual Studio 2022, VS Code eller någon annan C#‑editor du föredrar +- En bildfil som innehåller rysk (kyrillisk) text, t.ex. `receipt_ru.jpg` +- Internetuppkoppling för första körningen (Aspose laddar automatiskt ner språkresurser) + +Om du redan har detta, bra – låt oss sätta igång. + +## Steg 1: Installera Aspose.OCR och skapa ett nytt projekt + +Först och främst, lägg till Aspose.OCR‑NuGet‑paketet i ditt projekt. Öppna en terminal i din lösningsmapp och kör: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Använd flaggan `--version` för att låsa fast den senaste stabila versionen, t.ex. `Aspose.OCR 23.9.0`. + +Skapa sedan ett enkelt konsolprojekt (hoppa över detta om du redan har ett): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Nu har du en ren bas där du senare kan klistra in hela exempel­koden. + +## Steg 2: Ladda bild för OCR + +Att ladda bilden är det första funktionella steget i någon **c# ocr tutorial**. Aspose.OCR accepterar en filsökväg, en ström eller till och med en `Bitmap`. I vårt exempel håller vi det enkelt och laddar från disk: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Varför det är viktigt:** Genom att explicit ladda bilden ger du motorn ett tydligt mål, vilket förbättrar noggrannheten – särskilt när du arbetar med flersidiga PDF‑filer eller blandade format. + +## Steg 3: Konfigurera språk och automatisk nedladdning av resurser + +Aspose.OCR levereras med språkpaket som kan laddas ner vid behov. Att aktivera automatisk nedladdning säkerställer att motorn hämtar de ryska språkdatan första gången du kör koden. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Förklaring:** +> • `AutoDownloadResources = true` tar bort det manuella steget att hämta `.dat`‑filer. +> • Att sätta `Language` talar om för motorn vilket teckensnitt som förväntas, vilket dramatiskt ökar både hastighet och noggrannhet. + +## Steg 4: Kör OCR och hämta den igenkända texten + +Nu sker det tunga arbetet. Metoden `Recognize` bearbetar bilden och returnerar ett `OcrResult`‑objekt som innehåller den extraherade strängen. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +När du kör programmet bör du se något liknande: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Vad du kan förvänta dig:** Den exakta utskriften beror på kvaliteten på källbilden, men Asposes neurala‑nätverks‑baserade motor hanterar vanligtvis rena kvitton och tryckta formulär med hög precision. + +## Fullständigt fungerande exempel + +Nedan finns den **fullständiga, körbara koden** som kombinerar alla steg. Kopiera‑klistra in den i `Program.cs`, ersätt `YOUR_DIRECTORY` med den faktiska mappvägen och kör `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tips:** Om du behöver **extrahera text från bild**‑filer som inte är JPG (PNG, BMP, TIFF), ändra bara filändelsen – Aspose hanterar dem alla. + +## Steg 5: Vanliga fallgropar & pro‑tips + +| Problem | Varför det händer | Lösning | +|---------|-------------------|---------| +| **Skräptecken** | Lågupplöst bild eller stark komprimering | Använd en bild av högre kvalitet, eller förbehandla med `Bitmap` (t.ex. öka kontrast) | +| **Språket känns inte igen** | Språkpaket har inte laddats ner | Säkerställ att `AutoDownloadResources` är `true` och att maskinen har internetuppkoppling första gången | +| **Null `ocrResult.Text`** | Felaktig bildsökväg eller fil saknas | Verifiera sökvägen, använd `File.Exists` innan du laddar | +| **Prestandaproblem** | Stort antal bilder bearbetas sekventiellt | Återanvänd en enda `OcrEngine`‑instans över flera anrop | + +### Bonus: Läs flera filer i en loop + +Om du behöver **utföra OCR på JPG**‑filer i en mapp, omslut logiken i en `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Detta mönster skalar bra för kvitto‑bearbetnings‑pipelines. + +## Slutsats + +Du har precis slutfört en **c# ocr tutorial** som visar hur man **extraherar text från bild**, **utför OCR på JPG** och **laddar bild för OCR** med Aspose.OCR. Exempelprogrammet demonstrerar hela flödet – från installation av NuGet‑paketet till utskrift av den igenkända kyrilliska texten – så att du kan kopiera det till vilket .NET‑projekt som helst direkt. + +Redo för nästa steg? Prova att byta **OcrLanguage.Russian** mot **OcrLanguage.English** för att känna igen engelska kvitton, eller experimentera med `OcrEngine.Settings`‑alternativen (t.ex. `PageSegmentationMode`, `ImagePreprocessing`) för att finjustera noggrannheten. Du kan också integrera resultatet i en databas, generera PDF‑filer eller skicka det till ett översättnings‑API. + +Om du stöter på problem, kolla Aspose.OCR‑dokumentationen eller lämna en kommentar nedan. Lycka till med kodandet, och må dina OCR‑resultat alltid vara kristallklara! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..44008c7e --- /dev/null +++ b/ocr/swedish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR‑handledning som visar hur man extraherar text, laddar bild för + OCR och skriver JSON till fil med Aspose.OCR – steg‑för‑steg‑guide. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: sv +og_description: c# OCR-handledning som guidar dig genom hur du extraherar text från + bilder, laddar bild för OCR och skriver JSON till fil med Aspose.OCR. +og_title: c# OCR-handledning – Extrahera text och exportera till JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR-handledning – Extrahera text från bilder och exportera till JSON +url: /sv/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR‑handledning – Extrahera text från bilder och exportera till JSON + +Har du någonsin undrat hur man extraherar text från en skannad faktura utan att spendera timmar på att skriva egna parserar? Du är inte ensam. I den här **c# OCR‑handledning** visar vi exakt hur du laddar en bild för OCR, kör igenkänningsmotorn och sedan **skriver JSON till fil** så att du kan föra data till efterföljande system. + +Föreställ dig att du har en mapp med kvitton, var och en namngiven `receipt1.png`, `receipt2.png`, och du behöver ett snabbt sätt att omvandla dem till sökbara JSON‑poster. Det är problemet vi ska lösa, och i slutet har du en färdig‑körbar konsolapp som gör just det. Inga extra beroenden utöver Aspose.OCR, och ingen magi—bara tydliga, reproducerbara steg. + +> **Vad du kommer att lära dig** +> - Hur man **laddar bild för OCR** med Aspose.OCR. +> - Det bästa sättet att **extrahera text** och få förtroendescore. +> - Konvertera OCR‑resultatet till en välstrukturerad **OCR‑bild till JSON**‑payload. +> - Säkert **skriva JSON till fil** och verifiera resultatet. + +## Förutsättningar + +- .NET 6 SDK eller senare (koden fungerar även på .NET Core). +- Visual Studio 2022 eller någon annan editor du föredrar. +- Aspose.OCR NuGet‑paket (`Install-Package Aspose.OCR`). +- En bildfil (PNG, JPG, BMP) som du vill bearbeta – för demo använder vi `invoice.png`. + +Om du saknar någon av dessa, hämta SDK:n från Microsofts webbplats och lägg till NuGet‑paketet via Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Nu när grunderna är lagda, låt oss dyka in i den faktiska implementeringen. + +## Steg 1: c# OCR‑handledning – Initiera OCR‑motorn + +Innan vi kan **ladda bild för OCR**, behöver vi en instans av motorn som driver igenkänningsprocessen. Klassen `OcrEngine` är lättviktig, men det är god praxis att omsluta den i ett `using`‑block så att resurser frigörs omedelbart. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Proffstips:* Om du planerar att bearbeta många bilder i ett batch, återanvänd samma `OcrEngine`‑instans istället för att skapa en ny varje gång. Det minskar minnesanvändning och snabbar upp processen. + +## Steg 2: Ladda bild för OCR + +Nu **laddar vi faktiskt bild för OCR**. Aspose.OCR stödjer en mängd olika format, så du kan peka på en PNG, JPEG eller till och med en fler‑sidig TIFF. Metoden `OcrImage.FromFile` läser filen och förbereder den för igenkänning. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Varför detta är viktigt:** Att ladda bilden separat låter dig inspektera dess dimensioner, DPI eller till och med förbehandla den (t.ex. binarisering) innan du skickar den till motorn. Om bilden är korrupt kommer `FromFile` att kasta ett tydligt undantag, som du kan fånga och logga. + +## Steg 3: Hur man extraherar text – Kör igenkänning + +Med bilden i handen kan vi äntligen **extrahera text** från den. Metoden `Recognize` returnerar ett `OcrResult`‑objekt som innehåller inte bara ren text utan även positionsdata och förtroendescore för varje ord. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Vissa PDF‑filer innehåller osynliga textlager. Om du matar in en PDF‑sida renderad som en bild kan motorn se ingenting. I sådana fall, överväg att använda Aspose.PDF för att extrahera det dolda lagret först, och falla tillbaka till OCR endast när det behövs. + +## Steg 4: OCR‑bild till JSON – Konvertera resultatet + +`OcrResult`‑klassen erbjuder en praktisk `ToJson()`‑hjälpmetod som serialiserar hela resultatet—inklusive varje ords avgränsningsruta och förtroende—till en JSON‑sträng. Detta är det renaste sättet att uppnå **OCR‑bild till JSON** utan att skriva en egen serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Om du föredrar ett eget schema kan du iterera över `ocrResult.Words` och bygga ditt eget objekt, men för de flesta scenarier är den inbyggda JSON‑en tillräcklig och redan välstrukturerad. + +## Steg 5: Skriv JSON till fil + +Nu kommer den sista pusselbiten: att spara JSON‑payloaden. Metoden `File.WriteAllText` säkerställer att filen skapas (eller skrivs över) atomärt. Se till att målkatalogen finns, annars får du ett `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tips:* Om du behöver UTF‑8 med BOM eller en annan kodning, använd overloaden som accepterar ett `Encoding`‑argument. + +## Steg 6: Verifiera resultatet + +En snabb `Console.WriteLine` visar att processen slutfördes framgångsrikt. Du kan också öppna JSON‑filen i en visare för att bekräfta strukturen. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Förväntat JSON‑exempel + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON‑en inkluderar varje ords position, vilket är praktiskt om du senare vill markera text i ett UI. + +## Fullt fungerande exempel + +Nedan är det kompletta, kopiera‑och‑klistra‑klara programmet. Ersätt `YOUR_DIRECTORY` med den faktiska sökvägen där din bild finns. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Kör programmet (`dotnet run` från projektmappen) så hittar du `invoice.json` bredvid din ursprungliga PNG. + +## Vanliga fallgropar & hur man undviker dem + +| Problem | Varför det händer | Åtgärd | +|-------|----------------|-----| +| **FileNotFoundException** när bilden laddas | Felaktig sökväg eller saknad fil | Använd `Path.Combine` och kontrollera `File.Exists` innan du anropar `FromFile`. | +| **Low confidence scores** | Dålig bildkvalitet, låg DPI | Förbehandla med `ocrImage.AdjustContrast` eller skala upp bilden till 300 DPI. | +| **JSON file empty** | `ocrResult` returnerade null (motorn misslyckades) | Verifiera att bildformatet stöds och att licensen (om någon) är korrekt tillämpad. | +| **Performance bottleneck on large batches** | Återskapar `OcrEngine` varje iteration | Återanvänd en enda `OcrEngine`‑instans för hela batchen och disponera den först i slutet. | + +## Nästa steg + +Nu när du har bemästrat **c# OCR‑handledning** kanske du vill: + +- **Batch process** en hel mapp och samla JSON‑filerna i en enda databas. +- **Integrate** resultatet med Azure Cognitive Search för sökbara PDF‑filer. +- **Add language support** genom att sätta `ocrEngine.Language = OcrLanguage.Spanish` (eller något annat stödjert språk). +- **Post‑process** JSON‑en för att extrahera tabeller eller nyckel‑värde‑par med reguljära uttryck. + +Var och en av dessa utökningar bygger på de grundläggande koncept vi täckte: att ladda bilder för OCR, extrahera text, konvertera till JSON och skriva den JSON‑en till disk. + +--- + +### Slutsats + +I denna **c# OCR‑handledning** gick vi igenom varje steg som krävs för att **ladda bild för OCR**, **extrahera text**, omvandla resultatet till en **OCR‑bild till JSON**‑payload, och slutligen **skriva JSON till fil**. Det kompletta kodexemplet är redo att infogas i vilket .NET‑projekt som helst, och förklaringarna ger dig den kontext du behöver för att anpassa lösningen till verkliga scenarier. + +Prova det med dina egna kvitton eller fakturor—justera bildförbehandlingen, experimentera med olika språk, och se JSON‑utdata växa. Om du stöter på problem, gå tillbaka till tabellen med fallgropar eller lämna en kommentar nedan. Lycka till med kodandet! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/swedish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..5f590392 --- /dev/null +++ b/ocr/swedish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: Lär dig hur du OCR:ar en bild i C# och konverterar JPG till ePub med + Aspose OCR. Denna steg‑för‑steg‑guide visar också hur du extraherar text från en + bild. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: sv +og_description: Hur OCR:ar man en bild i C#? Följ den här guiden för att extrahera + text från en bild och konvertera JPG till ePub med Aspose OCR. +og_title: Hur man OCR:ar bild i C# – Konvertera JPG till ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Hur man OCR:ar en bild i C# – Konvertera JPG till ePub +url: /sv/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man OCR:ar bild i C# – Konvertera JPG till ePub + +Har du någonsin funderat **hur man OCR:ar bild**‑filer direkt från en C#‑konsolapp? Du är inte ensam. Många utvecklare fastnar när de behöver dra ut text ur ett fotografi och sedan paketera den texten i en läsbar ePub‑bok. + +I den här handledningen går vi igenom ett komplett, körbart exempel som **extraherar text från bild**, sparar resultatet som en ePub och visar dig hur du **konverterar JPG till ePub** utan att lämna din IDE. Inga onödiga utsvävningar, bara koden du kan kopiera‑klistra och köra idag. + +## Vad du kommer att lära dig + +- Hur du sätter upp Aspose OCR‑motorn i ett .NET‑projekt. +- De exakta stegen för att **konvertera bild till epub** med `OcrSaveFormat.Epub`‑alternativet. +- Tips för att hantera vanliga fallgropar som ej stödda bildformat eller saknade teckensnitt. +- Ett komplett C#‑program som du kan kompilera och köra direkt. + +**Förutsättningar**: .NET 6 SDK (eller någon nyare .NET‑version), ett giltigt Aspose.OCR‑NuGet‑paket och en bildfil (`input.jpg`) som du vill bearbeta. Om du aldrig har använt NuGet tidigare, öppna bara Package Manager Console och kör `Install-Package Aspose.OCR`. + +Klar? Låt oss dyka in. + +## Steg 1 – Hur man OCR:ar bild och laddar källan + +Det första du behöver är en OCR‑motorsinstans och en källbild. Aspose OCR gör detta enkelt: du skapar en `OcrEngine` och matar den med en `OcrImage` som laddas från disk. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Varför detta är viktigt** – Att initiera motorn bara en gång håller minnesanvändningen låg, och att ladda bilden tidigt låter dig verifiera filvägen innan det tunga OCR‑arbetet påbörjas. + +## Steg 2 – Kör OCR och extrahera text från bild + +Nu när bilden finns i minnet ber du motorn att känna igen tecknen. Metoden `Recognize` returnerar ett `OcrResult`‑objekt som innehåller ren text, förtroendescore och till och med layoutinformation. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Proffstips** – Om du bara behöver texten och inte ePub‑filen kan du stoppa här. `ocrResult.Text`‑egenskapen är en ren sträng som du kan skicka vidare till vilket system du vill. + +## Steg 3 – Spara resultatet som en ePub‑bok (Konvertera JPG till ePub) + +Aspose OCR kan direkt serialisera OCR‑resultatet till flera format, inklusive ePub. Detta steg visar exakt hur du **konverterar JPG till ePub** i ett enda kommando. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +När du kör programmet ser du den extraherade texten skrivas ut i konsolen, och en ny fil `book_page.epub` dyker upp bredvid din källbild. Öppna den i någon ePub‑läsare (Calibre, Apple Books osv.) så hittar du OCR‑texten snyggt formaterad som en enkelsidig bok. + +### Förväntad utdata + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Om ePub‑filen öppnas korrekt, grattis – du har precis slutfört ett fullständigt **c# OCR‑exempel** som förvandlar en JPEG till en portabel ePub. + +## Steg 4 – Vanliga problem vid konvertering av bild till ePub + +Även med ett stabilt bibliotek kan du stöta på några hinder. Här är en snabb FAQ: + +| Problem | Varför det händer | Så fixar du det | +|---------|-------------------|-----------------| +| **Ej stödd bildformat** | Aspose OCR förväntar sig rasterformat (JPG, PNG, BMP). | Konvertera bilden till JPG eller PNG först, t.ex. med `System.Drawing.Image`. | +| **Tomt resultat** | Låg bildkvalitet eller stark komprimering. | Öka DPI, använd en tydligare skanning, eller applicera bildförbehandling (`ocrEngine.Preprocess`). | +| **Saknade teckensnitt i ePub** | Standard‑ePub‑skrivaren använder systemteckensnitt som kanske inte är inbäddade. | Sätt `ocrEngine.Config.FontsDirectory` till en mapp med de nödvändiga .ttf‑filerna. | +| **Stor ePub‑fil** | Högupplösta bilder bäddas in som separata sidor. | Använd `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Att åtgärda dessa tidigt sparar dig från att jaga buggar senare. + +## Steg 5 – Utöka exemplet (Bortom grunderna) + +Nu när du har en fungerande **konvertera bild till epub**‑pipeline kanske du undrar vad mer du kan göra. Här är några idéer du kan testa imorgon: + +1. **Batch‑bearbetning** – Loopa igenom en mapp med JPG‑filer, generera en ePub per bild eller slå ihop dem till en flerkapitel‑ePub. +2. **Språkväljare** – Sätt `ocrEngine.Language = Language.English;` eller något annat stöd­jort språk för att förbättra noggrannheten. +3. **Bevara layout** – Använd `OcrSaveFormat.Html` först, och paketera sedan HTML‑innehållet i en ePub för rikare formatering. +4. **Molndeployment** – Packa koden i en Azure Function eller AWS Lambda för att erbjuda OCR‑till‑ePub som en webbtjänst. + +Varje av dessa utökningar bygger på den grundläggande **hur man OCR:ar bild**‑logiken vi just gått igenom. + +## Fullt fungerande kod (Klar‑för‑kopiering) + +Nedan är hela programmet i ett block. Byt ut `YOUR_DIRECTORY` mot den faktiska sökvägen till din bildfil. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Kom ihåg** – NuGet‑paketet `Aspose.OCR` måste vara installerat, och mål‑.NET‑runtime bör vara minst .NET 5 för bästa kompatibilitet. + +## Slutsats + +Vi har precis gått igenom **hur man OCR:ar bild**‑filer i C# och förvandlat dessa skanningar till rena ePub‑böcker – i princip ett **konvertera JPG till ePub**‑arbetsflöde som du kan slänga in i vilket projekt som helst. Genom att följa stegen ovan kan du **extrahera text från bild**, hantera vanliga kantfall och utöka lösningen till batchjobb eller molntjänster. + +Om du är nyfiken på nästa logiska steg, prova att byta ut ePub‑utdata mot en PDF (`OcrSaveFormat.Pdf`) eller skicka OCR‑texten till ett översättnings‑API. Himlen är gränsen när du har bemästrat grunderna. + +Har du frågor om ett specifikt bildformat, eller vill du se ett exempel med flersidig ePub? Lämna en kommentar så hjälper jag gärna till. Lycka till med kodandet, och njut av att förvandla bilder till böcker! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/swedish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..14076b6f --- /dev/null +++ b/ocr/swedish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-01-01 +description: Känn igen rysk text omedelbart med Aspose OCR C#. Lär dig att känna igen + kinesisk text, läsa antalet sidor i en PDF och konvertera PDF-sidans text i en handledning. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: sv +og_description: Känn igen rysk text snabbt med Aspose OCR C#. Denna handledning täcker + också hur man känner igen kinesisk text, läser antalet sidor i en PDF och konverterar + PDF-sidans text. +og_title: Känn igen rysk text med Aspose OCR C# – Komplett guide +tags: +- Aspose OCR +- C# +- PDF processing +title: Känn igen rysk text med Aspose OCR C# – Fullständig guide för flersidiga PDF-filer +url: /sv/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# känna igen rysk text med Aspose OCR C# – Komplett flersidig PDF‑handledning + +Har du någonsin behövt **igenkänna rysk text** i en PDF som blandar språk, och undrat hur du gör det utan att behöva ett separat verktyg för varje sida? Du är inte ensam. I många verkliga projekt får du en enda PDF som innehåller engelska, ryska och till och med kinesiska på olika sidor, och du vill ändå ha en enhetlig, ren textutmatning. + +I den här guiden visar vi exakt hur du **igenkänner rysk text** (och andra språk) med **Aspose OCR C#**, samtidigt som vi demonstrerar hur du **läser PDF‑sidantalet**, **igenkänner kinesisk text**, och **konverterar PDF‑sidans text** till en praktisk konsolutskrift. Inga externa tjänster, inga dolda steg – bara ren C#‑kod som du kan kopiera, klistra in och köra. + +> **Vad du får med dig** +> * En körbar C#‑konsolapp som bearbetar en flersidig PDF. +> * Språkval per sida (ryska, kinesiska, engelska). +> * Tekniker för att fråga PDF‑filens sidantal och extrahera varje sidas text. +> * Tips, fallgropar och utökningar du kan tillämpa i egna projekt. + +--- + +## Förutsättningar + +- .NET 6.0 eller senare (koden fungerar också på .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet‑paket installerat (`dotnet add package Aspose.OCR`). +- En PDF‑fil som innehåller blandade språk; i demonstrationen refererar vi till `mixed_lang.pdf`. +- Grundläggande kunskap om C#‑konsolapplikationer. + +Om du saknar någon av dessa, hämta den senaste Aspose OCR från NuGet och placera din PDF någonstans som är åtkomlig från projektmappen. + +--- + +## Steg 1 – Initiera Aspose OCR‑motorn + +Det allra första du behöver är en instans av `OcrEngine`. Detta objekt innehåller alla inställningar (som språk) och utför det tunga arbetet. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Varför detta är viktigt:** +> Motorn är återanvändbar, så vi slösar inte minne genom att skapa en ny instans för varje sida. Genom att återanvända den kan vi också byta språk i farten, vilket är avgörande för att **igenkänna rysk text** på en sida och **igenkänna kinesisk text** på en annan. + +--- + +## Steg 2 – Läs in PDF‑filen och ta reda på hur många sidor den har + +Innan vi börjar igenkänna behöver vi PDF‑objektet och dess sidantal. Aspose OCR behandlar varje sida som en `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Tips:** Om PDF‑filen är stor kan du vilja läsa antalet sidor först och bestämma om du ska bearbeta alla sidor eller bara ett urval. + +--- + +## Steg 3 – Mappa varje sida till önskat språk + +Aspose OCR stödjer många språk, men du måste tala om för den vilket som ska användas för varje sida. Nedan skapar vi en `Dictionary` där nyckeln är det noll‑baserade sidindexet. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Varför detta är avgörande:** +> Utan denna karta skulle OCR‑motorn försöka med ett enda standardspråk för varje sida, vilket ger förvrängd utskrift för rysk eller kinesisk text. Detta steg möjliggör direkt **igenkänna rysk text** och **igenkänna kinesisk text** korrekt. + +--- + +## Steg 4 – Loopa igenom alla sidor, sätt språk och igenkänn text + +Nu itererar vi över varje sida, byter språk enligt vår karta och anropar `Recognize`. Resultatet lagras i `OcrResult`, varifrån vi extraherar ren text. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Förväntad konsolutskrift + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Förklaring av flödet:** +> * Loopen respekterar **läsa PDF‑sidantalet** som vi skrev ut tidigare. +> * Genom att byta `ocrEngine.Settings.Language` varje iteration garanterar vi korrekt **igenkänna rysk text** på sida 2 och **igenkänna kinesisk text** på sida 3. +> * `Console.WriteLine`‑satserna konverterar effektivt **PDF‑sidans text** till en mänskligt läsbar sträng. + +--- + +## Steg 5 – Kör, verifiera och justera + +1. Bygg projektet (`dotnet build`). +2. Kör det (`dotnet run`). +3. Jämför konsolutskriften med den ursprungliga PDF‑filen. + +Om du märker saknade tecken, överväg: + +- **Öka OCR‑noggrannheten** genom att sätta `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Tillhandahålla ett anpassat språkpaket** om de inbyggda ryska eller kinesiska ordböckerna är föråldrade. +- **Justera DPI** när du läser in PDF‑filen (`OcrImage.FromFile(path, 300)`), vilket kan förbättra igenkänning på lågupplösta skanningar. + +--- + +## Bonus: Hantera kantfall + +### Vad händer om en sidas språk inte finns i kartan? + +Koden faller redan tillbaka till engelska, men du kan också lägga till en fallback som loggar en varning: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Kan vi bearbeta PDF‑filer med fler än tre språk? + +Absolut. Utöka `languageMap` med ytterligare index och stödjade `OcrLanguage`‑värden (t.ex. `OcrLanguage.French`). Loopen hanterar vilket antal sidor som helst. + +### Hur exporterar vi resultaten till en fil istället för konsolen? + +Byt ut `Console.WriteLine`‑anropen mot `File.AppendAllText("output.txt", …)` eller använd en `StringBuilder` som du skriver ut en gång efter loopen. + +--- + +## Bildillustration + +![igenkänna rysk text exempel](/images/recognize-russian-text.png "Skärmbild som visar OCR‑utdata för rysk text") + +*Bilden ovan demonstrerar konsolutskriften när **igenkänna rysk text** utförs på en PDF med blandade språk.* + +--- + +## Slutsats + +Vi har gått igenom ett komplett, end‑to‑end‑exempel som visar hur du **igenkänner rysk text** (och även **igenkänner kinesisk text**) från en flersidig PDF med **Aspose OCR C#**. Genom att läsa PDF‑filens sidantal, mappa varje sida till rätt språk och loopa igenom dokumentet kan du **konvertera PDF‑sidans text** till rena strängar redo för lagring, indexering eller vidare analys. + +Sammanfattningsvis: + +- **Initiera** en enda `OcrEngine`. +- **Läs** in PDF‑filen och **läsa PDF‑sidantalet**. +- **Mappa** sidor till språk (ryska, kinesiska osv.). +- **Iterera**, sätt `ocrEngine.Settings.Language` och **igenkänn** varje sida. +- **Skriv ut** eller spara den extraherade texten. + +Känn dig fri att anpassa detta mönster till större dokument, lägga till felhantering eller koppla resultaten till ett sökindex. Kärnidén – språkval per sida – förblir densamma, och den gör pålitlig **igenkänna rysk text** möjlig i PDF‑filer med blandade språk. + +Har du ett annat scenario, som att skanna bilder istället för PDF‑filer? Samma motor fungerar; byt bara ut `OcrImage.FromFile` mot `OcrImage.FromStream` eller `FromBitmap`. Lycka till med kodandet, och må din OCR alltid vara exakt! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/ocr-configuration/_index.md b/ocr/thai/net/ocr-configuration/_index.md index b8a87a31..a7514d30 100644 --- a/ocr/thai/net/ocr-configuration/_index.md +++ b/ocr/thai/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ url: /th/net/ocr-configuration/ ปลดล็อกความสามารถ OCR อันทรงพลังด้วย Aspose.OCR สำหรับ .NET แยกข้อความจากรูปภาพได้อย่างลงตัว ### [OCROperation พร้อมรายการในการจดจำรูปภาพ OCR](./ocr-operation-with-list/) ปลดล็อกศักยภาพของ Aspose.OCR สำหรับ .NET ดำเนินการจดจำรูปภาพ OCR พร้อมรายการได้อย่างง่ายดาย เพิ่มประสิทธิภาพการทำงานและการดึงข้อมูลในแอปพลิเคชันของคุณ +### [วิธีการใช้ไลเซนส์ใน Aspose OCR – คู่มือ C# ขั้นตอนต่อขั้นตอน](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +เรียนรู้วิธีการตั้งค่าไลเซนส์สำหรับ Aspose OCR ใน C# อย่างละเอียดและง่ายดาย {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/thai/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..8167ec3e --- /dev/null +++ b/ocr/thai/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-01-01 +description: วิธีการใช้ไลเซนส์สำหรับ Aspose OCR ใน C#. เรียนรู้วิธีอ่านไฟล์, ตั้งค่าไลเซนส์ของ + Aspose, ใช้ MemoryStream และโหลดไลเซนส์อย่างมีประสิทธิภาพ. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: th +og_description: วิธีการใช้ไลเซนส์สำหรับ Aspose OCR ใน C#. ทำตามคำแนะนำนี้เพื่ออ่านไฟล์ไลเซนส์, + ตั้งค่าไลเซนส์ของ Aspose, ใช้ MemoryStream และตรวจสอบการตั้งค่า. +og_title: วิธีการใช้ไลเซนส์ใน Aspose OCR – คอร์สสอน C# อย่างครบถ้วน +tags: +- Aspose +- OCR +- C# +- Licensing +title: วิธีกำหนดใบอนุญาตใน Aspose OCR – คู่มือ C# ทีละขั้นตอน +url: /th/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีการใช้ใบอนุญาตใน Aspose OCR – คู่มือ C# ฉบับสมบูรณ์ + +เคยสงสัย **วิธีการใช้ใบอนุญาต** สำหรับ Aspose OCR โดยไม่ต้องไล่ตามเอกสารที่คลุมเครือไหม? คุณไม่ได้เป็นคนเดียว นักพัฒนาส่วนใหญ่ก็เจออุปสรรคเดียวกัน: พวกเขาสามารถอ่านไฟล์ได้ แต่ไม่รู้วิธีที่ถูกต้องในการส่งไฟล์เข้าไปในไลบรารี ในบทแนะนำนี้เราจะพาคุณผ่านรายละเอียดทุกขั้นตอน—ตั้งแต่การโหลดไฟล์ `.lic` จากดิสก์จนถึงการเรียก `SetLicense` ด้วย `MemoryStream` เมื่อเสร็จคุณจะได้โซลูชันที่ทำงานได้และสามารถนำไปใช้ในโปรเจกต์ .NET ใดก็ได้ + +เราจะครอบคลุม **วิธีการอ่านไฟล์** อย่างปลอดภัย วิธีที่ถูกต้องในการ **ตั้งค่าใบอนุญาต Aspose** และเหตุผลที่การใช้ **MemoryStream** เป็นวิธีที่สะอาดที่สุด หากคุณสนใจ **วิธีการโหลดใบอนุญาต** ในสภาพแวดล้อมต่าง ๆ เคล็ดลับเหล่านั้นก็รวมอยู่ด้วย ไม่ต้องอ้างอิงภายนอก—เพียงโค้ดที่พร้อมคัดลอก‑วางเท่านั้น + +## ข้อกำหนดเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (โค้ดทำงานได้กับ .NET Core และ .NET Framework ทั้งสอง) +- แพคเกจ NuGet Aspose.OCR ติดตั้งแล้ว (`Install-Package Aspose.OCR`) +- ไฟล์ `Aspose.OCR.lic` ที่ถูกต้องและวางไว้ในตำแหน่งที่แอปพลิเคชันของคุณเข้าถึงได้ +- ความคุ้นเคยพื้นฐานกับ C# และ Visual Studio (หรือ IDE ใด ๆ ที่คุณชอบ) + +> **เคล็ดลับมืออาชีพ:** เก็บไฟล์ใบอนุญาตไว้ไกลจากโฟลเดอร์ควบคุมเวอร์ชันของคุณเพื่อหลีกเลี่ยงการคอมมิตโดยบังเอิญ. + +## ขั้นตอนที่ 1: วิธีการอ่านไฟล์ – โหลดไบต์ของใบอนุญาต + +สิ่งแรกที่เราต้องการคืออาร์เรย์ไบต์ดิบของไฟล์ใบอนุญาต การใช้ `File.ReadAllBytes` นั้นง่ายและมีประสิทธิภาพ และจะโยนข้อยกเว้นที่ชัดเจนโดยอัตโนมัติหากเส้นทางผิดพลาด + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** การอ่านไฟล์โดยตรงเข้าสู่หน่วยความจำช่วยหลีกเลี่ยงการรั่วของไฟล์แฮนด์เดิลและให้เราได้อาร์เรย์ไบต์ที่สะอาดสำหรับการใช้งานต่อไป นอกจากนี้ยังทำให้เมธอดนี้สามารถใช้ซ้ำได้ในแอปคอนโซล, เว็บเซอร์วิส, หรือ Azure Functions + +## ขั้นตอนที่ 2: วิธีการใช้ MemoryStream – เตรียมสตรีมใบอนุญาต + +เมธอดโอเวอร์โหลด `License.SetLicense` ของ Aspose ต้องการ `Stream` การห่ออาร์เรย์ไบต์ใน `MemoryStream` เป็นวิธีที่เป็นมาตรฐานเพื่อทำตามข้อกำหนดนั้นโดยไม่ต้องเข้าถึงระบบไฟล์อีกครั้ง + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**ข้อสังเกตสำคัญ:** `MemoryStream` มีน้ำหนักเบาและทำลายเร็ว นอกจากนี้ยังทำให้คุณสามารถใช้อาร์เรย์ไบต์เดียวกันกับหลายไลบรารีได้หากต้องการใช้ใบอนุญาตผลิตภัณฑ์ Aspose มากกว่าหนึ่งรายการ + +## ขั้นตอนที่ 3: ตั้งค่าใบอนุญาต Aspose – แกนหลักของ “วิธีการใช้ใบอนุญาต” + +เมื่อเรามี `MemoryStream` แล้ว การตั้งค่าใบอนุญาตเป็นเพียงบรรทัดเดียว คลาส `License` อยู่ในเนมสเปซ `Aspose.OCR` ดังนั้นตรวจสอบให้แน่ใจว่าคุณได้เพิ่ม `using` ที่เหมาะสมแล้ว + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +หากใบอนุญาตไม่ถูกต้องหรือหมดอายุ `SetLicense` จะล้มเหลวโดยไม่มีข้อความแจ้ง และไลบรารีจะทำงานในโหมดทดลอง เพื่อความมั่นใจ คุณสามารถตรวจสอบฟีเจอร์ที่มีเฉพาะในเวอร์ชันที่มีใบอนุญาต (เช่น การตั้งค่าความแม่นยำ OCR) หรือพึ่งพาข้อความยืนยันที่เราจะพิมพ์ต่อไป + +## ขั้นตอนที่ 4: วิธีการโหลดใบอนุญาต – การรวมทุกอย่างเข้าด้วยกัน + +ด้านล่างเป็นโปรแกรมคอนโซลที่ทำงานได้เต็มรูปแบบซึ่งแสดง **วิธีการโหลดใบอนุญาต** จากดิสก์, ใช้ `MemoryStream`, และตรวจสอบว่าใบอนุญาตถูกตั้งค่าเรียบร้อยแล้ว + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### ผลลัพธ์ที่คาดหวัง + +``` +License applied successfully. You can now perform OCR operations. +``` + +หากคุณเห็นข้อความนั้น ไลบรารีได้รับใบอนุญาตเต็มที่และพร้อมสำหรับงาน OCR ระดับการผลิต + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|----------------|-----| +| **FileNotFoundException** ขณะอ่านใบอนุญาต | เส้นทางผิดหรือไฟล์ไม่ได้ถูกจัดจำหน่ายพร้อมกับแอป | ใช้เส้นทางแบบเต็มหรือฝังใบอนุญาตเป็น Resource (ดู “การโหลดแบบทางเลือก” ด้านล่าง) | +| ใบอนุญาตไม่ถูกตั้งค่าแต่ไม่มีข้อผิดพลาด | `SetLicense` จะกลับไปใช้โหมดทดลองโดยไม่มีการแจ้งเตือนหากสตรีมว่างหรือเสียหาย | ตรวจสอบว่า `licenseData.Length > 0` ก่อนสร้าง `MemoryStream` | +| **MemoryStream not disposed** | ลืมใช้ `using` ทำให้ทรัพยากรที่ไม่ได้จัดการค้างอยู่ | ห่อสตรีมด้วยบล็อก `using` เสมอ ตามที่แสดง | + +### ทางเลือก: ฝังใบอนุญาตเป็น Embedded Resource + +หากคุณไม่ต้องการจัดส่งไฟล์ `.lic` แยกออกมา ให้เพิ่มไฟล์นี้ในโปรเจกต์ของคุณ ตั้งค่า **Build Action** เป็น **Embedded Resource** แล้วอ่านไฟล์ดังนี้: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +จากนั้นเรียก `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` และดำเนินการต่อด้วยวิธีการ `MemoryStream` เดิม + +## สรุป + +เราได้อธิบาย **วิธีการใช้ใบอนุญาต** สำหรับ Aspose OCR ตั้งแต่ต้นจนจบ: การอ่านไฟล์, การสร้าง `MemoryStream`, การเรียก `SetLicense`, และการยืนยันการเปิดใช้งาน ด้วยการทำตามขั้นตอนเหล่านี้คุณจะขจัดการคาดเดา, หลีกเลี่ยงข้อผิดพลาดทั่วไป, และทำให้เครื่องมือ OCR ของคุณทำงานในโหมดเต็มฟีเจอร์ + +ต่อไปคุณอาจสำรวจ **วิธีการอ่านไฟล์** แบบอะซิงโครนัสสำหรับบริการที่ต้องการประสิทธิภาพสูง, หรือเจาะลึกการตั้งค่า OCR ขั้นสูงเมื่อใบอนุญาตถูกโหลดอย่างถูกต้อง ไม่ว่ากรณีใดรูปแบบก็ยังคงเหมือนเดิม—อ่าน, สตรีม, ตั้งค่า, ตรวจสอบ + +มีคำถามเกี่ยวกับกรณีขอบ เช่น การโหลดใบอนุญาตในสภาพแวดล้อม ASP.NET Core หรือการจัดการใบอนุญาตหลายผลิตภัณฑ์ของ Aspose? แสดงความคิดเห็นด้านล่าง แล้วขอให้เขียนโค้ดอย่างสนุกสนาน! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/ocr-optimization/_index.md b/ocr/thai/net/ocr-optimization/_index.md index f843ecb3..5be5bb31 100644 --- a/ocr/thai/net/ocr-optimization/_index.md +++ b/ocr/thai/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ url: /th/net/ocr-optimization/ เพิ่มความแม่นยำของ OCR ด้วย Aspose.OCR สำหรับ .NET แก้ไขการสะกด ปรับแต่งพจนานุกรม และรับรู้ข้อความที่ปราศจากข้อผิดพลาดได้อย่างง่ายดาย ### [บันทึกผลลัพธ์หลายหน้าเป็นเอกสารในการจดจำรูปภาพ OCR](./save-multipage-result-as-document/) ปลดล็อกศักยภาพของ Aspose.OCR สำหรับ .NET บันทึกผลลัพธ์ OCR หลายหน้าเป็นเอกสารได้อย่างง่ายดายด้วยคำแนะนำทีละขั้นตอนที่ครอบคลุมนี้ +### [การประมวลผลล่วงหน้าภาพ OCR ใน C# – เพิ่มความแม่นยำด้วย Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +เรียนรู้วิธีการเตรียมภาพก่อน OCR ด้วย C# เพื่อเพิ่มความแม่นยำโดยใช้ Aspose OCR +### [วิธีทำ Batch OCR ใน C# ด้วย Aspose OCR Engine](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/thai/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..246efea7 --- /dev/null +++ b/ocr/thai/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-01-01 +description: วิธีทำ OCR แบบเป็นชุดโดยใช้ Aspose OCR Engine ใน C# เรียนรู้การจดจำข้อความจากภาพและการสกัดข้อความจากไฟล์ + TIFF ด้วยการเร่งความเร็วด้วย GPU +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: th +og_description: วิธีทำ OCR แบบกลุ่มใน C# ด้วย Aspose OCR Engine คู่มือนี้จะแสดงวิธีการจดจำข้อความจากภาพและสกัดข้อความจากไฟล์ + TIFF อย่างมีประสิทธิภาพ +og_title: วิธีทำ OCR แบบเป็นชุดใน C# – คู่มือ Aspose ฉบับสมบูรณ์ +tags: +- OCR +- C# +- Aspose +- GPU +title: วิธีทำ OCR แบบแบตช์ใน C# ด้วย Aspose OCR Engine +url: /th/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีทำ Batch OCR ใน C# ด้วย Aspose OCR Engine + +เคยสงสัย **วิธีทำ batch OCR** เมื่อคุณมีเอกสารสแกนหลายสิบไฟล์อยู่ในโฟลเดอร์หรือไม่? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อต้องย้ายจากการจดจำภาพเดียวไปสู่การประมวลผลคอลเลกชันทั้งหมด ข่าวดีคือ Aspose OCR ทำให้เรื่องนี้ง่ายดาย ไม่ว่าจะรันบน CPU หรือใช้ประโยชน์จากการเร่งความเร็วด้วย GPU. + +ในบทแนะนำนี้ เราจะพาคุณผ่านตัวอย่างที่สมบูรณ์และสามารถรันได้ ซึ่ง **จดจำข้อความจากภาพ** และแม้กระทั่ง **ดึงข้อความจากไฟล์ TIFF** เป็นชุดใหญ่ ไม่ต้องพึ่งพา “ดูเอกสาร” แบบคลุมเครือ—เพียงโซลูชันที่ทำงานอิสระที่คุณสามารถคัดลอก‑วางและรันได้ทันที + +## ข้อกำหนดเบื้องต้น + +* .NET 6.0 หรือใหม่กว่า (โค้ดนี้ตั้งเป้าหมายที่ .NET 6 แต่ .NET 5 ก็ทำงานได้เช่นกัน). +* แพคเกจ NuGet Aspose.OCR สำหรับ .NET (มีทั้งเวอร์ชัน CPU และ GPU; ติดตั้งเวอร์ชันที่ตรงกับฮาร์ดแวร์ของคุณ). +* โฟลเดอร์ที่มีไฟล์ตัวอย่าง TIFF หรือ PNG จำนวนไม่กี่ไฟล์ที่คุณต้องการประมวลผล. +* Visual Studio 2022 หรือ IDE ใดก็ได้ที่คุณชอบ. + +> **เคล็ดลับ:** หากคุณวางแผนใช้เวอร์ชัน GPU ให้ตรวจสอบว่าไดรเวอร์กราฟิกของคุณเป็นเวอร์ชันล่าสุดและ CUDA 11+ ได้ติดตั้งแล้ว. เอนจินจะสลับกลับไปใช้ CPU อัตโนมัติหากไม่พบ GPU ที่เข้ากันได้. + +## ขั้นตอนที่ 1 – ตั้งค่าโปรเจกต์และติดตั้ง Aspose.OCR + +### H2: สร้าง Console App ใหม่และเพิ่ม Aspose.OCR + +เปิดเทอร์มินัล (หรือ Package Manager Console ใน Visual Studio) แล้วรัน: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +หากคุณมีไลเซนส์ที่รองรับ GPU ให้เพิ่มแพคเกจ GPU แทน: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +เท่านี้—โปรเจกต์ของคุณจะอ้างอิงไลบรารี OCR ที่เราจะใช้สำหรับ **batch OCR**. + +## ขั้นตอนที่ 2 – เริ่มต้น OCR Engine (CPU หรือ GPU) + +### H2: วิธีทำ Batch OCR – การเริ่มต้น Engine + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**ทำไมเรื่องนี้สำคัญ:** การสลับ `UseGpu` ทำให้ Aspose ตัดสินใจเส้นทางที่เร็วที่สุด หาก GPU ไม่พร้อมใช้งาน เอนจินจะเปลี่ยนกลับไปใช้ CPU อย่างเงียบ ๆ ทำให้งาน batch ของคุณไม่หยุดทำงานเนื่องจากขาดฮาร์ดแวร์. + +## ขั้นตอนที่ 3 – รวบรวมไฟล์ที่ต้องการประมวลผล + +### H2: จดจำข้อความจากภาพ – สร้างรายการไฟล์ + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**หมายเหตุกรณีขอบ:** หากคุณมีรูปแบบไฟล์ผสมกัน ให้เปลี่ยนรูปแบบการค้นหาเป็น `"*.*"` แล้วกรองตามส่วนขยายภายในลูป วิธีนี้ทำให้ batch มีความยืดหยุ่น. + +## ขั้นตอนที่ 4 – ประมวลผลแต่ละภาพและแสดงตัวอย่าง + +### H2: ดึงข้อความจาก TIFF – วนลูปผ่านไฟล์ + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**สิ่งที่คุณจะเห็น:** สำหรับแต่ละ TIFF คอนโซลจะพิมพ์ข้อความประมาณ: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +ตัวอย่างนี้ยืนยันว่า batch ทำงานสำเร็จโดยไม่ต้องเปิดไฟล์แต่ละไฟล์ด้วยตนเอง. + +## ขั้นตอนที่ 5 – บันทึกผลลัพธ์ (ไม่บังคับแต่เป็นประโยชน์) + +### H3: เก็บผลลัพธ์ OCR เป็นไฟล์ข้อความ + +หากคุณต้องการข้อความเต็มสำหรับการประมวลผลต่อไป ให้เพิ่มโค้ดนี้ภายในลูป `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +ตอนนี้แต่ละไฟล์ TIFF จะมีไฟล์ `.txt` คู่ที่บรรจุผลลัพธ์ OCR ทั้งหมด—เหมาะสำหรับการทำดัชนี การค้นหา หรือป้อนเข้าสู่โมเดลภาษา. + +## ขั้นตอนที่ 6 – รันเดโมและตรวจสอบ + +1. สร้างโปรเจกต์: `dotnet build`. +2. เรียกใช้: `dotnet run --project GpuBatchDemo.csproj`. + +คุณควรเห็นบรรทัดตัวอย่างที่พิมพ์บนคอนโซล และ (หากคุณเพิ่มขั้นตอนเสริม) ไฟล์ `.txt` ชุดหนึ่งอยู่ข้างไฟล์ภาพต้นฉบับ. + +### H3: ปัญหาที่พบบ่อยและวิธีแก้ + +| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ | +|---------|-------------------|--------| +| **`ocrResult.Text` ว่าง** | ภาพมืดเกินไปหรือ DPI ต่ำ | ทำการประมวลผลล่วงหน้าภาพ (เพิ่มคอนทราสต์, ขยายขนาด) หรือกำหนด `ocrEngine.Settings.PreprocessImage = true`. | +| **ข้อผิดพลาด GPU “CUDA driver version is insufficient”** | ไดรเวอร์ล้าสมัย | อัปเดตไดรเวอร์ GPU หรือกำหนด `UseGpu = false` เพื่อบังคับใช้ CPU. | +| **ข้อยกเว้น “File not found”** | ตัวคั่นเส้นทางไม่ถูกต้องบน Linux/macOS | ใช้ `Path.Combine` หรือเครื่องหมายทับหน้า (`/`). | + +## ขั้นตอนที่ 7 – ขยายขนาด (เกินกว่าจำนวนไฟล์เล็กน้อย) + +เมื่อคุณย้ายจากจำนวน TIFF เพียงไม่กี่ไฟล์ไปสู่หลายพันไฟล์ ให้พิจารณา: + +* **การประมวลผลแบบขนาน:** ห่อ `foreach` ด้วย `Parallel.ForEach` (ตรวจสอบว่าอินสแตนซ์ของ engine ปลอดภัยต่อเธรด; หากไม่เช่นนั้นให้สร้างหนึ่งอินสแตนซ์ต่อเธรด). +* **I/O แบบแบ่งเป็นชั้น:** อ่านภาพเป็นชุดเพื่อหลีกเลี่ยงการใช้ RAM จนเต็ม. +* **การบันทึก:** เขียนความคืบหน้าไปยังไฟล์ล็อก; ช่วยให้สามารถทำต่อหลังจากการล่ม. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **จำไว้:** หน่วยความจำ GPU ถูกแชร์กัน ดังนั้นการสร้างงาน GPU ขนานมากเกินไปอาจทำให้ช้าลง ทดสอบด้วยจำนวนเธรดไม่กี่ตัวก่อน. + +## ตัวอย่างทำงานเต็ม (พร้อมคัดลอก‑วาง) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +การรันโปรแกรมนี้จะ **จดจำข้อความจากภาพ**, **ดึงข้อความจาก TIFF**, และสาธิต **วิธีทำ batch OCR** อย่างมีประสิทธิภาพ. + +## สรุป + +ตอนนี้คุณมีตัวอย่างครบวงจรของ **วิธีทำ batch OCR** ใน C# ด้วยเอ็นจิน OCR ของ Aspose. บทแนะนำครอบคลุมทุกอย่างตั้งแต่การตั้งค่าโปรเจกต์, การสลับการเร่งความเร็วด้วย GPU, การสร้างรายการไฟล์, การประมวลผลแต่ละภาพ, และการบันทึกผลลัพธ์ ไม่ว่าคุณจะดึงข้อความจากไฟล์ TIFF หรือรูปแบบภาพอื่น ๆ รูปแบบเดียวกันก็ใช้ได้—เพียงเปลี่ยนส่วนขยายไฟล์. + +พร้อมก้าวต่อไปหรือยัง? ลองผสานผลลัพธ์ OCR กับดัชนีการค้นหา, ป้อนข้อความเข้าสู่โมเดลภาษาใหญ่, หรือทดลองประมวลผลแบบขนานเพื่อประหยัดหลายนาทีจาก batch ขนาดใหญ่. ไม่มีขีดจำกัด, และคุณมีพื้นฐานที่จะต่อยอด. + +มีคำถามหรืออยากแชร์เทคนิค batch‑OCR ของคุณ? แสดงความคิดเห็นด้านล่าง—ขอให้เขียนโค้ดอย่างสนุก! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/thai/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..cb2b5e2a --- /dev/null +++ b/ocr/thai/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-01-01 +description: ทำการเตรียมภาพ OCR เพื่อเพิ่มความแม่นยำ เรียนรู้วิธีการจดจำข้อความในภาพ + ปรับปรุงความแม่นยำของ OCR โหลดภาพ OCR และแสดงข้อความ OCR ด้วย Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: th +og_description: ทำการประมวลผลล่วงหน้าภาพ OCR เพื่อเพิ่มความแม่นยำ คู่มือนี้แสดงวิธีการจดจำข้อความในภาพ + โหลดภาพ OCR ใช้ตัวกรอง และแสดงข้อความ OCR +og_title: การเตรียมภาพ OCR ใน C# – เพิ่มความแม่นยำด้วย Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: การเตรียมภาพ OCR ใน C# – เพิ่มความแม่นยำด้วย Aspose OCR +url: /th/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image OCR ใน C# – เพิ่มความแม่นยำด้วย Aspose OCR + +เคยสงสัยไหมว่า **preprocess image OCR** อย่างไรให้เครื่องอ่านเนื้อหาในหน้าได้จริง? คุณไม่ได้อยู่คนเดียว—นักพัฒนาส่วนใหญ่เจออุปสรรคเมื่อสแกนที่มีเสียงรบกวนและเอียงไม่ยอมทำงาน ข่าวดีคือขั้นตอนการเตรียมภาพอัจฉริยะไม่กี่ขั้นตอนสามารถเปลี่ยนภาพที่เป็นโซนภัยพิบัติให้เป็นข้อความที่สะอาดและอ่านได้ + +ในบทแนะนำนี้ เราจะเดินผ่านตัวอย่างที่สมบูรณ์และพร้อมรันที่ **recognize text image** ไฟล์, **improve OCR accuracy**, และสุดท้าย **display OCR text** บนคอนโซล. เมื่อจบคุณจะรู้วิธี **load image OCR** แอสเซท, แนบฟิลเตอร์เช่นการแก้ไขเอียงและการลดสัญญาณรบกวน, และได้ผลลัพธ์ที่เชื่อถือได้—ทั้งหมดด้วย Aspose.OCR สำหรับ .NET. + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธีสร้างอินสแตนซ์ `OcrEngine` และกำหนดค่าฟิลเตอร์การเตรียมภาพ +- ทำไมการแก้ไขเอียงและฟิลเตอร์ลดสัญญาณรบกวนถึงสำคัญสำหรับ **improve OCR accuracy** +- โค้ดที่แม่นยำเพื่อ **load image OCR** ไฟล์และรันการจดจำ +- วิธี **display OCR text** อย่างเป็นมิตรต่อผู้ใช้ +- เคล็ดลับ, จุดบกพร่อง, และการปรับแต่งเพิ่มเติมที่คุณสามารถใช้ในโครงการจริง + +### ข้อกำหนดเบื้องต้น + +- .NET 6+ (หรือ .NET Framework 4.7+) ติดตั้งบนเครื่องของคุณ +- ลิขสิทธิ์สำหรับ Aspose.OCR (รุ่นทดลองฟรีใช้งานได้สำหรับการสาธิตนี้) +- ความรู้พื้นฐาน C#—ไม่ต้องการเทคนิคขั้นสูง + +หากส่วนใดส่วนหนึ่งฟังดูไม่คุ้นเคย ให้หยุดและติดตั้งส่วนที่ขาดหายไป; ส่วนที่เหลือของคู่มือสมมติว่ามีพร้อมแล้ว + +--- + +## preprocess image OCR – การตั้งค่าฟิลเตอร์ + +สิ่งแรกที่คุณต้องเข้าใจคือ **why preprocessing matters**. เครื่อง OCR มีความสามารถในการอ่านข้อความที่คมชัดและตรงแนวได้ดี แต่การสแกนในโลกจริงมักมีปัญหาการหมุน, เบลอ, หรือสัญญาณรบกวนพื้นหลัง. การป้อนภาพที่ทำความสะอาดให้กับเครื่องจะเพิ่มโอกาสในการแปลงข้อความให้ถูกต้องอย่างมาก + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**เกิดอะไรขึ้นที่นี่?** +- **Step 1** สร้างเอนจิน—หัวใจของไลบรารี Aspose OCR. +- **Step 2** แนบฟิลเตอร์สองตัว. `SkewCorrectionFilter` หมุนภาพกลับเป็นแนวนอน, ส่วน `DenoiseFilter` ทำให้สัญญาณรบกวนระดับพิกเซลเรียบขึ้น. +- **Step 3** เป็นขั้นตอนเสริมแต่มีประโยชน์; คุณสามารถกำหนดมุมสูงสุดที่เอนจินจะพยายามแก้ไข, ป้องกันการหมุนเกินไปบนหน้าที่ตรงอยู่แล้ว. +- **Step 4** คือที่คุณ **load image OCR** ข้อมูล. แทนที่ `YOUR_DIRECTORY/skewed_noisy.jpg` ด้วยพาธของไฟล์ทดสอบของคุณ. +- **Step 5** รัน OCR จริงและสร้าง `OcrResult`. +- **Step 6** **display OCR text** บนคอนโซล, ให้คุณได้รับฟีดแบ็กทันที. + +> **เคล็ดลับ:** หากคุณสังเกตว่าผลลัพธ์ยังมีอักขระผิดรูป, ลองเพิ่มค่า `MaxAngle` หรือเพิ่ม `ContrastFilter` ก่อนขั้นตอนการลดสัญญาณรบกวน + +--- + +## recognize text image – การโหลดไฟล์ของคุณอย่างถูกต้อง + +อุปสรรคทั่วไปคือการ **load image OCR** ด้วยรูปแบบหรือ DPI ที่ไม่ถูกต้อง. Aspose.OCR รองรับ PNG, JPEG, TIFF, BMP, และแม้กระทั่งภาพที่มาจาก PDF. อย่างไรก็ตาม, เอนจินทำงานได้ดีที่สุดกับ 300 DPI หรือสูงกว่า สำหรับเอกสารที่พิมพ์ + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +หากคุณทำงานกับ TIFF หลายหน้า, คุณสามารถวนลูปผ่านแต่ละเฟรมได้: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**ทำไมเรื่องนี้ถึงสำคัญสำหรับ improve OCR accuracy?** ความละเอียดที่สูงกว่าจะรักษารูปร่างของแต่ละอักขระ, ให้ตัวจดจำมีข้อมูลจุดมากขึ้น. ภาพที่ DPI ต่ำมักทำให้ตัวอักษรรวมกันหรือแตกหัก, ซึ่งเอนจินจะตีความผิด + +--- + +## improve OCR accuracy – การปรับพารามิเตอร์ฟิลเตอร์ + +การตั้งค่าฟิลเตอร์เริ่มต้นเป็นจุดเริ่มต้นที่ดี, แต่คุณสามารถดึงประสิทธิภาพเพิ่มจากมันได้ + +| ฟิลเตอร์ | คุณสมบัติหลัก | ค่าทั่วไป | เมื่อควรปรับ | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | ภาพที่เอียงอย่างมาก (สูงสุด 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | สแกนที่มีสัญญาณรบกวนมาก; เพิ่มเป็น `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | ภาพหน้าจอที่คอนทราสต์ต่ำ. | + +ตัวอย่างการปรับแต่งทั้งสอง: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**กรณีพิเศษ:** หากภาพของคุณมีทั้งโน้ตมือเขียนและข้อความพิมพ์, คุณอาจต้องเพิ่ม `BinarizationFilter` ก่อนการลดสัญญาณรบกวนเพื่อแยกพื้นหน้าออกจากพื้นหลัง. + +--- + +## display OCR text – การจัดรูปแบบผลลัพธ์ + +การแสดงผลบนคอนโซลแบบธรรมดาใช้งานได้สำหรับการสาธิต, แต่โค้ดในผลิตภัณฑ์มักต้องการสตริงที่ทำความสะอาด, การขึ้นบรรทัดใหม่, หรือแม้กระทั่ง JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +หากคุณต้องการ JSON สำหรับการตอบสนอง API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +ตอนนี้คุณได้ **display OCR text** ในรูปแบบที่บริการต่อไปสามารถใช้ได้ + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ – รวมทุกอย่างเข้าด้วยกัน + +ด้านล่างเป็นโปรแกรมสุดท้ายที่เป็นอิสระคุณสามารถคัดลอกและวางลงในโปรเจกต์คอนโซลใหม่. มันรวมฟิลเตอร์เสริม, การโหลดภาพความละเอียดสูง, และผลลัพธ์ที่สะอาด + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**ผลลัพธ์คอนโซลที่คาดหวัง (ตัวอย่าง):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +หากคุณรันโปรแกรมด้วยไฟล์อื่น, ข้อความและระดับความเชื่อมั่นจะเปลี่ยนไปตามนั้น + +--- + +## คำถามที่พบบ่อย & คำตอบ + +**Q: ถ้าภาพของฉันตรงอยู่แล้วล่ะ?** +A: ฟิลเตอร์แก้ไขเอียงจะตรวจจับมุมใกล้ศูนย์และทำงานเป็นไม่มีผล, ดังนั้นคุณสามารถเปิดใช้งานได้อย่างปลอดภัย + +**Q: Aspose.OCR รองรับภาษานอกเหนือจากภาษาอังกฤษหรือไม่?** +A: ใช่—เพียงตั้งค่า `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (หรือภาษาใดที่รองรับ) ก่อนเรียก `Recognize`. + +**Q: ฉันจะจัดการกับ PDF หลายหน้าอย่างไร?** +A: แปลงแต่ละหน้เป็นภาพ (Aspose.PDF สามารถทำได้) แล้วป้อนทีละหน้าไปยังอินสแตนซ์ `OcrEngine` เดียวกัน + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/text-recognition/_index.md b/ocr/thai/net/text-recognition/_index.md index 7001ea59..a1f8ef2d 100644 --- a/ocr/thai/net/text-recognition/_index.md +++ b/ocr/thai/net/text-recognition/_index.md @@ -55,9 +55,18 @@ url: /th/net/text-recognition/ ปลดล็อกศักยภาพของ OCR ใน .NET ด้วย Aspose.OCR แยกข้อความจาก PDF ได้อย่างง่ายดาย ดาวน์โหลดทันทีเพื่อประสบการณ์การบูรณาการที่ราบรื่น ### [จดจำตารางในการจดจำรูปภาพ OCR](./recognize-table/) ปลดล็อกศักยภาพของ Aspose.OCR สำหรับ .NET ด้วยคำแนะนำที่ครอบคลุมเกี่ยวกับการจดจำตารางในการจดจำรูปภาพ OCR +### [บทแนะนำ c# OCR: ดึงข้อความจากภาพด้วย Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +เรียนรู้วิธีใช้ Aspose OCR กับ C# เพื่อดึงข้อความจากภาพอย่างแม่นยำในขั้นตอนง่ายๆ +### [บทแนะนำ c# OCR: ดึงข้อความจากภาพและส่งออกเป็น JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +เรียนรู้วิธีใช้ Aspose OCR กับ C# เพื่อดึงข้อความจากภาพและส่งออกเป็นไฟล์ JSON อย่างแม่นยำ +### [วิธีทำ OCR รูปภาพใน C# – แปลง JPG เป็น ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +เรียนรู้วิธีใช้ Aspose OCR กับ C# เพื่อแปลงไฟล์ JPG เป็น ePub อย่างง่ายและรวดเร็ว +### [จดจำข้อความรัสเซียด้วย Aspose OCR C# – คู่มือ PDF หลายหน้าเต็มรูปแบบ](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +เรียนรู้วิธีใช้ Aspose OCR กับ C# เพื่อจดจำข้อความรัสเซียในไฟล์ PDF หลายหน้าอย่างละเอียดและแม่นยำ + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..f3fa217e --- /dev/null +++ b/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-01-01 +description: บทเรียน OCR ด้วย C# แสดงวิธีดึงข้อความจากภาพ, ทำ OCR บนไฟล์ JPG ด้วย + Aspose OCR. เรียนรู้การโหลดภาพสำหรับ OCR และได้ผลลัพธ์ที่แม่นยำ. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: th +og_description: บทแนะนำ OCR ด้วย C# ที่สอนขั้นตอนการดึงข้อความจากภาพ, ทำ OCR บนไฟล์ + JPG, และโหลดภาพสำหรับ OCR ด้วย Aspose. +og_title: c# OCR บทเรียน – ดึงข้อความจากภาพด้วย Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'บทเรียน OCR ด้วย C#: ดึงข้อความจากภาพด้วย Aspose OCR' +url: /th/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Tutorial – ดึงข้อความจากภาพด้วย Aspose OCR + +กำลังมองหา **c# ocr tutorial** ที่ใช้งานได้จริงหรือไม่? ในคู่มือนี้เราจะแสดงวิธี **ดึงข้อความจากภาพ** และ **ทำ OCR บนไฟล์ JPG** ด้วยไลบรารี Aspose.OCR ไม่ว่าคุณจะสร้างเครื่องสแกนใบเสร็จ, ระบบจัดเก็บเอกสาร, หรือแค่อยากรู้วิธีอ่านข้อความจากรูปภาพ ขั้นตอนต่อไปนี้จะพาคุณจากศูนย์ถึงโค้ดที่ทำงานได้ในไม่กี่นาที. + +เราจะครอบคลุมทุกอย่างที่คุณต้องการ: การติดตั้งแพคเกจ, การโหลดภาพสำหรับ OCR, การกำหนดค่าทรัพยากรภาษา, การรันเอนจินการจดจำ, และการจัดการกับปัญหาที่พบบ่อยที่สุด เมื่อเสร็จสิ้นคุณจะได้แอปคอนโซลที่ทำงานอิสระซึ่งพิมพ์ข้อความที่จดจำได้ลงคอนโซล—ไม่ต้องใช้บริการภายนอก. + +## สิ่งที่คุณต้องการ + +- .NET 6.0 หรือใหม่กว่า (โค้ดทำงานกับ .NET Framework 4.6+ ด้วย) +- Visual Studio 2022, VS Code, หรือโปรแกรมแก้ไข C# ที่คุณชอบ +- ไฟล์ภาพที่มีข้อความภาษารัสเซีย (Cyrillic) เช่น `receipt_ru.jpg` +- การเชื่อมต่ออินเทอร์เน็ตสำหรับการรันครั้งแรก (Aspose จะดาวน์โหลดทรัพยากรภาษาโดยอัตโนมัติ) + +ถ้าคุณมีทั้งหมดนี้แล้ว เยี่ยม—มาเริ่มกันเลย. + +## ขั้นตอนที่ 1: ติดตั้ง Aspose.OCR และสร้างโปรเจกต์ใหม่ + +อันดับแรกให้เพิ่มแพคเกจ NuGet ของ Aspose.OCR ไปยังโปรเจกต์ของคุณ เปิดเทอร์มินัลในโฟลเดอร์โซลูชันและรัน: + +```bash +dotnet add package Aspose.OCR +``` + +> **เคล็ดลับ:** ใช้แฟล็ก `--version` เพื่อระบุเวอร์ชันที่เสถียรล่าสุด เช่น `Aspose.OCR 23.9.0`. + +ต่อไปสร้างโปรเจกต์คอนโซลง่าย ๆ (ข้ามขั้นตอนนี้หากคุณมีแล้ว): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +ตอนนี้คุณมีสภาพแวดล้อมที่สะอาดพร้อมให้คุณวางโค้ดตัวอย่างเต็มได้ในภายหลัง. + +## ขั้นตอนที่ 2: โหลดภาพสำหรับ OCR + +การโหลดภาพเป็นขั้นตอนการทำงานแรกใน **c# ocr tutorial** ใด ๆ Aspose.OCR รองรับการรับพาธไฟล์, สตรีม, หรือแม้กระทั่ง `Bitmap` สำหรับตัวอย่างของเราจะทำอย่างง่ายและโหลดจากดิสก์: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **ทำไมจึงสำคัญ:** การโหลดภาพอย่างชัดเจนทำให้เอนจินมีเป้าหมายที่ชัดเจน ซึ่งช่วยเพิ่มความแม่นยำ—โดยเฉพาะเมื่อจัดการกับ PDF หลายหน้า หรืออินพุตที่มีรูปแบบผสม. + +## ขั้นตอนที่ 3: กำหนดค่าภาษาและการดาวน์โหลดทรัพยากรอัตโนมัติ + +Aspose.OCR มาพร้อมกับแพ็คภาษา ที่สามารถดาวน์โหลดตามความต้องการ การเปิดใช้งานการดาวน์โหลดอัตโนมัติทำให้เอนจินดึงข้อมูลภาษารัสเซียในครั้งแรกที่คุณรันโค้ด. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **คำอธิบาย:** +> • `AutoDownloadResources = true` ลบขั้นตอนการดึงไฟล์ `.dat` ด้วยตนเองออก +> • การตั้งค่า `Language` บอกเอนจินว่าควรคาดหวังชุดอักขระใด ซึ่งจะเพิ่มความเร็วและความแม่นยำของการจดจำอย่างมาก + +## ขั้นตอนที่ 4: รัน OCR และดึงข้อความที่จดจำได้ + +ตอนนี้การทำงานหนักเริ่มขึ้น เมธอด `Recognize` จะประมวลผลภาพและคืนออบเจกต์ `OcrResult` ที่บรรจุสตริงที่ดึงออกมา. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +เมื่อคุณรันโปรแกรม คุณควรเห็นผลลัพธ์ประมาณนี้: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **สิ่งที่คาดหวัง:** ผลลัพธ์ที่แน่นอนขึ้นอยู่กับคุณภาพของภาพต้นฉบับ แต่เอนจินที่ใช้เครือข่ายประสาทเทียมของ Aspose มักจัดการกับใบเสร็จและฟอร์มที่พิมพ์อย่างชัดเจนได้อย่างแม่นยำ. + +## ตัวอย่างการทำงานเต็มรูปแบบ + +ด้านล่างเป็น **โค้ดเต็มที่สามารถรันได้** ซึ่งรวมทุกขั้นตอนเข้าด้วยกัน คัดลอกและวางลงใน `Program.cs` แทนที่ `YOUR_DIRECTORY` ด้วยพาธโฟลเดอร์จริง แล้วรันด้วย `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **เคล็ดลับ:** หากคุณต้องการ **ดึงข้อความจากภาพ** ที่ไม่ใช่ JPG (เช่น PNG, BMP, TIFF) เพียงเปลี่ยนส่วนขยายไฟล์—Aspose รองรับทั้งหมด. + +## ขั้นตอนที่ 5: ปัญหาที่พบบ่อยและเคล็ดลับมืออาชีพ + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|----------------|-----| +| **อักขระเสีย** | ภาพความละเอียดต่ำหรือการบีบอัดหนัก | ใช้แหล่งภาพคุณภาพสูงขึ้น หรือทำการประมวลผลล่วงหน้าด้วย `Bitmap` (เช่น เพิ่มคอนทราสต์) | +| **ไม่สามารถจดจำภาษา** | แพ็คภาษายังไม่ได้ดาวน์โหลด | ตรวจสอบให้ `AutoDownloadResources` เป็น `true` และเครื่องมีการเชื่อมต่ออินเทอร์เน็ตในครั้งแรก | +| **`ocrResult.Text` เป็นค่า Null** | พาธภาพไม่ถูกต้องหรือไฟล์หาย | ตรวจสอบพาธ ใช้ `File.Exists` ก่อนโหลด | +| **ความล่าช้าของประสิทธิภาพ** | ประมวลผลชุดภาพขนาดใหญ่แบบต่อเนื่อง | ใช้ `OcrEngine` ตัวเดียวหลายครั้งแทนการสร้างใหม่ทุกครั้ง | + +### โบนัส: การอ่านหลายไฟล์ในลูป + +หากคุณต้องการ **ทำ OCR บนไฟล์ JPG** ในโฟลเดอร์ ให้ห่อหุ้มตรรกะใน `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +รูปแบบนี้ขยายได้ดีสำหรับการประมวลผลสายงานใบเสร็จ. + +## สรุป + +คุณเพิ่งทำ **c# ocr tutorial** เสร็จสิ้น ซึ่งแสดงวิธี **ดึงข้อความจากภาพ**, **ทำ OCR บน JPG**, และ **โหลดภาพสำหรับ OCR** ด้วย Aspose.OCR โปรแกรมตัวอย่างแสดงกระบวนการทั้งหมด—from การติดตั้งแพคเกจ NuGet ถึงการพิมพ์ข้อความ Cyrillic ที่จดจำได้—ดังนั้นคุณสามารถคัดลอกไปใช้ในโปรเจกต์ .NET ใดก็ได้ทันที. + +พร้อมสำหรับขั้นตอนต่อไปหรือยัง? ลองเปลี่ยน `OcrLanguage.Russian` เป็น `OcrLanguage.English` เพื่อจดจำใบเสร็จภาษาอังกฤษ หรือทดลองปรับตัวเลือกของ `OcrEngine.Settings` (เช่น `PageSegmentationMode`, `ImagePreprocessing`) เพื่อปรับความแม่นยำ คุณยังสามารถนำผลลัพธ์ไปบันทึกในฐานข้อมูล สร้าง PDF หรือส่งต่อไปยัง API แปลภาษาได้. + +หากคุณเจอปัญหาใด ๆ ตรวจสอบเอกสาร Aspose.OCR หรือแสดงความคิดเห็นด้านล่าง ขอให้สนุกกับการเขียนโค้ด และขอให้ผลลัพธ์ OCR ของคุณใสเหมือนคริสตัล! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..700cc220 --- /dev/null +++ b/ocr/thai/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: บทเรียน OCR ด้วย C# แสดงวิธีดึงข้อความ โหลดภาพสำหรับ OCR และเขียน JSON + ลงไฟล์โดยใช้ Aspose.OCR – คู่มือขั้นตอนโดยละเอียด +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: th +og_description: บทเรียน OCR ด้วย C# ที่อธิบายขั้นตอนการสกัดข้อความจากภาพ, โหลดภาพสำหรับ + OCR, และเขียน JSON ไปยังไฟล์โดยใช้ Aspose.OCR. +og_title: บทเรียน OCR ด้วย C# – ดึงข้อความและส่งออกเป็น JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: บทเรียน OCR ด้วย C# – ดึงข้อความจากรูปภาพและส่งออกเป็น JSON +url: /th/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR tutorial – ดึงข้อความจากรูปภาพและส่งออกเป็น JSON + +เคยสงสัยไหมว่าจะแยกข้อความจากใบแจ้งหนี้ที่สแกนได้อย่างไรโดยไม่ต้องใช้เวลาหลายชั่วโมงในการเขียนตัวแยกข้อมูลแบบกำหนดเอง? คุณไม่ได้เป็นคนเดียว ใน **c# OCR tutorial** นี้เราจะสาธิตวิธีโหลดรูปภาพสำหรับ OCR, เรียกใช้เอนจินการจดจำ, และจากนั้น **write JSON to file** เพื่อให้คุณสามารถส่งข้อมูลไปยังระบบ downstream ได้ + +ลองนึกภาพว่าคุณมีโฟลเดอร์ของใบเสร็จรับเงิน, แต่ละไฟล์ชื่อ `receipt1.png`, `receipt2.png`, และคุณต้องการวิธีที่รวดเร็วในการแปลงเป็นบันทึก JSON ที่สามารถค้นหาได้ นั่นคือปัญหาที่เราจะแก้ไข, และเมื่อเสร็จคุณจะมีแอปคอนโซลพร้อมรันที่ทำเช่นนั้นโดยไม่มีการพึ่งพาเพิ่มเติมนอกจาก Aspose.OCR, และไม่มีเวทมนตร์—เพียงขั้นตอนที่ชัดเจนและทำซ้ำได้ + +> **สิ่งที่คุณจะได้เรียนรู้** +> - วิธี **load image for OCR** ด้วย Aspose.OCR. +> - วิธี **how to extract text** และรับคะแนนความมั่นใจ. +> - การแปลงผลลัพธ์ OCR ให้เป็น payload **OCR image to JSON** ที่จัดโครงสร้างอย่างดี. +> - อย่างปลอดภัย **write JSON to file** และตรวจสอบผลลัพธ์ + +## ข้อกำหนดเบื้องต้น + +- .NET 6 SDK หรือรุ่นที่ใหม่กว่า (โค้ดทำงานบน .NET Core ด้วยเช่นกัน). +- Visual Studio 2022 หรือโปรแกรมแก้ไขใด ๆ ที่คุณชอบ. +- Aspose.OCR NuGet package (`Install-Package Aspose.OCR`). +- ไฟล์รูปภาพ (PNG, JPG, BMP) ที่คุณต้องการประมวลผล – สำหรับสาธิตเราจะใช้ `invoice.png`. + +หากคุณขาดสิ่งใดสิ่งหนึ่ง, ให้ดาวน์โหลด SDK จากเว็บไซต์ของ Microsoft แล้วเพิ่มแพคเกจ NuGet ผ่าน Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +เมื่อพื้นฐานพร้อมแล้ว, เรามาเริ่มการทำงานจริงกัน + +## Step 1: c# OCR tutorial – เริ่มต้น OCR Engine + +ก่อนที่เราจะ **load image for OCR**, เราต้องมีอินสแตนซ์ของเอนจินที่ขับเคลื่อนกระบวนการจดจำ `OcrEngine` class มีน้ำหนักเบา, แต่การห่อหุ้มด้วยบล็อก `using` เป็นแนวปฏิบัติที่ดีเพื่อให้ทรัพยากรถูกปล่อยอย่างทันท่วงที + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* หากคุณวางแผนประมวลผลรูปภาพหลายรูปในชุด, ให้ใช้อินสแตนซ์ `OcrEngine` เดียวกันซ้ำแทนการสร้างใหม่ทุกครั้ง จะช่วยลดการใช้หน่วยความจำและเร่งความเร็ว + +## Step 2: Load image for OCR + +ตอนนี้เราจะ **load image for OCR** จริง ๆ Aspose.OCR รองรับหลายรูปแบบ, คุณจึงสามารถชี้ไปที่ไฟล์ PNG, JPEG, หรือแม้แต่ TIFF แบบหลายหน้าได้ เมธอด `OcrImage.FromFile` จะอ่านไฟล์และเตรียมพร้อมสำหรับการจดจำ + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **ทำไมเรื่องนี้ถึงสำคัญ:** การโหลดรูปภาพแยกออกมาช่วยให้คุณตรวจสอบขนาด, DPI, หรือแม้กระทั่งทำการประมวลผลล่วงหน้า (เช่น การทำไบนารี) ก่อนส่งไปยังเอนจิน หากรูปภาพเสียหาย, `FromFile` จะโยนข้อยกเว้นที่ชัดเจน, ซึ่งคุณสามารถจับและบันทึกได้ + +## Step 3: How to extract text – เรียกใช้การจดจำ + +เมื่อมีรูปภาพในมือ, เราก็สามารถ **how to extract text** จากมันได้ เมธอด `Recognize` จะคืนค่าอ็อบเจกต์ `OcrResult` ที่บรรจุไม่เพียงแต่ข้อความธรรมดา แต่ยังรวมถึงข้อมูลตำแหน่งและคะแนนความมั่นใจของแต่ละคำ + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* บางไฟล์ PDF มีเลเยอร์ข้อความที่มองไม่เห็น หากคุณป้อนหน้าของ PDF ที่แปลงเป็นรูปภาพ, เอนจินอาจไม่เห็นอะไรเลย ในกรณีนั้นให้พิจารณาใช้ Aspose.PDF เพื่อดึงเลเยอร์ที่ซ่อนอยู่ก่อน, แล้วค่อยใช้ OCR เฉพาะเมื่อจำเป็น + +## Step 4: OCR image to JSON – แปลงผลลัพธ์ + +คลาส `OcrResult` มีเมธอดช่วย `ToJson()` ที่ทำการซีเรียลไลซ์ชุดผลลัพธ์ทั้งหมด—รวมถึงกรอบล้อมรอบของแต่ละคำและคะแนนความมั่นใจ—เป็นสตริง JSON นี่เป็นวิธีที่สะอาดที่สุดในการทำ **OCR image to JSON** โดยไม่ต้องเขียนตัวแปลงของคุณเอง + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +หากคุณต้องการสคีมาที่กำหนดเอง, สามารถวนลูป `ocrResult.Words` แล้วสร้างอ็อบเจกต์ของคุณเอง, แต่ในหลาย ๆ สถานการณ์ JSON ที่สร้างโดยในตัวนั้นเพียงพอและมีโครงสร้างที่ดีอยู่แล้ว + +## Step 5: Write JSON to file + +ตอนนี้มาถึงชิ้นส่วนสุดท้ายของปริศนา: การบันทึก payload JSON เมธอด `File.WriteAllText` จะรับประกันว่าไฟล์จะถูกสร้าง (หรือเขียนทับ) อย่างอะตอมิก ตรวจสอบให้แน่ใจว่าไดเรกทอรีเป้าหมายมีอยู่, ไม่เช่นนั้นคุณจะเจอ `DirectoryNotFoundException` + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* หากต้องการ UTF‑8 พร้อม BOM หรือการเข้ารหัสอื่น, ให้ใช้ overload ที่รับอาร์กิวเมนต์ `Encoding` + +## Step 6: Verify the output + +การใช้ `Console.WriteLine` อย่างเร็ว ๆ จะบอกให้เราทราบว่ากระบวนการสำเร็จแล้ว คุณยังสามารถเปิดไฟล์ JSON ด้วยโปรแกรมดูเพื่อยืนยันโครงสร้างได้ + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### ตัวอย่าง JSON ที่คาดหวัง + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON จะรวมตำแหน่งของแต่ละคำ, ซึ่งเป็นประโยชน์หากคุณต้องการไฮไลท์ข้อความใน UI ในภายหลัง + +## ตัวอย่างการทำงานเต็มรูปแบบ + +ด้านล่างเป็นโปรแกรมที่พร้อมคัดลอกและวาง ใช้ `YOUR_DIRECTORY` แทนเส้นทางจริงที่เก็บรูปภาพของคุณ + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +เรียกใช้โปรแกรม (`dotnet run` จากโฟลเดอร์โปรเจกต์) แล้วคุณจะพบ `invoice.json` อยู่ข้างไฟล์ PNG ดั้งเดิม + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|--------| +| **FileNotFoundException** when loading the image | พิมพ์เส้นทางผิดหรือไฟล์หาย | ใช้ `Path.Combine` และตรวจสอบ `File.Exists` ก่อนเรียก `FromFile`. | +| **Low confidence scores** | คุณภาพภาพแย่, DPI ต่ำ | ทำการประมวลผลล่วงหน้าด้วย `ocrImage.AdjustContrast` หรือเพิ่มขนาดภาพเป็น 300 DPI. | +| **JSON file empty** | `ocrResult` คืนค่า null (เอนจินล้มเหลว) | ตรวจสอบว่ารูปแบบภาพรองรับและไลเซนส์ (ถ้ามี) ถูกตั้งค่าอย่างถูกต้อง. | +| **Performance bottleneck on large batches** | สร้าง `OcrEngine` ใหม่ทุกครั้ง | ใช้ `OcrEngine` อินสแตนซ์เดียวสำหรับทั้งชุด, ปิดการใช้งานเมื่อทำเสร็จ. | + +## ขั้นตอนต่อไป + +ตอนนี้คุณได้เชี่ยวชาญ **c# OCR tutorial** แล้ว, คุณอาจต้องการ: + +- **Batch process** โฟลเดอร์ทั้งหมดและรวมไฟล์ JSON เข้าเป็นฐานข้อมูลเดียว. +- **Integrate** ผลลัพธ์กับ Azure Cognitive Search เพื่อทำ PDF ที่ค้นหาได้. +- **Add language support** โดยตั้งค่า `ocrEngine.Language = OcrLanguage.Spanish` (หรือภาษาอื่นที่รองรับ). +- **Post‑process** JSON เพื่อสกัดตารางหรือคู่คีย์‑ค่าโดยใช้ regular expressions. + +แต่ละการขยายนี้สร้างบนแนวคิดหลักที่เราได้ครอบคลุม: การโหลดรูปภาพสำหรับ OCR, การแยกข้อความ, การแปลงเป็น JSON, และการบันทึก JSON ไปยังดิสก์ + +--- + +### สรุป + +ใน **c# OCR tutorial** นี้เราได้อธิบายขั้นตอนทั้งหมดที่จำเป็นเพื่อ **load image for OCR**, **how to extract text**, แปลงผลลัพธ์เป็น payload **OCR image to JSON**, และสุดท้าย **write JSON to file** ตัวอย่างโค้ดเต็มพร้อมใช้งานสามารถนำไปใส่ในโปรเจกต์ .NET ใดก็ได้, และคำอธิบายให้บริบทที่คุณต้องการเพื่อปรับใช้ในสถานการณ์จริง + +ลองใช้กับชุดใบเสร็จหรือใบแจ้งหนี้ของคุณเอง—ปรับการประมวลผลภาพ, ทดลองภาษาอื่น ๆ, แล้วดูผลลัพธ์ JSON เติบโต หากเจออุปสรรคใด ๆ, กลับไปดูตารางข้อผิดพลาดหรือแสดงความคิดเห็นด้านล่าง ขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/thai/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..33e4b00d --- /dev/null +++ b/ocr/thai/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: เรียนรู้วิธีทำ OCR รูปภาพใน C# และแปลง JPG เป็น ePub ด้วย Aspose OCR + คู่มือขั้นตอนนี้ยังแสดงวิธีดึงข้อความจากรูปภาพด้วย +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: th +og_description: วิธีทำ OCR รูปภาพใน C#? ทำตามคำแนะนำนี้เพื่อดึงข้อความจากรูปภาพและแปลง + JPG เป็น ePub ด้วย Aspose OCR. +og_title: วิธีทำ OCR รูปภาพใน C# – แปลง JPG เป็น ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: วิธีทำ OCR รูปภาพใน C# – แปลง JPG เป็น ePub +url: /th/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีทำ OCR รูปภาพใน C# – แปลง JPG เป็น ePub + +เคยสงสัย **วิธีทำ OCR รูปภาพ** โดยตรงจากแอปคอนโซล C# หรือไม่? คุณไม่ได้เป็นคนเดียว นักพัฒนาหลายคนเจออุปสรรคเมื่อต้องดึงข้อความจากภาพถ่ายแล้วนำข้อความนั้นมาสร้างเป็นหนังสือ ePub ที่อ่านได้ + +ในบทเรียนนี้เราจะเดินผ่านตัวอย่างที่ทำงานได้เต็มรูปแบบ ซึ่ง **ดึงข้อความจากรูปภาพ**, บันทึกผลเป็น ePub, และแสดงวิธี **แปลง JPG เป็น ePub** โดยไม่ต้องออกจาก IDE ไม่มีส่วนเกิน เพียงคัดลอก‑วางโค้ดและรันได้ทันที + +## สิ่งที่คุณจะได้เรียน + +- วิธีตั้งค่า Aspose OCR engine ในโปรเจกต์ .NET +- ขั้นตอนที่แน่นอนเพื่อ **แปลงรูปภาพเป็น epub** ด้วยตัวเลือก `OcrSaveFormat.Epub` +- เคล็ดลับการจัดการกับปัญหาที่พบบ่อย เช่น รูปแบบภาพที่ไม่รองรับหรือฟอนต์หาย +- โปรแกรม C# เต็มรูปแบบที่คุณสามารถคอมไพล์และรันได้ทันที + +**ข้อกำหนดเบื้องต้น**: .NET 6 SDK (หรือเวอร์ชัน .NET ล่าสุด), แพ็กเกจ NuGet ของ Aspose.OCR ที่ใช้งานได้, และไฟล์รูปภาพ (`input.jpg`) ที่ต้องการประมวลผล หากคุณยังไม่เคยใช้ NuGet มาก่อน เพียงเปิด Package Manager Console แล้วรัน `Install-Package Aspose.OCR` + +พร้อมหรือยัง? ไปเริ่มกันเลย + +## ขั้นตอนที่ 1 – วิธีทำ OCR รูปภาพและโหลดแหล่งข้อมูล + +สิ่งแรกที่ต้องมีคืออินสแตนซ์ของ OCR engine และรูปภาพต้นฉบับ Aspose OCR ทำให้เรื่องนี้ง่ายขึ้น: คุณสร้าง `OcrEngine` แล้วใส่ `OcrImage` ที่โหลดจากดิสก์ + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **ทำไมเรื่องนี้สำคัญ** – การสร้าง engine เพียงครั้งเดียวช่วยลดการใช้หน่วยความจำ, และการโหลดภาพล่วงหน้าช่วยให้คุณตรวจสอบเส้นทางไฟล์ก่อนที่การทำ OCR ที่หนักหน่วงจะเริ่มทำงาน + +## ขั้นตอนที่ 2 – รัน OCR และดึงข้อความจากรูปภาพ + +เมื่อภาพอยู่ในหน่วยความจำแล้ว ให้สั่ง engine จดจำอักขระ วิธี `Recognize` จะคืนค่าเป็นอ็อบเจกต์ `OcrResult` ที่บรรจุข้อความดิบ, คะแนนความเชื่อมั่น, และข้อมูลการจัดวาง + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **เคล็ดลับระดับมืออาชีพ** – หากคุณต้องการแค่ข้อความและไม่ต้องการ ePub สามารถหยุดที่นี่ได้ คุณสามารถใช้คุณสมบัติ `ocrResult.Text` ซึ่งเป็นสตริงที่สะอาดพร้อมนำไปใช้ต่อได้ทุกระบบ + +## ขั้นตอนที่ 3 – บันทึกผลเป็นหนังสือ ePub (แปลง JPG เป็น ePub) + +Aspose OCR สามารถทำการซีเรียลไลซ์ผล OCR ไปยังหลายรูปแบบได้รวมถึง ePub ขั้นตอนนี้จะแสดงวิธี **แปลง JPG เป็น ePub** ด้วยบรรทัดเดียว + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +เมื่อคุณรันโปรแกรม จะเห็นข้อความที่ดึงได้แสดงบนคอนโซลและไฟล์ `book_page.epub` ใหม่ปรากฏข้างไฟล์ภาพต้นฉบับ เปิดไฟล์ด้วยโปรแกรมอ่าน ePub ใดก็ได้ (Calibre, Apple Books ฯลฯ) แล้วคุณจะพบข้อความ OCR ที่จัดรูปแบบเป็นหนังสือหน้าเดียวอย่างสวยงาม + +### ผลลัพธ์ที่คาดหวัง + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +หาก ePub เปิดได้อย่างถูกต้อง ยินดีด้วย—คุณเพิ่งทำ **ตัวอย่าง OCR ด้วย C#** ที่แปลง JPEG เป็น ePub พกพาได้สำเร็จ + +## ขั้นตอนที่ 4 – ปัญหาที่พบบ่อยเมื่อแปลงรูปภาพเป็น ePub + +แม้จะใช้ไลบรารีที่แข็งแรง คุณก็อาจเจออุปสรรคบ้าง นี่คือ FAQ สั้น ๆ: + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|----------| +| **รูปแบบภาพที่ไม่รองรับ** | Aspose OCR ต้องการรูปแบบเรสเตอร์ (JPG, PNG, BMP) | แปลงภาพเป็น JPG หรือ PNG ก่อน เช่น ใช้ `System.Drawing.Image` | +| **ผลลัพธ์เป็นค่าว่าง** | คุณภาพภาพต่ำหรือบีบอัดมากเกินไป | เพิ่ม DPI, ใช้สแกนที่ชัดเจนกว่า, หรือทำการพรีโพรเซสภาพ (`ocrEngine.Preprocess`) | +| **ฟอนต์หายใน ePub** | ตัวเขียน ePub เริ่มต้นใช้ฟอนต์ระบบที่อาจไม่ถูกฝัง | ตั้งค่า `ocrEngine.Config.FontsDirectory` ให้ชี้ไปยังโฟลเดอร์ที่มีไฟล์ .ttf ที่ต้องการ | +| **ไฟล์ ePub ขนาดใหญ่** | ภาพความละเอียดสูงถูกฝังเป็นหน้าแยก | ใช้ `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` | + +การจัดการปัญหาเหล่านี้ตั้งแต่แรกจะช่วยคุณหลีกเลี่ยงการตามบั๊กในภายหลัง + +## ขั้นตอนที่ 5 – ขยายตัวอย่าง (เหนือพื้นฐาน) + +เมื่อคุณมี **pipeline แปลงรูปภาพเป็น ePub** ทำงานแล้ว คุณอาจอยากลองทำอย่างอื่น นี่คือไอเดียบางส่วนที่คุณสามารถทำได้พรุ่งนี้: + +1. **ประมวลผลเป็นชุด** – วนลูปโฟลเดอร์ของ JPGs, สร้าง ePub หนึ่งไฟล์ต่อภาพ, หรือรวมเป็น ePub หลายบท +2. **เลือกภาษา** – ตั้งค่า `ocrEngine.Language = Language.English;` หรือภาษาอื่นที่รองรับเพื่อเพิ่มความแม่นยำ +3. **รักษาการจัดวาง** – ใช้ `OcrSaveFormat.Html` ก่อน แล้วห่อ HTML นั้นใน ePub เพื่อให้ฟอร์แมตที่หลากหลายขึ้น +4. **ปรับใช้บนคลาวด์** – นำโค้ดไปใส่ใน Azure Function หรือ AWS Lambda เพื่อให้บริการ OCR‑to‑ePub เป็นเว็บเซอร์วิส + +แต่ละส่วนขยายเหล่านี้ต่อยอดจากหลักการ **วิธีทำ OCR รูปภาพ** ที่เราได้อธิบายไปแล้ว + +## โค้ดเต็มที่ทำงานได้ (คัดลอก‑วางพร้อมใช้) + +ด้านล่างเป็นโปรแกรมทั้งหมดในบล็อกเดียว แทนที่ `YOUR_DIRECTORY` ด้วยพาธจริงของไฟล์ภาพของคุณ + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **จำไว้** – ต้องติดตั้งแพ็กเกจ NuGet `Aspose.OCR` และรันบน .NET runtime อย่างน้อย .NET 5 เพื่อความเข้ากันได้สูงสุด + +## สรุป + +เราได้ครอบคลุม **วิธีทำ OCR รูปภาพ** ด้วย C# และแปลงสแกนเหล่านั้นเป็นหนังสือ ePub ที่สะอาด—เป็น workflow **แปลง JPG เป็น ePub** ที่คุณสามารถใส่ลงในโปรเจกต์ใดก็ได้ โดยทำตามขั้นตอนข้างต้น คุณจะสามารถ **ดึงข้อความจากรูปภาพ**, จัดการกับกรณีขอบที่พบบ่อย, และขยายโซลูชันเป็นงานแบบ batch หรือบริการคลาวด์ได้ + +หากอยากก้าวต่อไป ลองเปลี่ยนผลลัพธ์เป็น PDF (`OcrSaveFormat.Pdf`) หรือส่งข้อความ OCR ไปยัง API แปลภาษา ความเป็นไปได้ไม่มีที่สิ้นสุดเมื่อคุณเชี่ยวชาญพื้นฐานแล้ว + +มีคำถามเกี่ยวกับรูปแบบภาพใดเป็นพิเศษ หรืออยากเห็นตัวอย่าง ePub หลายหน้า? แสดงความคิดเห็นได้เลย ยินดีช่วยเหลือ ขอให้สนุกกับการเขียนโค้ดและแปลงรูปภาพเป็นหนังสือ! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/thai/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..2beb34e0 --- /dev/null +++ b/ocr/thai/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-01-01 +description: จดจำข้อความรัสเซียได้ทันทีด้วย Aspose OCR C#. เรียนรู้การจดจำข้อความจีน, + อ่านจำนวนหน้าของ PDF, และแปลงข้อความในหน้า PDF ในบทเรียนเดียว. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: th +og_description: จดจำข้อความรัสเซียอย่างรวดเร็วโดยใช้ Aspose OCR C#. บทเรียนนี้ยังครอบคลุมวิธีจดจำข้อความจีน, + อ่านจำนวนหน้าของ PDF, และแปลงข้อความในหน้าของ PDF. +og_title: รู้จำข้อความรัสเซียด้วย Aspose OCR C# – คู่มือฉบับเต็ม +tags: +- Aspose OCR +- C# +- PDF processing +title: จดจำข้อความรัสเซียด้วย Aspose OCR C# – คู่มือ PDF หลายหน้าแบบเต็มรูปแบบ +url: /th/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# จดจำข้อความรัสเซียด้วย Aspose OCR C# – คู่มือเต็มสำหรับ PDF หลายหน้า + +เคยต้องการ **recognize russian text** ใน PDF ที่มีหลายภาษาและสงสัยว่าจะทำอย่างไรโดยไม่ต้องใช้เครื่องมือแยกต่างหากสำหรับแต่ละหน้าไหม? คุณไม่ได้เป็นคนเดียว ในหลายโครงการจริง ๆ คุณอาจได้รับ PDF เดียวที่มีภาษาอังกฤษ, รัสเซีย, และแม้กระทั่งจีนในหน้าต่าง ๆ และคุณยังต้องการผลลัพธ์ข้อความที่เป็นหนึ่งเดียวและสะอาด + +ในคู่มือนี้เราจะแสดงให้คุณเห็นอย่างละเอียดว่า **recognize russian text** (และภาษาอื่น ๆ) ด้วย **Aspose OCR C#** อย่างไร พร้อมสาธิตวิธี **read pdf page count**, **recognize chinese text**, และ **convert pdf page text** ให้เป็นข้อมูลที่แสดงในคอนโซลอย่างง่าย ไม่ต้องใช้บริการภายนอก ไม่ต้องมีขั้นตอนลับ—เพียงโค้ด C# แท้ ๆ ที่คุณคัดลอก‑วางและรันได้เลย + +> **สิ่งที่คุณจะได้เรียนรู้** +> * แอปคอนโซล C# ที่สามารถรันได้และประมวลผล PDF หลายหน้า +> * การเลือกภาษาตามหน้า (Russian, Chinese, English) +> * เทคนิคการสอบถามจำนวนหน้าของ PDF และดึงข้อความจากแต่ละหน้า +> * เคล็ดลับ, จุดบกพร่อง, และการขยายที่คุณสามารถนำไปใช้ในโครงการของคุณเอง + +--- + +## ความต้องการเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ยังทำงานบน .NET Framework 4.7+ ด้วย) +- แพคเกจ NuGet **Aspose.OCR for .NET** ติดตั้งแล้ว (`dotnet add package Aspose.OCR`) +- ไฟล์ PDF ที่มีหลายภาษา; สำหรับตัวอย่างเราจะอ้างถึง `mixed_lang.pdf` +- ความคุ้นเคยพื้นฐานกับแอปพลิเคชันคอนโซล C# + +หากคุณขาดสิ่งใดสิ่งหนึ่ง ให้ดาวน์โหลด Aspose OCR ล่าสุดจาก NuGet แล้ววางไฟล์ PDF ไว้ในตำแหน่งที่เข้าถึงได้จากโฟลเดอร์โปรเจกต์ + +--- + +## ขั้นตอนที่ 1 – เริ่มต้น Aspose OCR Engine + +สิ่งแรกที่คุณต้องมีคืออินสแตนซ์ของ `OcrEngine` ซึ่งอ็อบเจกต์นี้จะเก็บการตั้งค่าต่าง ๆ (เช่น ภาษา) และทำหน้าที่ประมวลผลหลัก + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **ทำไมสิ่งนี้ถึงสำคัญ:** +> Engine นี้สามารถนำกลับมาใช้ใหม่ได้ ดังนั้นเราจึงไม่ต้องเสียหน่วยความจำโดยการสร้างอินสแตนซ์ใหม่สำหรับทุกหน้า การนำกลับมาใช้ยังทำให้เราสามารถเปลี่ยนภาษาได้แบบไดนามิก ซึ่งจำเป็นสำหรับ **recognize russian text** ในหน้าหนึ่งและ **recognize chinese text** ในอีกหน้าหนึ่ง + +--- + +## ขั้นตอนที่ 2 – โหลด PDF และตรวจสอบจำนวนหน้า + +ก่อนที่เราจะเริ่มจดจำ เราต้องมีอ็อบเจกต์ PDF และจำนวนหน้าของมัน Aspose OCR จะถือแต่ละหน้าเป็น `OcrImage` + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **เคล็ดลับ:** หาก PDF มีขนาดใหญ่ คุณอาจต้องการอ่านจำนวนหน้าก่อนและตัดสินว่าจะประมวลผลทุกหน้า หรือเฉพาะบางส่วนเท่านั้น + +--- + +## ขั้นตอนที่ 3 – กำหนดแผนที่หน้ากับภาษาที่ต้องการ + +Aspose OCR รองรับหลายภาษา แต่คุณต้องบอกให้มันรู้ว่าจะใช้ภาษาใดกับแต่ละหน้า ด้านล่างเราจะสร้าง `Dictionary` ที่คีย์เป็นดัชนีหน้าตั้งแต่ศูนย์ + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **ทำไมขั้นตอนนี้ถึงสำคัญ:** +> หากไม่มีแผนที่นี้ OCR engine จะใช้ภาษาเริ่มต้นเดียวสำหรับทุกหน้า ทำให้ผลลัพธ์ของข้อความรัสเซียหรือจีนออกมาผิดรูปแบบ ขั้นตอนนี้จึงทำให้ **recognize russian text** และ **recognize chinese text** ทำงานได้อย่างถูกต้อง + +--- + +## ขั้นตอนที่ 4 – วนลูปทุกหน้า, ตั้งค่าภาษา, แล้วจดจำข้อความ + +ตอนนี้เราจะวนลูปแต่ละหน้า สลับภาษาตามแผนที่ แล้วเรียก `Recognize` ผลลัพธ์จะถูกเก็บใน `OcrResult` จากนั้นดึงข้อความธรรมดาออกมา + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### ตัวอย่างผลลัพธ์ในคอนโซล + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **อธิบายการทำงาน:** +> * ลูปนี้เคารพ **read pdf page count** ที่เราพิมพ์ไว้ก่อนหน้า +> * การสลับ `ocrEngine.Settings.Language` ทุกครั้งทำให้มั่นใจว่า **recognize russian text** บนหน้า 2 และ **recognize chinese text** บนหน้า 3 จะถูกต้อง +> * คำสั่ง `Console.WriteLine` ทำหน้าที่ **convert pdf page text** ให้เป็นสตริงที่มนุษย์อ่านได้ + +--- + +## ขั้นตอนที่ 5 – รัน, ตรวจสอบ, และปรับแต่ง + +1. สร้างโปรเจกต์ (`dotnet build`) +2. รันโปรเจกต์ (`dotnet run`) +3. เปรียบเทียบผลลัพธ์ในคอนโซลกับ PDF ต้นฉบับ + +หากพบอักขระหายไป ให้พิจารณา: + +- **เพิ่มความแม่นยำของ OCR** ด้วยการตั้งค่า `ocrEngine.Settings.DetectTextOrientation = true;` +- **ใช้แพ็คเกจภาษาที่กำหนดเอง** หากพจนานุกรมรัสเซียหรือจีนในตัวไม่อัปเดต +- **ปรับ DPI** ขณะโหลด PDF (`OcrImage.FromFile(path, 300)`) ซึ่งอาจช่วยให้การจดจำในสแกนความละเอียดต่ำดีขึ้น + +--- + +## โบนัส: การจัดการกรณีขอบ + +### ถ้าหน้าหนึ่งไม่มีภาษาที่กำหนดในแผนที่? + +โค้ดจะกลับไปใช้ภาษาอังกฤษโดยอัตโนมัติ แต่คุณสามารถเพิ่มการแจ้งเตือนได้เช่น: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### สามารถประมวลผล PDF ที่มีมากกว่าสามภาษาได้หรือไม่? + +ทำได้แน่นอน เพียงขยาย `languageMap` ด้วยดัชนีและค่า `OcrLanguage` เพิ่มเติม (เช่น `OcrLanguage.French`) ลูปจะจัดการจำนวนหน้าที่มากขึ้นได้โดยไม่มีปัญหา + +### ต้องการส่งออกผลลัพธ์ไปไฟล์แทนคอนโซล? + +เปลี่ยนคำสั่ง `Console.WriteLine` เป็น `File.AppendAllText("output.txt", …)` หรือใช้ `StringBuilder` แล้วเขียนไฟล์หลังจบลูป + +--- + +## ภาพประกอบ + +![ตัวอย่างการจดจำข้อความรัสเซีย](/images/recognize-russian-text.png "ภาพหน้าจอแสดงผลลัพธ์ OCR สำหรับข้อความรัสเซีย") + +*ภาพด้านบนแสดงผลลัพธ์ในคอนโซลเมื่อทำ **recognize russian text** บน PDF ที่มีหลายภาษา* + +--- + +## สรุป + +เราได้เดินผ่านตัวอย่างครบวงจรที่แสดงวิธี **recognize russian text** (และ **recognize chinese text**) จาก PDF หลายหน้าโดยใช้ **Aspose OCR C#** โดยการอ่านจำนวนหน้าของ PDF, สร้างแผนที่ภาษาสำหรับแต่ละหน้า, และวนลูปประมวลผล คุณจึงสามารถ **convert pdf page text** ให้เป็นสตริงธรรมดาที่พร้อมเก็บ, ทำดัชนี, หรือวิเคราะห์ต่อได้ + +สรุปสั้น ๆ: + +- **Initialize** อินสแตนซ์ `OcrEngine` เพียงตัวเดียว +- **Load** PDF และ **read pdf page count** +- **Map** หน้าให้ตรงกับภาษา (Russian, Chinese, ฯลฯ) +- **Iterate**, ตั้งค่า `ocrEngine.Settings.Language` แล้ว **recognize** แต่ละหน้า +- **Output** หรือบันทึกข้อความที่ดึงได้ + +คุณสามารถปรับรูปแบบนี้ให้เหมาะกับเอกสารขนาดใหญ่ เพิ่มการจัดการข้อผิดพลาด หรือเชื่อมต่อผลลัพธ์กับระบบค้นหาได้ แนวคิดหลัก—การเลือกภาษาตามหน้า—ยังคงเป็นหัวใจสำคัญที่ทำให้ **recognize russian text** ทำงานได้อย่างเชื่อถือได้ใน PDF ที่มีหลายภาษา + +มีกรณีอื่น เช่น การสแกนภาพแทน PDF? Engine เดียวกันก็ใช้ได้; เพียงเปลี่ยน `OcrImage.FromFile` เป็น `OcrImage.FromStream` หรือ `FromBitmap` เท่านั้น ขอให้สนุกกับการเขียนโค้ดและขอให้ OCR ของคุณแม่นยำเสมอ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/ocr-configuration/_index.md b/ocr/turkish/net/ocr-configuration/_index.md index ab8cd94c..a039700a 100644 --- a/ocr/turkish/net/ocr-configuration/_index.md +++ b/ocr/turkish/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Aspose.OCR ile .NET'te OCR görüntü tanımanın gücünün kilidini açın. G Aspose.OCR for .NET ile güçlü OCR özelliklerinin kilidini açın. Görüntülerden metni sorunsuz bir şekilde çıkarın. ### [OCR Görüntü Tanıma'da Liste ile OCR İşlemi](./ocr-operation-with-list/) Aspose.OCR for .NET'in potansiyelini ortaya çıkarın. Listelerle OCR görüntü tanımayı zahmetsizce gerçekleştirin. Uygulamalarınızda üretkenliği ve veri çıkarmayı artırın. +### [Aspose OCR'de Lisans Nasıl Uygulanır – Adım Adım C# Kılavuzu](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Aspose OCR için lisansı C# dilinde adım adım nasıl uygulayacağınızı öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/turkish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..7f4d4f94 --- /dev/null +++ b/ocr/turkish/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: C#'ta Aspose OCR lisansını nasıl uygulayacağınızı öğrenin. Dosyayı nasıl + okuyacağınızı, Aspose lisansını nasıl ayarlayacağınızı, MemoryStream'i nasıl kullanacağınızı + ve lisansı verimli bir şekilde nasıl yükleyeceğinizi öğrenin. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: tr +og_description: C#'da Aspose OCR lisansını nasıl uygulayacağınızı öğrenin. Lisans + dosyasını okuma, Aspose lisansını ayarlama, MemoryStream kullanma ve kurulumu doğrulama + için bu kılavuzu izleyin. +og_title: Aspose OCR'de Lisans Nasıl Uygulanır – Tam C# Öğreticisi +tags: +- Aspose +- OCR +- C# +- Licensing +title: Aspose OCR'de Lisans Nasıl Uygulanır – Adım Adım C# Rehberi +url: /tr/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR'de Lisans Nasıl Uygulanır – Tam C# Kılavuzu + +Aspose OCR için **lisansın nasıl uygulanacağını** belirsiz dokümanları takip etmeden merak ettiniz mi? Tek başınıza değilsiniz. Çoğu geliştirici aynı sorunu yaşıyor: dosyayı okuyabiliyorlar, ancak onu kütüphaneye doğru şekilde nasıl besleyeceklerini bilmiyorlar. Bu öğreticide, `.lic` dosyasını diskten yüklemekten `SetLicense` metodunu bir `MemoryStream` ile çağırmaya kadar her detayı adım adım göstereceğiz. Sonunda, herhangi bir .NET projesine ekleyebileceğiniz çalışan bir çözüm elde edeceksiniz. + +Ayrıca **dosyanın nasıl okunacağını** güvenli bir şekilde, **Aspose lisansının nasıl ayarlanacağını** doğru yöntemi ve **MemoryStream** kullanmanın en temiz yaklaşım olduğunu ele alacağız. Farklı ortamlar için **lisansın nasıl yükleneceği** hakkında merak ettikleriniz de bu ipuçları arasında. Harici referanslara gerek yok – sadece saf, kopyala‑yapıştır‑hazır kod. + +## Gereksinimler + +- .NET 6.0 veya üzeri (kod .NET Core ve .NET Framework ile de çalışır) +- Aspose.OCR NuGet paketi yüklü (`Install-Package Aspose.OCR`) +- Uygulamanızın erişebileceği bir yerde bulunan geçerli bir `Aspose.OCR.lic` dosyası +- C# ve Visual Studio (veya tercih ettiğiniz herhangi bir IDE) hakkında temel bilgi + +> **Pro ipucu:** Lisans dosyasını kaynak kontrol klasörünüzün dışına koyun, böylece yanlışlıkla commit edilmesini önlersiniz. + +## Adım 1: Dosyanın Nasıl Okunacağını – Lisans Baytlarını Yükleme + +İlk olarak lisans dosyasının ham bayt dizisine ihtiyacımız var. `File.ReadAllBytes` kullanmak hem basit hem de verimlidir ve yol hatalıysa otomatik olarak net bir istisna fırlatır. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Neden önemli:** Dosyayı doğrudan belleğe okumak dosya‑işleyici sızıntılarını önler ve daha sonra kullanmak üzere temiz bir bayt dizisi sağlar. Ayrıca bu yöntem, konsol uygulamaları, web servisleri veya Azure Functions arasında yeniden kullanılabilir. + +## Adım 2: MemoryStream Nasıl Kullanılır – Lisans Akışını Hazırlama + +Aspose’un `License.SetLicense` aşırı yüklemesi bir `Stream` bekler. Bayt dizisini bir `MemoryStream` içine sarmak, dosya sistemine tekrar dokunmadan bu gereksinimi karşılamanın idiomatik yoludur. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Ana fikir:** `MemoryStream` hafiftir ve hızlıca dispose edilir. Ayrıca aynı bayt dizisini birden fazla kütüphane için yeniden kullanmanıza olanak tanır; böylece **birden fazla Aspose ürün lisansı** uygulamanız gerektiğinde işinizi kolaylaştırır. + +## Adım 3: Aspose Lisansını Ayarlama – “lisansın nasıl uygulanır”ın çekirdeği + +Şimdi bir `MemoryStream`’imiz olduğuna göre, lisansı uygulamak tek satırda yapılabilir. `License` sınıfı `Aspose.OCR` ad alanında bulunur; bu yüzden doğru `using` yönergesini eklediğinizden emin olun. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Lisans geçersiz veya süresi dolmuşsa, `SetLicense` sessizce başarısız olur ve kütüphane deneme modunda çalışır. Kesin olarak emin olmak için yalnızca lisanslı sürümde bulunan bir özelliği (ör. OCR doğruluk ayarları) kontrol edebilir ya da daha sonra yazdıracağımız onay mesajına güvenebilirsiniz. + +## Adım 4: Lisans Nasıl Yüklenir – Hepsini Bir Araya Getirme + +Aşağıda, diskteki **lisansın nasıl yükleneceğini**, bir `MemoryStream` kullanmayı ve lisansın başarılı bir şekilde uygulandığını doğrulamayı gösteren tam, çalıştırılabilir bir konsol programı yer alıyor. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Beklenen Çıktı + +``` +License applied successfully. You can now perform OCR operations. +``` + +Bu mesajı görürseniz, kütüphane tamamen lisanslanmış ve üretim‑düzeyi OCR görevlerine hazır demektir. + +## Yaygın Tuzaklar ve Nasıl Önlenir + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **FileNotFoundException** lisans okunurken | Yol hatalı veya dosya uygulama ile dağıtılmamış | Mutlak bir yol kullanın veya lisansı bir kaynak (resource) olarak gömün (aşağıdaki “alternatif yükleme”ye bakın) | +| **Lisans uygulanmadı ama hata yok** | `SetLicense` akış boş veya bozuksa sessizce deneme moduna geçer | `MemoryStream` oluşturulmadan önce `licenseData.Length > 0` olduğundan emin olun | +| **MemoryStream dispose edilmedi** | `using` unutulması yönetilmeyen kaynakların kalmasına yol açar | Gösterildiği gibi her zaman `using` bloğu içinde akışı sarmalayın | + +### Alternatif: Lisansı Gömülü Bir Kaynak Olarak Eklemek + +Ayrı bir `.lic` dosyası göndermek istemiyorsanız, dosyayı projenize ekleyin, **Build Action** değerini **Embedded Resource** olarak ayarlayın ve şu şekilde okuyun: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Ardından `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` metodunu çağırın ve aynı `MemoryStream` yaklaşımına devam edin. + +## Sonuç + +Aspose OCR için **lisansın nasıl uygulanacağını** baştan sona ele aldık: dosyayı okuma, `MemoryStream` oluşturma, `SetLicense` çağırma ve aktivasyonu doğrulama. Bu adımları izleyerek tahmin yürütmeyi ortadan kaldırır, yaygın hatalardan kaçınır ve OCR motorunuzun tam özellikli çalışmasını sağlarsınız. + +Sonraki adımda, yüksek verimli hizmetler için **dosyanın nasıl asenkron okunacağını** keşfedebilir veya lisans doğru yüklendiği için gelişmiş OCR ayarlarına dalabilirsiniz. Her iki durumda da desen aynı kalır—okuma, akış, ayarlama, doğrulama. + +ASP.NET Core ortamında lisans yükleme veya birden fazla Aspose ürün lisansı yönetimi gibi kenar durumlarıyla ilgili sorularınız varsa, aşağıya yorum bırakın. İyi kodlamalar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/ocr-optimization/_index.md b/ocr/turkish/net/ocr-optimization/_index.md index d746e299..c8db9630 100644 --- a/ocr/turkish/net/ocr-optimization/_index.md +++ b/ocr/turkish/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ Aspose.OCR for .NET'i keşfedin. Ön işleme filtreleriyle OCR doğruluğunu art Aspose.OCR for .NET ile OCR doğruluğunu artırın. Yazımları düzeltin, sözlükleri özelleştirin ve hatasız metin tanıma işlemini zahmetsizce gerçekleştirin. ### [OCR Görüntü Tanıma'da Çok Sayfalı Sonucu Belge Olarak Kaydet](./save-multipage-result-as-document/) Aspose.OCR for .NET'in potansiyelini ortaya çıkarın. Bu kapsamlı, adım adım kılavuzla çok sayfalı OCR sonuçlarını zahmetsizce belge olarak kaydedin. +### [C#'ta Aspose OCR Motoru ile Toplu OCR Nasıl Yapılır](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Aspose.OCR for .NET ile C# uygulamalarında toplu OCR işlemlerini hızlı ve etkili bir şekilde gerçekleştirin. +### [C#'ta Görüntü Ön İşleme OCR – Aspose OCR ile Doğruluğu Artırın](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Aspose OCR ile C# uygulamalarında görüntü ön işleme yaparak OCR doğruluğunu artırın. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/turkish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..788128f1 --- /dev/null +++ b/ocr/turkish/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-01-01 +description: C#'ta Aspose OCR Motoru kullanarak toplu OCR nasıl yapılır. Görüntülerden + metin tanımayı ve GPU hızlandırmasıyla TIFF dosyalarından metin çıkarmayı öğrenin. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: tr +og_description: C# ile Aspose OCR Motoru kullanarak toplu OCR nasıl yapılır. Bu kılavuz, + görüntülerden metin tanıma ve TIFF dosyalarından metin çıkarma işlemlerini verimli + bir şekilde nasıl yapacağınızı gösterir. +og_title: C#'ta Toplu OCR Nasıl Yapılır – Tam Aspose Rehberi +tags: +- OCR +- C# +- Aspose +- GPU +title: Aspose OCR Motoru ile C#'ta Toplu OCR Nasıl Yapılır +url: /tr/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# ile Aspose OCR Motoru Kullanarak Toplu OCR Nasıl Yapılır + +Bir klasörde duran onlarca taranmış belgeyle **toplu OCR** yapmanın nasıl olduğunu hiç merak ettiniz mi? Tek bir görüntü tanıma işleminden tüm bir koleksiyonu işleme aşamasına geçerken birçok geliştirici aynı duvara çarpıyor. İyi haber şu ki Aspose OCR, CPU’da çalışsanız da GPU hızlandırmasından yararlansanız da işi çocuk oyuncağı haline getiriyor. + +Bu öğreticide, **görüntülerden metin tanıyan** ve hatta **TIFF dosyalarından toplu olarak metin çıkaran** tam, çalıştırılabilir bir örnek üzerinden adım adım ilerleyeceğiz. “Belgeleri inceleyin” gibi belirsiz yönlendirmeler yok—bugün kopyalayıp yapıştırıp çalıştırabileceğiniz bağımsız bir çözüm. + +## Prerequisites + +İlerlemeye başlamadan önce şunların yüklü olduğundan emin olun: + +* .NET 6.0 veya daha yeni bir sürüm (kod .NET 6 hedefli, .NET 5 de çalışır). +* Aspose.OCR for .NET NuGet paketi (CPU ve GPU sürümleri mevcut; donanımınıza uygun olanı kurun). +* İşlemek istediğiniz birkaç örnek TIFF veya PNG dosyasının bulunduğu bir klasör. +* Visual Studio 2022 veya tercih ettiğiniz herhangi bir IDE. + +> **Pro tip:** GPU sürümünü kullanacaksanız, grafik sürücünüzün güncel olduğundan ve CUDA 11+ yüklü olduğundan emin olun. Motor, uyumlu bir GPU bulamazsa otomatik olarak CPU’ya geçer. + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: Yeni Bir Konsol Uygulaması Oluşturun ve Aspose.OCR Ekleyin + +Bir terminal (veya Visual Studio’da Package Manager Console) açın ve şu komutu çalıştırın: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +GPU‑destekli bir lisansınız varsa, bunun yerine GPU paketini ekleyin: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Hepsi bu—projeniz artık **toplu OCR** yapacağımız OCR kütüphanesine referans veriyor. + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: Toplu OCR – Motor Başlatma + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Neden önemli:** `UseGpu` değerini değiştirerek Aspose’un en hızlı yolu seçmesini sağlarsınız. GPU bulunamazsa motor sessizce CPU’ya geçer, böylece toplu işiniz eksik donanım nedeniyle çökmez. + +## Step 3 – Gather the Files You Want to Process + +### H2: Görüntülerden Metin Tanıma – Dosya Listesini Oluşturma + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Köşe durum notu:** Farklı formatlar karışık ise arama desenini `"*.*"` olarak değiştirip döngü içinde uzantıya göre filtreleyin. Bu, toplu işlemi esnek tutar. + +## Step 4 – Process Each Image and Show a Preview + +### H2: TIFF’ten Metin Çıkarma – Dosyalar Üzerinde Döngü + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Ne göreceksiniz:** Her TIFF için konsola şu şekilde bir çıktı gelir: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Bu önizleme, her dosyayı tek tek açmadan toplu işlemin başarılı olduğunu doğrular. + +## Step 5 – Save Results (Optional but Handy) + +### H3: OCR Çıktısını Metin Dosyalarına Kaydetme + +Eğer sonraki işlemler için tam metne ihtiyacınız varsa, `foreach` döngüsünün içine şunu ekleyin: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Artık her TIFF, tam OCR çıktısını içeren bir `.txt` dosyasıyla eşleşir—indeksleme, arama veya bir dil modeline besleme için mükemmel. + +## Step 6 – Run the Demo and Verify + +1. Projeyi derleyin: `dotnet build`. +2. Çalıştırın: `dotnet run --project GpuBatchDemo.csproj`. + +Konsolda önizleme satırlarını görmeli ve (isteğe bağlı adımı eklediyseniz) kaynak görüntülerinizin yanına bir dizi `.txt` dosyası oluşmuş olmalı. + +### H3: Yaygın Tuzaklar & Çözüm Önerileri + +| Belirti | Muhtemel Neden | Çözüm | +|---------|----------------|------| +| **Boş `ocrResult.Text`** | Görüntü çok karanlık veya düşük DPI | Görüntüleri ön‑işleme (kontrast artırma, ölçekleme) yapın veya `ocrEngine.Settings.PreprocessImage = true` ayarlayın. | +| **GPU hatası “CUDA driver version is insufficient”** | Sürücü eski | GPU sürücüsünü güncelleyin veya `UseGpu = false` yaparak CPU’ya zorlayın. | +| **“File not found” istisnası** | Linux/macOS’da yanlış yol ayırıcı | `Path.Combine` kullanın veya ileri eğik çizgi (`/`) tercih edin. | + +## Step 7 – Scaling Up (Beyond a Few Files) + +Birkaç TIFF’ten binlercesine geçerken şunları düşünün: + +* **Paralel işleme:** `foreach` yerine `Parallel.ForEach` kullanın (motor örneğinin çoklu iş parçacığına güvenli olduğundan emin olun; aksi takdirde her iş parçacığı için ayrı bir örnek oluşturun). +* **Parçalı I/O:** RAM’i tükenmemesi için görüntüleri toplu olarak okuyun. +* **Loglama:** İlerlemeyi bir log dosyasına yazın; çökme sonrası yeniden başlatmayı kolaylaştırır. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Unutmayın:** GPU belleği paylaşımlıdır, bu yüzden çok fazla paralel GPU işi başlatmak aslında performansı düşürebilir. Önce birkaç iş parçacığıyla test edin. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Bu programı çalıştırdığınızda **görüntülerden metin tanıyacak**, **TIFF’ten metin çıkaracak** ve **toplu OCR**’ı verimli bir şekilde nasıl yapacağınızı gösterecek. + +--- + +## Conclusion + +Artık C#’ta Aspose’un OCR motorunu kullanarak **toplu OCR** yapmanın baştan sona bir örneğine sahipsiniz. Öğreticide proje kurulumundan GPU hızlandırmasını ayarlamaya, dosya listesi oluşturmaya, her görüntüyü işlemeye ve sonuçları saklamaya kadar her adım ele alındı. TIFF dosyalarından ya da başka bir görüntü formatından metin çıkarıyor olsanız da aynı desen geçerli—sadece dosya uzantılarını değiştirin. + +Bir sonraki adıma hazır mısınız? OCR çıktısını bir arama indeksine entegre edin, metni büyük bir dil modeline besleyin veya paralel işleme deneyerek büyük toplu işlemlerde dakikalar kazanın. Gökyüzü sınır, ve üzerine inşa edeceğiniz sağlam bir temeliniz var. + +Sorularınız mı var ya da kendi toplu‑OCR ipuçlarınızı paylaşmak mı istiyorsunuz? Aşağıya bir yorum bırakın—mutlu kodlamalar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/turkish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..58e6e107 --- /dev/null +++ b/ocr/turkish/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,259 @@ +--- +category: general +date: 2026-01-01 +description: Görüntü OCR'sini ön işleme alarak doğruluğu artırın. Metin görüntüsünü + nasıl tanıyacağınızı, OCR doğruluğunu nasıl iyileştireceğinizi, görüntüyü OCR ile + yükleyip OCR metnini Aspose OCR kullanarak nasıl görüntüleyeceğinizi öğrenin. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: tr +og_description: Görüntü OCR'sini ön işleme alarak doğruluğu artırın. Bu kılavuz, metin + görüntüsünü tanıma, görüntüyü OCR ile yükleme, filtre uygulama ve OCR metnini gösterme + konularını anlatır. +og_title: C#'da Görüntü OCR Ön İşleme – Aspose OCR ile Doğruluğu Artırın +tags: +- Aspose OCR +- C# +- Image preprocessing +title: C#'ta görüntü OCR ön işleme – Aspose OCR ile Doğruluğu Artırın +url: /tr/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Görüntü OCR Ön İşleme – Aspose OCR ile Doğruluğu Artırın + +Ever wondered how to **preprocess image ocr** so the engine actually reads what’s on the page? You’re not alone—most developers hit a wall when a noisy, skewed scan refuses to cooperate. The good news is that a few smart preprocessing steps can turn a disaster‑zone image into clean, readable text. + +In this tutorial we’ll walk through a complete, ready‑to‑run example that **recognize text image** files, **improve OCR accuracy**, and finally **display OCR text** on the console. By the end you’ll know how to **load image OCR** assets, attach filters like skew correction and denoising, and get reliable results—all with Aspose.OCR for .NET. + +## Öğrenecekleriniz + +- How to create an `OcrEngine` instance and configure preprocessing filters. +- Why skew correction and denoise filters matter for **improve OCR accuracy**. +- The exact code to **load image ocr** files and run recognition. +- How to **display OCR text** in a user‑friendly way. +- Tips, pitfalls, and optional tweaks you can apply in real‑world projects. + +### Önkoşullar + +- .NET 6+ (or .NET Framework 4.7+) installed on your machine. +- A license for Aspose.OCR (the free trial works for this demo). +- Basic C# knowledge—no advanced tricks required. + +If any of those sound unfamiliar, just pause and install the missing pieces; the rest of the guide assumes they’re in place. + +--- + +## preprocess image ocr – Filtreleri Ayarlama + +The first thing you need to understand is **why preprocessing matters**. OCR engines are great at reading crisp, straight‑on text, but real‑world scans often suffer from rotation, blur, or background noise. By feeding a cleaned‑up image to the engine you dramatically raise the chances of a correct transcription. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Burada ne oluyor?** +- **Step 1** creates the engine—the heart of the Aspose OCR library. +- **Step 2** attaches two filters. The `SkewCorrectionFilter` rotates the image back to horizontal, while `DenoiseFilter` smooths out pixel‑level noise. +- **Step 3** is optional but handy; you can cap the maximum angle the engine will attempt to correct, preventing over‑rotation on already‑straight pages. +- **Step 4** is where you **load image OCR** data. Replace `YOUR_DIRECTORY/skewed_noisy.jpg` with the path to your test file. +- **Step 5** actually runs the OCR and produces an `OcrResult`. +- **Step 6** **display OCR text** on the console, giving you immediate feedback. + +> **Pro tip:** If you notice the output still contains garbled characters, try increasing the `MaxAngle` or adding a `ContrastFilter` before the denoise step. + +## recognize text image – Dosyalarınızı Doğru Şekilde Yükleme + +A common stumbling block is **load image ocr** with the wrong format or DPI. Aspose.OCR supports PNG, JPEG, TIFF, BMP, and even PDF‑based images. However, the engine works best with 300 DPI or higher for printed documents. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +If you’re dealing with a multi‑page TIFF, you can loop through each frame: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Why does this matter for improve OCR accuracy?** Higher resolution preserves the shape of each character, giving the recognizer more data points to work with. Lower DPI images often lead to merged or broken glyphs, which the engine will misinterpret. + +## improve OCR accuracy – Filtre Parametrelerini Ayarlama + +The default filter settings are a good starting point, but you can squeeze extra performance out of them. + +| Filtre | Ana Özellik | Tipik Değer | Ne Zaman Ayarlanmalı | +|--------|--------------|-------------|----------------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (degrees) | Ağır derecede eğilmiş görüntüler (30°'ye kadar). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Çok gürültülü taramalar; `0.8`'e artırın. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Düşük kontrastlı ekran görüntüleri. | + +Example of customizing both: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Edge case:** If your image contains both handwritten notes and printed text, you might want to add a `BinarizationFilter` before denoising to separate foreground from background. + +## display OCR text – Çıktıyı Biçimlendirme + +Plain console output works for demos, but production code often needs cleaned‑up strings, line breaks, or even JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +If you need JSON for an API response: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Now you’ve **display OCR text** in a format that downstream services can consume. + +## Tam Çalışan Örnek – Hepsini Bir Araya Getirin + +Below is the final, self‑contained program you can copy‑paste into a new console project. It includes optional filters, a high‑resolution image load, and clean output. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Expected console output (sample):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +If you run the program with a different file, the text and confidence will change accordingly. + +## Yaygın Sorular & Cevaplar + +**Q: What if my image is already straight?** +A: The skew filter will detect a near‑zero angle and effectively become a no‑op, so you can safely keep it enabled. + +**Q: Does Aspose.OCR support languages other than English?** +A: Yes—simply set `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (or any supported language) before calling `Recognize`. + +**Q: How do I handle multi‑page PDFs?** +A: Convert each page to an image (Aspose.PDF can do that) and feed them one‑by‑one to the same `OcrEngine` instance. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/text-recognition/_index.md b/ocr/turkish/net/text-recognition/_index.md index 5ddf0e83..1e3e96e5 100644 --- a/ocr/turkish/net/text-recognition/_index.md +++ b/ocr/turkish/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Etkili görüntü metni tanıma için .NET uygulamalarınızı Aspose.OCR ile ge Aspose.OCR ile .NET'te OCR'nin potansiyelini ortaya çıkarın. PDF'lerden metni zahmetsizce çıkarın. Sorunsuz bir entegrasyon deneyimi için hemen indirin. ### [OCR Görüntü Tanıma'da Tabloyu Tanıma](./recognize-table/) OCR görüntü tanımada tabloları tanımaya ilişkin kapsamlı kılavuzumuzla Aspose.OCR for .NET'in potansiyelini ortaya çıkarın. +### [c# OCR eğitimi: Aspose OCR ile Görüntüden Metin Çıkarma](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Aspose OCR kullanarak C# ile bir görüntüden metin nasıl çıkarılır, adım adım öğrenin. +### [c# OCR eğitimi – Görüntülerden Metin Çıkarma ve JSON Olarak Dışa Aktarma](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Aspose OCR ile C# kullanarak görüntülerden metin çıkarın ve sonuçları JSON formatında dışa aktarın. Adım adım kılavuz. +### [C# ile Görüntüyü OCR Yapma – JPG'yi ePub'a Dönüştürme](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +C# ve Aspose.OCR kullanarak JPG görüntülerini OCR ile okuyun ve ePub formatına dönüştürün. Adım adım kılavuz. +### [Aspose OCR C# ile Rusça Metin Tanıma – Tam Çok Sayfalı PDF Kılavuzu](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Aspose OCR C# kullanarak Rusça metni çok sayfalı PDF dosyalarından doğru şekilde çıkarın ve işleyin. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..e900aca0 --- /dev/null +++ b/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: c# ocr öğreticisi, görüntüden metin nasıl çıkarılacağını ve Aspose OCR + kullanarak JPG dosyalarında OCR nasıl yapılacağını gösterir. OCR için görüntüyü + nasıl yükleyeceğinizi öğrenin ve doğru sonuçlar elde edin. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: tr +og_description: c# ocr öğreticisi, görüntüden metin çıkarmayı, JPG üzerinde OCR yapmayı + ve Aspose kullanarak OCR için görüntü yüklemeyi adım adım gösterir. +og_title: c# OCR öğreticisi – Aspose OCR ile Görüntüden Metin Çıkarma +tags: +- OCR +- C# +- Aspose +title: 'c# ocr öğretici: Aspose OCR ile Görüntüden Metin Çıkarma' +url: /tr/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR Eğitimi – Aspose OCR ile Görüntüden Metin Çıkarma + +Gerçekten çalışan bir **c# ocr tutorial** mı arıyorsunuz? Bu rehberde Aspose.OCR kütüphanesini kullanarak **görüntüden metin çıkarma** ve **JPG dosyalarında OCR gerçekleştirme** nasıl yapılacağını göstereceğiz. İster bir fiş tarayıcı, bir belge arşivleyici oluşturuyor olun, ister sadece resimlerden metin okumaya meraklı olun, aşağıdaki adımlar sizi sıfırdan çalışan koda dakikalar içinde ulaştıracak. + +İhtiyacınız olan her şeyi ele alacağız: paketi kurma, OCR için bir görüntü yükleme, dil kaynaklarını yapılandırma, tanıma motorunu çalıştırma ve en yaygın sorunları ele alma. Sonunda tanınan metni konsola yazdıran, dış hizmetlere ihtiyaç duymayan bağımsız bir konsol uygulamanız olacak. + +## Gereksinimler + +- .NET 6.0 veya daha yenisi (kod .NET Framework 4.6+ ile de çalışır) +- Visual Studio 2022, VS Code veya tercih ettiğiniz herhangi bir C# editörü +- Rusça (Kiril) metin içeren bir görüntü dosyası, ör. `receipt_ru.jpg` +- İlk çalıştırma için internet bağlantısı (Aspose dil kaynaklarını otomatik olarak indirir) + +Eğer bunlara zaten sahipseniz, harika—hadi başlayalım. + +## Adım 1: Aspose.OCR'yi Kurun ve Yeni Bir Proje Oluşturun + +İlk olarak, projenize Aspose.OCR NuGet paketini ekleyin. Çözüm klasörünüzde bir terminal açın ve şu komutu çalıştırın: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro ipucu:** En son stabil sürümü kilitlemek için `--version` bayrağını kullanın, ör. `Aspose.OCR 23.9.0`. + +Sonra basit bir konsol projesi oluşturun (eğer zaten bir projeniz varsa bunu atlayabilirsiniz): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Artık tam örnek kodu daha sonra yapıştırabileceğiniz temiz bir başlangıç noktanız var. + +## Adım 2: OCR İçin Görüntüyü Yükleyin + +Görüntüyü yüklemek, herhangi bir **c# ocr tutorial**'da ilk işlevsel adımdır. Aspose.OCR bir dosya yolu, bir akış veya hatta bir `Bitmap` kabul eder. Örneğimizde basit tutacağız ve disktan yükleyeceğiz: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Neden önemli:** Görüntüyü açıkça yükleyerek, motorun net bir hedefe sahip olmasını sağlarsınız, bu da doğruluğu artırır—özellikle çok sayfalı PDF'ler veya karışık formatlı girdilerle çalışırken. + +## Adım 3: Dil ve Otomatik İndirme Kaynaklarını Yapılandırın + +Aspose.OCR, talep üzerine indirilebilen dil paketleriyle birlikte gelir. Otomatik indirmeyi etkinleştirmek, motorun kodu ilk çalıştırdığınızda Rusça dil verilerini almasını sağlar. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Açıklama:** +> • `AutoDownloadResources = true` `.dat` dosyalarını manuel olarak indirme adımını ortadan kaldırır. +> • `Language` ayarı, motorun hangi karakter setini bekleyeceğini belirler, tanıma hızını ve doğruluğunu büyük ölçüde artırır. + +## Adım 4: OCR'yi Çalıştırın ve Tanınan Metni Alın + +Şimdi asıl iş burada gerçekleşir. `Recognize` metodu görüntüyü işler ve çıkarılan dizeyi içeren bir `OcrResult` nesnesi döndürür. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Programı çalıştırdığınızda aşağıdaki gibi bir şey görmelisiniz: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **Beklenen:** Tam çıktı, kaynak görüntünün kalitesine bağlıdır, ancak Aspose'un sinir ağı tabanlı motoru genellikle temiz fişleri ve basılı formları yüksek doğrulukla işler. + +## Tam Çalışan Örnek + +Aşağıda tüm adımları birleştiren **tam, çalıştırılabilir kod** bulunmaktadır. `Program.cs` dosyasına kopyalayıp yapıştırın, `YOUR_DIRECTORY` kısmını gerçek klasör yolu ile değiştirin ve `dotnet run` komutunu çalıştırın. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **İpucu:** JPG dışındaki (PNG, BMP, TIFF) **görüntüden metin çıkarma** dosyalarına ihtiyacınız varsa, sadece dosya uzantısını değiştirin—Aspose hepsini destekler. + +## Adım 5: Yaygın Tuzaklar ve Pro İpuçları + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **Bozuk karakterler** | Düşük çözünürlüklü görüntü veya yüksek sıkıştırma | Daha yüksek kaliteli bir kaynak kullanın veya `Bitmap` ile ön işleme yapın (ör. kontrastı artırın) | +| **Dil tanınmıyor** | Dil paketi indirilmedi | `AutoDownloadResources` değerinin `true` olduğundan ve makinenin ilk çalıştırmada internet erişimine sahip olduğundan emin olun | +| **Null `ocrResult.Text`** | Görüntü yolu yanlış veya dosya eksik | Yolu doğrulayın, yüklemeden önce `File.Exists` kullanın | +| **Performans gecikmesi** | Büyük bir görüntü topluluğu ardışık olarak işleniyor | Birden fazla çağrıda tek bir `OcrEngine` örneğini yeniden kullanın | + +### Bonus: Döngüde Birden Fazla Dosya Okuma + +Bir klasördeki **JPG dosyalarında OCR gerçekleştirmek** istiyorsanız, mantığı bir `foreach` içinde sarın: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Bu desen, fiş işleme hatları için güzel bir ölçeklenebilirlik sağlar. + +## Sonuç + +Az önce **c# ocr tutorial**'ı tamamladınız; bu, Aspose.OCR kullanarak **görüntüden metin çıkarma**, **JPG üzerinde OCR gerçekleştirme** ve **OCR için görüntü yükleme** nasıl yapılacağını gösteriyor. Örnek program, NuGet paketini kurmaktan tanınan Kiril metnini konsola yazdırmaya kadar tüm akışı gösteriyor—böylece hemen herhangi bir .NET projesine kopyalayabilirsiniz. + +Bir sonraki adıma hazır mısınız? İngilizce fişleri tanımak için `OcrLanguage.Russian` yerine `OcrLanguage.English` kullanmayı deneyin veya doğruluğu ince ayarlamak için `OcrEngine.Settings` seçenekleriyle (ör. `PageSegmentationMode`, `ImagePreprocessing`) oynayın. Çıktıyı bir veritabanına entegre edebilir, PDF oluşturabilir veya bir çeviri API'sine besleyebilirsiniz. + +Herhangi bir sorunla karşılaşırsanız, Aspose.OCR belgelerine bakın veya aşağıya yorum bırakın. Kodlamanız keyifli olsun ve OCR sonuçlarınız her zaman kristal gibi net olsun! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..177fc19c --- /dev/null +++ b/ocr/turkish/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: c# OCR öğreticisi, metin çıkarma, OCR için görüntü yükleme ve Aspose.OCR + kullanarak JSON dosyasına yazma işlemlerini gösterir – adım adım rehber. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: tr +og_description: c# OCR öğreticisi, görüntülerden metin çıkarmayı, OCR için görüntü + yüklemeyi ve Aspose.OCR kullanarak JSON'u dosyaya yazmayı adım adım gösterir. +og_title: c# OCR öğretici – Metni Çıkar ve JSON'a Aktar +tags: +- Aspose.OCR +- C# +- Text Extraction +title: c# OCR öğretici – Görüntülerden Metin Çıkar ve JSON'a Aktar +url: /tr/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# c# OCR öğretici – Görüntülerden Metin Çıkar ve JSON Olarak Dışa Aktar + +Hiç taranmış bir faturadan özel ayrıştırıcılar yazarak saatler harcamadan metin çıkarmanın nasıl yapılacağını merak ettiniz mi? Yalnız değilsiniz. Bu **c# OCR tutorial** içinde bir görüntüyü OCR için nasıl yükleyeceğinizi, tanıma motorunu çalıştıracağınızı ve ardından **write JSON to file** yaparak verileri sonraki sistemlere nasıl besleyeceğinizi tam olarak göstereceğiz. + +Bir klasörde `receipt1.png`, `receipt2.png` gibi adlandırılmış makbuzlarınız olduğunu ve bunları hızlı bir şekilde aranabilir JSON kayıtlarına dönüştürmek istediğinizi hayal edin. Çözmek üzere olduğumuz problem bu ve sonunda bunu yapan hazır‑çalıştır konsol uygulamasına sahip olacaksınız. Aspose.OCR dışındaki ekstra bağımlılık yok, sihir yok—sadece net, tekrarlanabilir adımlar. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Önkoşullar + +- .NET 6 SDK veya daha yeni bir sürüm (kod .NET Core üzerinde de çalışır). +- Visual Studio 2022 veya tercih ettiğiniz herhangi bir editör. +- Aspose.OCR NuGet paketi (`Install-Package Aspose.OCR`). +- İşlemek istediğiniz bir görüntü dosyası (PNG, JPG, BMP) – demo için `invoice.png` kullanacağız. + +Eğer bunlardan herhangi birine sahip değilseniz, Microsoft sitesinden SDK’yı indirin ve Package Manager Console üzerinden NuGet paketini ekleyin: + +```powershell +Install-Package Aspose.OCR +``` + +Şimdi temel hazırlıklar tamam, gerçek uygulamaya dalalım. + +## Step 1: c# OCR tutorial – OCR Motorunu Başlatma + +**load image for OCR** yapabilmeden önce tanıma sürecini yönetecek bir motor örneğine ihtiyacımız var. `OcrEngine` sınıfı hafiftir, ancak kaynakların hızlıca serbest bırakılması için bir `using` bloğu içinde sarmalamak iyi bir uygulamadır. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Bir toplu işlemde çok sayıda görüntü işleyecekseniz, her seferinde yeni bir `OcrEngine` oluşturmak yerine aynı örneği yeniden kullanın. Bellek kullanımını azaltır ve işlemi hızlandırır. + +## Step 2: Load image for OCR + +Şimdi gerçekten **load image for OCR** yapıyoruz. Aspose.OCR çeşitli formatları destekler; bir PNG, JPEG ya da çok sayfalı TIFF bile gösterebilirsiniz. `OcrImage.FromFile` metodu dosyayı okur ve tanıma için hazır hâle getirir. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Görüntüyü ayrı ayrı yüklemek, boyutlarını, DPI’sını ya da ön‑işleme (ör. ikilileştirme) yapmanızı sağlar; motorun önüne göndermeden önce kontrol edebilirsiniz. Görüntü bozuksa, `FromFile` net bir istisna fırlatır, bunu yakalayıp kaydedebilirsiniz. + +## Step 3: How to extract text – Tanıma İşlemini Çalıştırma + +Görüntü elimizde olduğuna göre, nihayet **how to extract text** yapabiliriz. `Recognize` metodu, yalnızca düz metni değil, aynı zamanda konumsal veri ve her kelime için güven skorlarını içeren bir `OcrResult` nesnesi döndürür. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Bazı PDF’ler görünmez metin katmanları içerir. PDF sayfasını görüntü olarak beslerseniz motor hiçbir şey görmeyebilir. Bu durumlarda önce Aspose.PDF ile gizli katmanı çıkarın, ardından gerektiğinde OCR’a geçin. + +## Step 4: OCR image to JSON – Sonucu Dönüştürme + +`OcrResult` sınıfı, tüm sonuç kümesini—her kelimenin sınırlama kutusu ve güven skorları dahil—JSON dizesine serileştiren kullanışlı bir `ToJson()` yardımcı metoduna sahiptir. Kendi serileştiricinizi yazmadan **OCR image to JSON** elde etmenin en temiz yoludur. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Özel bir şema tercih ederseniz, `ocrResult.Words` üzerinde döngü kurarak kendi nesnenizi oluşturabilirsiniz; ancak çoğu senaryoda yerleşik JSON yeterli ve zaten iyi yapılandırılmıştır. + +## Step 5: Write JSON to file + +Şimdi bulmacanın son parçası: JSON yükünü kalıcı hâle getirmek. `File.WriteAllText` metodu dosyanın atomik olarak oluşturulmasını (veya üzerine yazılmasını) sağlar. Hedef klasörün var olduğundan emin olun, aksi takdirde `DirectoryNotFoundException` alırsınız. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* UTF‑8 BOM ile ya da farklı bir kodlama gerekiyorsa, `Encoding` argümanını kabul eden aşırı yüklemeyi kullanın. + +## Step 6: Verify the output + +Kısa bir `Console.WriteLine` işlemin başarıyla tamamlandığını gösterir. Ayrıca JSON dosyasını bir görüntüleyicide açarak yapıyı doğrulayabilirsiniz. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Expected JSON snippet + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON, her kelimenin konumunu içerir; bu, daha sonra bir UI’da metni vurgulamak istediğinizde işe yarar. + +## Full Working Example + +Aşağıda tamamen kopyala‑yapıştır‑hazır program yer alıyor. `YOUR_DIRECTORY` kısmını görüntünüzün bulunduğu gerçek yol ile değiştirin. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Programı çalıştırın (`dotnet run` proje klasöründen) ve `invoice.json` dosyasını orijinal PNG’nizin yanında bulacaksınız. + +## Common Pitfalls & How to Avoid Them + +| Sorun | Neden Oluşur | Çözüm | +|-------|----------------|-----| +| **FileNotFoundException** görüntü yüklenirken | Yol hatası ya da dosya eksik | `Path.Combine` kullanın ve `FromFile` çağırmadan önce `File.Exists` kontrol edin. | +| **Low confidence scores** | Düşük görüntü kalitesi, düşük DPI | `ocrImage.AdjustContrast` ile ön‑işleme yapın ya da görüntüyü 300 DPI’ye yükseltin. | +| **JSON file empty** | `ocrResult` null döndürdü (motor başarısız) | Görüntü formatının desteklendiğini ve lisansın (varsa) doğru uygulandığını doğrulayın. | +| **Performance bottleneck on large batches** | Her yinelemede `OcrEngine` yeniden oluşturulması | Toplu işlemde tek bir `OcrEngine` örneğini yeniden kullanın, sadece sonunda serbest bırakın. | + +## Next Steps + +Şimdi **c# OCR tutorial**’ı ustalaştığınıza göre, şunları yapmak isteyebilirsiniz: + +- **Batch process** tüm klasörü işleyip JSON dosyalarını tek bir veritabanına toplayabilirsiniz. +- **Integrate** çıktıyı Azure Cognitive Search ile birleştirerek aranabilir PDF'ler elde edebilirsiniz. +- **Add language support** `ocrEngine.Language = OcrLanguage.Spanish` (veya desteklenen herhangi bir dil) ayarlayarak ekleyebilirsiniz. +- **Post‑process** JSON'ı düzenli ifadelerle tablo veya anahtar‑değer çiftlerini çıkarmak için işleyebilirsiniz. + +Bu uzantıların her biri, OCR için görüntü yükleme, metin çıkarma, JSON’a dönüştürme ve JSON’ı diske yazma temel kavramları üzerine inşa edilmiştir. + +--- + +### Conclusion + +Bu **c# OCR tutorial**’da **load image for OCR**, **how to extract text** adımlarını, sonucu **OCR image to JSON** yüküne dönüştürmeyi ve sonunda **write JSON to file** işlemini ayrıntılı olarak ele aldık. Tam kod örneği herhangi bir .NET projesine eklenmeye hazır ve açıklamalar, çözümü gerçek dünya senaryolarına uyarlamanız için gereken bağlamı sağlıyor. + +Kendi makbuz veya fatura setinizle deneyin—görüntü ön‑işlemeyi ayarlayın, farklı dillerle denemeler yapın ve JSON çıktısının büyümesini izleyin. Bir sorunla karşılaşırsanız, sorunlar tablosuna göz atın ya da aşağıya yorum bırakın. Kodlamanın tadını çıkarın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/turkish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..4473d99a --- /dev/null +++ b/ocr/turkish/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-01-01 +description: C#'ta görüntüyü OCR ile nasıl okuyacağınızı ve Aspose OCR kullanarak + JPG'yi ePub'a nasıl dönüştüreceğinizi öğrenin. Bu adım adım rehber, ayrıca görüntüden + metin nasıl çıkarılacağını da gösterir. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: tr +og_description: C#'ta görüntüyü OCR nasıl yapılır? Görüntüden metin çıkarmak ve JPG'yi + Aspose OCR ile ePub'a dönüştürmek için bu kılavuzu izleyin. +og_title: C#'ta Görüntüyü OCR Nasıl Yapılır – JPG'yi ePub'a Dönüştür +tags: +- Aspose OCR +- C# +- ePub conversion +title: C#'ta Görüntüyü OCR Nasıl Yapılır – JPG'yi ePub'a Dönüştür +url: /tr/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Görüntüyü OCR ile Okuma – JPG'yi ePub'a Dönüştürme + +Bir C# konsol uygulamasından **görüntüyü OCR ile okuma** işlemini doğrudan yapmayı hiç merak ettiniz mi? Tek başınıza değilsiniz. Birçok geliştirici, bir fotoğraftan metin çıkarmak ve ardından bu metni okunabilir bir ePub kitabına paketlemek zorunda kaldığında bir çıkmaza giriyor. + +Bu öğreticide, **görüntüden metin çıkarma**, sonucu ePub olarak kaydetme ve **JPG'yi ePub'a dönüştürme** işlemini IDE'nizden çıkmadan nasıl yapacağınızı adım adım göstereceğiz. Gereksiz ayrıntı yok, sadece bugün kopyalayıp çalıştırabileceğiniz kod. + +## Öğrenecekleriniz + +- .NET projesinde Aspose OCR motorunu nasıl kuracağınız. +- `OcrSaveFormat.Epub` seçeneğini kullanarak **görüntüyü epub'a dönüştürme** adımları. +- Desteklenmeyen görüntü formatları veya eksik fontlar gibi yaygın sorunları nasıl yöneteceğiniz. +- Şu anda derleyip çalıştırabileceğiniz tam bir C# programı. + +**Önkoşullar**: .NET 6 SDK (veya daha yeni bir .NET sürümü), geçerli bir Aspose.OCR NuGet paketi ve işlemek istediğiniz bir görüntü dosyası (`input.jpg`). NuGet ile hiç çalışmadıysanız, Paket Yöneticisi Konsolu'nu açıp `Install-Package Aspose.OCR` komutunu çalıştırmanız yeterli. + +Hazır mısınız? Hadi başlayalım. + +## Adım 1 – Görüntüyü OCR ile Okuma ve Kaynağı Yükleme + +İlk olarak bir OCR motoru örneği ve bir kaynak görüntüye ihtiyacınız var. Aspose OCR bu süreci basitleştirir: bir `OcrEngine` oluşturur, ardından diskteki bir `OcrImage` ile beslersiniz. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Neden Önemli** – Motoru sadece bir kez başlatmak bellek kullanımını düşük tutar ve görüntüyü erken yüklemek, ağır OCR işlemine başlamadan önce dosya yolunu doğrulamanızı sağlar. + +## Adım 2 – OCR Çalıştırma ve Görüntüden Metin Çıkarma + +Görüntü bellekte olduğuna göre, motoru karakterleri tanıması için çağırın. `Recognize` metodu, düz metin, güven skorları ve hatta düzen bilgilerini içeren bir `OcrResult` nesnesi döndürür. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Profesyonel İpucu** – Sadece metne ihtiyacınız varsa ve ePub istemiyorsanız, burada durabilirsiniz. `ocrResult.Text` özelliği, başka bir sisteme aktarabileceğiniz temiz bir dizedir. + +## Adım 3 – Sonucu ePub Kitap Olarak Kaydetme (JPG'yi ePub'a Dönüştürme) + +Aspose OCR, OCR sonucunu doğrudan çeşitli formatlarda serileştirebilir; bunların arasında ePub da bulunur. Bu adım, **JPG'yi ePub'a dönüştürme** işlemini tek bir satırda nasıl yapacağınızı gösterir. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Programı çalıştırdığınızda, çıkarılan metin konsola yazdırılacak ve kaynak görüntünün yanına yeni bir `book_page.epub` dosyası oluşacaktır. Herhangi bir ePub okuyucusunda (Calibre, Apple Books vb.) açtığınızda OCR metninin tek sayfalık bir kitap olarak güzel bir şekilde biçimlendiğini göreceksiniz. + +### Beklenen Çıktı + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +ePub doğru şekilde açıldıysa, bir JPEG'i taşınabilir bir ePub'a dönüştüren tam bir **c# OCR örneği** tamamlamış oldunuz, tebrikler. + +## Adım 4 – Görüntüyü ePub'a Dönüştürürken Karşılaşılan Yaygın Sorunlar + +Sağlam bir kütüphane kullansanız bile birkaç engelle karşılaşabilirsiniz. İşte hızlı bir SSS: + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|-------| +| **Desteklenmeyen görüntü formatı** | Aspose OCR raster formatları (JPG, PNG, BMP) bekler. | Görüntüyü önce `System.Drawing.Image` gibi bir yöntemle JPG veya PNG'ye dönüştürün. | +| **Boş çıktı** | Düşük görüntü kalitesi veya aşırı sıkıştırma. | DPI'yi artırın, daha net bir tarama kullanın veya görüntü ön işleme (`ocrEngine.Preprocess`) uygulayın. | +| **ePub içinde eksik fontlar** | Varsayılan ePub yazıcısı, gömülü olmayabilecek sistem fontlarını kullanır. | `ocrEngine.Config.FontsDirectory` özelliğini gerekli .ttf dosyalarının bulunduğu bir klasöre ayarlayın. | +| **Büyük ePub dosyası** | Yüksek çözünürlüklü görüntüler ayrı sayfalar olarak gömülür. | `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })` kullanın. | + +Bu sorunları erken aşamada ele almak, ileride hata takibi yapmanızı engeller. + +## Adım 5 – Örneği Genişletme (Temel Seviyenin Ötesinde) + +Artık çalışan bir **görüntüyü ePub'a dönüştürme** hattınız olduğuna göre, başka neler yapabileceğinizi merak edebilirsiniz. Yarın deneyebileceğiniz birkaç fikir: + +1. **Toplu işleme** – Bir klasördeki JPG'leri döngüyle işleyin, her görüntü için bir ePub oluşturun veya hepsini çok bölümlü bir ePub'ta birleştirin. +2. **Dil seçimi** – `ocrEngine.Language = Language.English;` gibi bir satır ekleyerek desteklenen dillerden birini seçin ve doğruluğu artırın. +3. **Düzen koruma** – Önce `OcrSaveFormat.Html` kullanın, ardından HTML'i ePub içinde sararak daha zengin biçimlendirme elde edin. +4. **Bulut dağıtımı** – Kodu bir Azure Function veya AWS Lambda içinde paketleyerek OCR‑to‑ePub hizmetini web servisi olarak sunun. + +Bu genişletmeler, az önce ele aldığımız **görüntüyü OCR ile okuma** mantığını temel alır. + +## Tam Çalışan Kod (Kopyala‑Yapıştır Hazır) + +Aşağıda tüm program tek bir blokta verilmiştir. `YOUR_DIRECTORY` kısmını görüntü dosyanızın gerçek yolu ile değiştirin. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Unutmayın** – `Aspose.OCR` NuGet paketinin yüklü olması gerekir ve hedef .NET çalışma zamanı en az .NET 5 olmalıdır, böylece en iyi uyumluluk sağlanır. + +## Sonuç + +**C#'ta görüntüyü OCR ile okuma** ve bu taramaları temiz ePub kitaplara dönüştürme sürecini adım adım inceledik—temelde bir **JPG'yi ePub'a dönüştürme** iş akışı. Yukarıdaki adımları izleyerek **görüntüden metin çıkarma**, yaygın kenar durumlarını yönetme ve çözümü toplu işler veya bulut hizmetleri için genişletme yeteneğine sahip olacaksınız. + +Bir sonraki mantıklı adım olarak, ePub çıktısını PDF (`OcrSaveFormat.Pdf`) ile değiştirmeyi veya OCR metnini bir çeviri API'sine beslemeyi deneyebilirsiniz. Temelleri kavradıktan sonra sınır yoktur. + +Belirli bir görüntü formatı hakkında sorunuz mu var, yoksa çok sayfalı bir ePub örneği görmek mi istiyorsunuz? Yorum bırakın, memnuniyetle yardımcı olurum. Mutlu kodlamalar ve fotoğrafları kitaba dönüştürmenin tadını çıkarın! + +![görüntüyü OCR ile okuma örneği](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/turkish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..af49d5c0 --- /dev/null +++ b/ocr/turkish/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-01-01 +description: Aspose OCR C# kullanarak Rusça metni anında tanıyın. Çince metni tanımayı + öğrenin, PDF sayfa sayısını okuyun ve bir öğreticide PDF sayfa metnini dönüştürün. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: tr +og_description: Aspose OCR C# kullanarak Rusça metni hızlı bir şekilde tanıyın. Bu + öğreticide ayrıca Çince metni tanıma, PDF sayfa sayısını okuma ve PDF sayfa metnini + dönüştürme konuları da ele alınmaktadır. +og_title: Aspose OCR C# ile Rus metnini tanıma – Tam Rehber +tags: +- Aspose OCR +- C# +- PDF processing +title: Aspose OCR C# ile Rus metnini tanıma – Tam Çok Sayfalı PDF Rehberi +url: /tr/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR C# ile Rusça Metin Tanıma – Tam Çok‑Sayfalı PDF Öğreticisi + +Hiç **rusça metin tanıma** ihtiyacı duydunuz mu ve her sayfa için ayrı bir araç kullanmadan bunu nasıl yapabileceğinizi merak ettiniz mi? Tek başınıza değilsiniz. Gerçek dünyadaki birçok projede, İngilizce, Rusça ve hatta Çince içeren tek bir PDF alırsınız ve hâlâ tek, temiz bir metin çıktısı elde etmek istersiniz. + +Bu rehberde, **Aspose OCR C#** kullanarak **rusça metin tanıma** (ve diğer dilleri) nasıl yapılır, **pdf sayfa sayısını okuma**, **çince metin tanıma** ve **pdf sayfa metnini** kullanışlı bir konsol çıktısına dönüştürme adımlarını göstereceğiz. Harici hizmetler yok, gizli adımlar yok—kopyalayıp yapıştırıp çalıştırabileceğiniz saf C# kodu. + +> **Neler Öğreneceksiniz** +> * Çok‑sayfalı bir PDF işleyen çalıştırılabilir bir C# konsol uygulaması. +> * Sayfa‑sayfa dil seçimi (Rusça, Çince, İngilizce). +> * PDF’in sayfa sayısını sorgulama ve her sayfanın metnini çıkarma teknikleri. +> * Kendi projelerinizde uygulayabileceğiniz ipuçları, tuzaklar ve genişletmeler. + +--- + +## Gereksinimler + +- .NET 6.0 veya üzeri (kod .NET Framework 4.7+ üzerinde de çalışır). +- **Aspose.OCR for .NET** NuGet paketi yüklü (`dotnet add package Aspose.OCR`). +- Karışık diller içeren bir PDF dosyası; demo için `mixed_lang.pdf` dosyasına başvuracağız. +- C# konsol uygulamalarıyla temel aşinalık. + +Eğer bunlardan birine sahip değilseniz, en son Aspose OCR paketini NuGet üzerinden indirin ve PDF dosyanızı proje klasöründen erişilebilir bir yere koyun. + +--- + +## Adım 1 – Aspose OCR Motorunu Başlatma + +İlk olarak bir `OcrEngine` örneğine ihtiyacınız var. Bu nesne tüm ayarları (dil gibi) tutar ve ağır işi yapar. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Neden Önemli:** +> Motor yeniden kullanılabilir, böylece her sayfa için yeni bir örnek oluşturarak bellek israfı yapmayız. Tekrar kullanmak aynı zamanda dili anlık olarak değiştirmemize olanak tanır; bu da bir sayfada **rusça metin tanıma** ve başka bir sayfada **çince metin tanıma** için şarttır. + +--- + +## Adım 2 – PDF’i Yükleyin ve Sayfa Sayısını Öğrenin + +Tanıma işlemine başlamadan önce PDF nesnesine ve sayfa sayısına ihtiyacımız var. Aspose OCR her sayfayı bir `OcrImage` olarak ele alır. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **İpucu:** PDF çok büyükse, önce sayfa sayısını okuyup tüm sayfaları mı yoksa sadece bir alt kümesini mi işleyeceğinize karar verebilirsiniz. + +--- + +## Adım 3 – Her Sayfayı İstenen Dile Eşleştirin + +Aspose OCR birçok dili destekler, ancak her sayfa için hangi dili kullanacağınıza siz karar vermelisiniz. Aşağıda, anahtarın sıfır‑tabanlı sayfa indeksi olduğu bir `Dictionary` oluşturuyoruz. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Neden Kritik:** +> Bu harita olmadan OCR motoru her sayfa için tek bir varsayılan dil kullanır ve Rusça ya da Çince metinler bozuk çıkış verir. Bu adım **rusça metin tanıma** ve **çince metin tanıma**nın doğru çalışmasını doğrudan sağlar. + +--- + +## Adım 4 – Tüm Sayfalarda Döngü, Dili Ayarla ve Metni Tanı + +Şimdi her sayfayı dolaşıp haritamıza göre dili değiştiriyoruz ve `Recognize` metodunu çağırıyoruz. Sonuç `OcrResult` içinde saklanır ve buradan düz metin elde edilir. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Beklenen Konsol Çıktısı + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Akışın Açıklaması:** +> * Döngü, daha önce **pdf sayfa sayısını okuma** çıktımızı dikkate alır. +> * Her yinelemede `ocrEngine.Settings.Language` değiştirilerek sayfa 2’de doğru **rusça metin tanıma** ve sayfa 3’te **çince metin tanıma** sağlanır. +> * `Console.WriteLine` ifadeleri, **pdf sayfa metnini** insan‑okunur bir dizeye etkili bir şekilde dönüştürür. + +--- + +## Adım 5 – Çalıştır, Doğrula ve Ayarla + +1. Projeyi derleyin (`dotnet build`). +2. Çalıştırın (`dotnet run`). +3. Konsol çıktısını orijinal PDF ile karşılaştırın. + +Eksik karakterler görürseniz şu ayarları göz önünde bulundurun: + +- **OCR doğruluğunu artırmak** için `ocrEngine.Settings.DetectTextOrientation = true;` ayarını etkinleştirin. +- **Özel bir dil paketi** sağlayın; yerleşik Rusça veya Çince sözlükleri güncel olmayabilir. +- PDF’i yüklerken DPI’yi ayarlayın (`OcrImage.FromFile(path, 300)`); düşük çözünürlüklü taramalarda tanıma kalitesi artar. + +--- + +## Bonus: Kenar Durumlarını Yönetme + +### Haritada bir sayfanın dili yoksa ne olur? + +Kod zaten İngilizce’ye geri dönüyor, ancak bir uyarı loglayacak bir yedekleme ekleyebilirsiniz: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### PDF üçten fazla dil içeriyorsa? + +Kesinlikle mümkündür. `languageMap`’i ek indeksler ve desteklenen `OcrLanguage` değerleri (ör. `OcrLanguage.French`) ile genişletin. Döngü herhangi bir sayıda sayfayı sorunsuz işler. + +### Sonuçları konsol yerine bir dosyaya kaydetmek ister misiniz? + +`Console.WriteLine` çağrılarını `File.AppendAllText("output.txt", …)` ile değiştirin veya döngü sonunda bir kez yazdıracağınız bir `StringBuilder` kullanın. + +--- + +## Görsel Açıklama + +![rusça metin tanıma örneği](/images/recognize-russian-text.png "Karışık‑dilli PDF üzerinde **rusça metin tanıma** çıktısını gösteren ekran görüntüsü") + +*Yukarıdaki görsel, **rusça metin tanıma** gerçekleştirildiğinde konsol çıktısını göstermektedir.* + +--- + +## Sonuç + +Çok‑sayfalı bir PDF’den **rusça metin tanıma** (ve aynı zamanda **çince metin tanıma**) yapmanın tam, uçtan uca örneğini **Aspose OCR C#** ile inceledik. PDF’in sayfa sayısını okuyarak, her sayfayı doğru dile eşleştirerek ve belgeyi döngüyle işleyerek **pdf sayfa metnini** düz metin dizelerine dönüştürebilir, bunları depolama, indeksleme veya daha ileri analiz için kullanabilirsiniz. + +Özetle: + +- **Tek bir `OcrEngine` başlatın**. +- **PDF’i yükleyin** ve **pdf sayfa sayısını okuyun**. +- **Sayfaları dillere eşleyin** (Rusça, Çince vb.). +- **Döngü içinde** `ocrEngine.Settings.Language` ayarlayıp **her sayfayı tanıyın**. +- **Çıktıyı** ekrana yazdırın ya da kaydedin. + +Bu deseni daha büyük belgeler için uyarlayın, hata yönetimi ekleyin veya sonuçları bir arama indeksine bağlayın. Sayfa‑sayfa dil seçimi temel fikri, karışık‑dilli PDF’lerde güvenilir **rusça metin tanıma** sağlamak için aynı kalır. + +Farklı bir senaryonuz var mı, örneğin PDF yerine görüntü taramak? Aynı motor çalışır; sadece `OcrImage.FromFile` yerine `OcrImage.FromStream` ya da `FromBitmap` kullanın. İyi kodlamalar, OCR’unuz daima doğru olsun! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/ocr-configuration/_index.md b/ocr/vietnamese/net/ocr-configuration/_index.md index 4fbea5fd..19cf895a 100644 --- a/ocr/vietnamese/net/ocr-configuration/_index.md +++ b/ocr/vietnamese/net/ocr-configuration/_index.md @@ -39,9 +39,11 @@ Khai phá sức mạnh của nhận dạng hình ảnh OCR trong .NET với Aspo Mở khóa các khả năng OCR mạnh mẽ với Aspose.OCR cho .NET. Trích xuất văn bản từ hình ảnh một cách liền mạch. ### [OCRHoạt động với danh sách trong nhận dạng hình ảnh OCR](./ocr-operation-with-list/) Mở khóa tiềm năng của Aspose.OCR cho .NET. Dễ dàng thực hiện nhận dạng hình ảnh OCR bằng danh sách. Tăng năng suất và trích xuất dữ liệu trong các ứng dụng của bạn. +### [Cách áp dụng giấy phép trong Aspose OCR – Hướng dẫn C# từng bước](./how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/) +Hướng dẫn chi tiết cách cài đặt giấy phép Aspose OCR trong dự án C# của bạn. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md b/ocr/vietnamese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md new file mode 100644 index 00000000..73739fbe --- /dev/null +++ b/ocr/vietnamese/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-01-01 +description: Cách áp dụng giấy phép cho Aspose OCR trong C#. Tìm hiểu cách đọc tệp, + thiết lập giấy phép Aspose, sử dụng MemoryStream và tải giấy phép một cách hiệu + quả. +draft: false +keywords: +- how to apply license +- how to read file +- set aspose license +- how to use memorystream +- how to load license +language: vi +og_description: Cách áp dụng giấy phép cho Aspose OCR trong C#. Thực hiện theo hướng + dẫn này để đọc tệp giấy phép, thiết lập giấy phép Aspose, sử dụng MemoryStream và + xác minh cấu hình. +og_title: Cách áp dụng giấy phép trong Aspose OCR – Hướng dẫn C# đầy đủ +tags: +- Aspose +- OCR +- C# +- Licensing +title: Cách áp dụng giấy phép trong Aspose OCR – Hướng dẫn từng bước bằng C# +url: /vi/net/ocr-configuration/how-to-apply-license-in-aspose-ocr-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Áp Dụng Giấy Phép trong Aspose OCR – Hướng Dẫn Đầy Đủ C# + +Bạn đã bao giờ tự hỏi **cách áp dụng giấy phép** cho Aspose OCR mà không phải chạy theo các tài liệu mơ hồ chưa? Bạn không phải là người duy nhất. Hầu hết các nhà phát triển gặp cùng một vấn đề: họ có thể đọc file, nhưng không biết cách đưa nó vào thư viện đúng cách. Trong hướng dẫn này, chúng ta sẽ đi qua từng chi tiết — từ việc tải file `.lic` từ đĩa đến việc gọi `SetLicense` với một `MemoryStream`. Khi kết thúc, bạn sẽ có một giải pháp hoạt động mà bạn có thể đưa vào bất kỳ dự án .NET nào. + +Chúng tôi cũng sẽ đề cập đến **cách đọc file** một cách an toàn, cách **đặt giấy phép Aspose** đúng chuẩn, và lý do tại sao việc sử dụng **MemoryStream** là cách tiếp cận sạch nhất. Nếu bạn tò mò về **cách tải giấy phép** trong các môi trường khác nhau, những mẹo đó cũng được bao gồm. Không cần tham chiếu bên ngoài — chỉ cần mã sẵn sàng sao chép‑dán. + +## Yêu Cầu Trước + +- .NET 6.0 hoặc mới hơn (mã hoạt động với .NET Core và .NET Framework đều được) +- Gói NuGet Aspose.OCR đã được cài đặt (`Install-Package Aspose.OCR`) +- Một file `Aspose.OCR.lic` hợp lệ được đặt ở vị trí mà ứng dụng của bạn có thể truy cập +- Kiến thức cơ bản về C# và Visual Studio (hoặc bất kỳ IDE nào bạn ưa thích) + +> **Mẹo chuyên nghiệp:** Giữ file giấy phép ở ngoài thư mục kiểm soát nguồn của bạn để tránh việc commit nhầm. + +## Bước 1: Cách Đọc File – Tải Dữ Liệu Giấy Phép + +Điều đầu tiên chúng ta cần là mảng byte thô của file giấy phép. Sử dụng `File.ReadAllBytes` vừa đơn giản vừa hiệu quả, và nó sẽ tự động ném ra ngoại lệ rõ ràng nếu đường dẫn sai. + +```csharp +using System; +using System.IO; + +class LicenseHelper +{ + /// + /// Reads the Aspose OCR license file into a byte array. + /// + /// Full path to the .lic file. + /// Byte array containing the license data. + public static byte[] ReadLicenseFile(string licensePath) + { + if (string.IsNullOrWhiteSpace(licensePath)) + throw new ArgumentException("License path cannot be empty.", nameof(licensePath)); + + if (!File.Exists(licensePath)) + throw new FileNotFoundException("License file not found.", licensePath); + + // This line actually performs the read operation. + return File.ReadAllBytes(licensePath); + } +} +``` + +**Tại sao điều này quan trọng:** Đọc file trực tiếp vào bộ nhớ tránh rò rỉ handle file và cung cấp cho chúng ta một mảng byte sạch sẽ để sử dụng sau này. Nó cũng giúp phương thức này tái sử dụng được trong các ứng dụng console, dịch vụ web, hoặc Azure Functions. + +## Bước 2: Cách Sử Dụng MemoryStream – Chuẩn Bị Luồng Giấy Phép + +Phương thức overload `License.SetLicense` của Aspose yêu cầu một `Stream`. Đóng gói mảng byte trong một `MemoryStream` là cách idiomatic để đáp ứng yêu cầu này mà không cần truy cập lại hệ thống file. + +```csharp +using System.IO; + +public static MemoryStream CreateLicenseStream(byte[] licenseData) +{ + // MemoryStream takes ownership of the byte array without copying it. + return new MemoryStream(licenseData); +} +``` + +**Nhận xét quan trọng:** `MemoryStream` nhẹ và giải phóng nhanh. Nó cũng cho phép bạn tái sử dụng cùng một mảng byte cho nhiều thư viện nếu bạn cần áp dụng hơn một giấy phép sản phẩm Aspose. + +## Bước 3: Đặt Giấy Phép Aspose – Cốt Lõi của “cách áp dụng giấy phép” + +Bây giờ chúng ta đã có một `MemoryStream`, việc áp dụng giấy phép chỉ cần một dòng lệnh. Lớp `License` nằm trong namespace `Aspose.OCR`, vì vậy hãy chắc chắn bạn đã thêm chỉ thị `using` thích hợp. + +```csharp +using Aspose.OCR; +using System; + +public static void ApplyAsposeLicense(MemoryStream licenseStream) +{ + var license = new License(); + + // This call validates the license and activates the product. + license.SetLicense(licenseStream); +} +``` + +Nếu giấy phép không hợp lệ hoặc đã hết hạn, `SetLicense` sẽ thất bại im lặng và thư viện sẽ chạy ở chế độ dùng thử. Để chắc chắn tuyệt đối, bạn có thể kiểm tra một tính năng chỉ có trong phiên bản có giấy phép (ví dụ: cài đặt độ chính xác OCR) hoặc đơn giản dựa vào thông báo xác nhận mà chúng tôi sẽ in ra sau. + +## Bước 4: Cách Tải Giấy Phép – Kết Hợp Tất Cả + +Dưới đây là chương trình console hoàn chỉnh, có thể chạy được, minh họa **cách tải giấy phép** từ đĩa, sử dụng `MemoryStream`, và xác nhận rằng giấy phép đã được áp dụng thành công. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class LicenseDemo +{ + static void Main() + { + // 1️⃣ Read the license file into a byte array. + string licensePath = @"C:\Licenses\Aspose.OCR.lic"; // <-- adjust to your location + byte[] licenseData = LicenseHelper.ReadLicenseFile(licensePath); + + // 2️⃣ Wrap the bytes in a MemoryStream. + using (MemoryStream licenseStream = LicenseHelper.CreateLicenseStream(licenseData)) + { + // 3️⃣ Apply the license to Aspose OCR. + ApplyAsposeLicense(licenseStream); + } + + // 4️⃣ Confirm that the license is active. + Console.WriteLine("License applied successfully. You can now perform OCR operations."); + // Example OCR call (uncomment after adding an image): + // var ocrEngine = new OcrEngine(); + // var result = ocrEngine.RecognizeImage(@"sample.png"); + // Console.WriteLine($"Detected text: {result.Text}"); + } + + // Helper methods from earlier sections + public static void ApplyAsposeLicense(MemoryStream licenseStream) + { + var license = new License(); + license.SetLicense(licenseStream); + } +} +``` + +### Kết Quả Dự Kiến + +``` +License applied successfully. You can now perform OCR operations. +``` + +Nếu bạn thấy thông báo, thư viện đã được cấp giấy phép đầy đủ và sẵn sàng cho các tác vụ OCR cấp sản xuất. + +## Những Cạm Bẫy Thường Gặp & Cách Tránh + +| Vấn đề | Tại sao xảy ra | Cách khắc phục | +|-------|----------------|----------------| +| **FileNotFoundException** khi đọc giấy phép | Đường dẫn sai hoặc file không được triển khai cùng ứng dụng | Sử dụng đường dẫn tuyệt đối hoặc nhúng giấy phép làm tài nguyên (xem “tải thay thế” bên dưới) | +| **Giấy phép không được áp dụng nhưng không có lỗi** | `SetLicense` im lặng chuyển sang chế độ dùng thử nếu luồng rỗng hoặc bị hỏng | Kiểm tra `licenseData.Length > 0` trước khi tạo `MemoryStream` | +| **MemoryStream không được giải phóng** | Quên `using` khiến tài nguyên không quản lý còn tồn tại | Luôn bao `MemoryStream` trong khối `using` như ví dụ | + +### Thay Thế: Nhúng Giấy Phép như một Embedded Resource + +Nếu bạn không muốn phân phối một file `.lic` riêng biệt, hãy thêm nó vào dự án, đặt **Build Action** thành **Embedded Resource**, và đọc nó như sau: + +```csharp +using System.Reflection; + +public static byte[] ReadEmbeddedLicense(string resourceName) +{ + var assembly = Assembly.GetExecutingAssembly(); + using Stream stream = assembly.GetManifestResourceStream(resourceName); + if (stream == null) throw new InvalidOperationException("Embedded license not found."); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); +} +``` + +Sau đó gọi `ReadEmbeddedLicense("MyNamespace.Aspose.OCR.lic")` và tiếp tục với cùng cách tiếp cận `MemoryStream`. + +## Kết Luận + +Chúng tôi đã trình bày **cách áp dụng giấy phép** cho Aspose OCR từ đầu đến cuối: đọc file, tạo `MemoryStream`, gọi `SetLicense`, và xác nhận kích hoạt. Bằng cách làm theo các bước này, bạn loại bỏ việc đoán mò, tránh các lỗi phổ biến, và đảm bảo engine OCR của bạn chạy ở chế độ đầy đủ tính năng. + +Tiếp theo, bạn có thể khám phá **cách đọc file** bất đồng bộ cho các dịch vụ có lưu lượng cao, hoặc đi sâu vào các cài đặt OCR nâng cao khi giấy phép đã được tải đúng. Dù sao, quy trình vẫn giống nhau — đọc, stream, set, verify. + +Có câu hỏi về các trường hợp đặc biệt, chẳng hạn như tải giấy phép trong môi trường ASP.NET Core hoặc xử lý nhiều giấy phép sản phẩm Aspose? Hãy để lại bình luận bên dưới, và chúc bạn lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/ocr-optimization/_index.md b/ocr/vietnamese/net/ocr-optimization/_index.md index edcd6f2e..4a6a3c11 100644 --- a/ocr/vietnamese/net/ocr-optimization/_index.md +++ b/ocr/vietnamese/net/ocr-optimization/_index.md @@ -50,9 +50,13 @@ Khám phá Aspose.OCR cho .NET. Tăng độ chính xác của OCR bằng các b Nâng cao độ chính xác của OCR với Aspose.OCR cho .NET. Sửa lỗi chính tả, tùy chỉnh từ điển và nhận dạng văn bản không có lỗi một cách dễ dàng. ### [Lưu kết quả nhiều trang dưới dạng tài liệu trong nhận dạng hình ảnh OCR](./save-multipage-result-as-document/) Mở khóa tiềm năng của Aspose.OCR cho .NET. Dễ dàng lưu kết quả OCR nhiều trang dưới dạng tài liệu với hướng dẫn từng bước toàn diện này. +### [Tiền xử lý hình ảnh OCR trong C# – Tăng độ chính xác với Aspose OCR](./preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/) +Khám phá cách tiền xử lý hình ảnh trong C# để nâng cao độ chính xác OCR với Aspose OCR. +### [Cách thực hiện OCR hàng loạt bằng C# với Aspose OCR Engine](./how-to-batch-ocr-in-c-with-aspose-ocr-engine/) +Hướng dẫn thực hiện OCR hàng loạt trên nhiều hình ảnh bằng C# và Aspose OCR Engine, tăng hiệu suất và tự động hoá quy trình. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md b/ocr/vietnamese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md new file mode 100644 index 00000000..2dce70d3 --- /dev/null +++ b/ocr/vietnamese/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-01-01 +description: Cách thực hiện OCR hàng loạt bằng Aspose OCR Engine trong C#. Học cách + nhận dạng văn bản từ hình ảnh và trích xuất văn bản từ các tệp TIFF với tốc độ tăng + tốc GPU. +draft: false +keywords: +- how to batch OCR +- recognize text from images +- extract text from TIFF +language: vi +og_description: Cách thực hiện OCR hàng loạt trong C# với Aspose OCR Engine. Hướng + dẫn này chỉ cho bạn cách nhận dạng văn bản từ hình ảnh và trích xuất văn bản từ + các tệp TIFF một cách hiệu quả. +og_title: Cách thực hiện OCR hàng loạt trong C# – Hướng dẫn đầy đủ của Aspose +tags: +- OCR +- C# +- Aspose +- GPU +title: Cách thực hiện OCR hàng loạt trong C# với Aspose OCR Engine +url: /vi/net/ocr-optimization/how-to-batch-ocr-in-c-with-aspose-ocr-engine/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách thực hiện OCR hàng loạt trong C# với Aspose OCR Engine + +Bạn đã bao giờ tự hỏi **cách thực hiện OCR hàng loạt** khi có hàng chục tài liệu đã quét nằm trong một thư mục chưa? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp khó khăn khi chuyển từ nhận dạng ảnh đơn lẻ sang xử lý một bộ sưu tập đầy đủ. Tin tốt là Aspose OCR giúp việc này trở nên cực kỳ đơn giản, dù bạn chạy trên CPU hay tận dụng tăng tốc GPU. + +Trong hướng dẫn này, chúng ta sẽ đi qua một ví dụ hoàn chỉnh, có thể chạy ngay, **nhận dạng văn bản từ ảnh** và thậm chí **trích xuất văn bản từ tệp TIFF** một cách hàng loạt. Không có những “xem tài liệu” mơ hồ—chỉ có một giải pháp tự chứa mà bạn có thể sao chép‑dán và chạy ngay hôm nay. + +## Prerequisites + +Trước khi bắt đầu, hãy chắc chắn rằng bạn đã có: + +* .NET 6.0 hoặc phiên bản mới hơn được cài đặt (mã nguồn nhắm tới .NET 6, nhưng .NET 5 cũng hoạt động). +* Gói NuGet Aspose.OCR cho .NET (cả phiên bản CPU và GPU đều có sẵn; cài đặt phiên bản phù hợp với phần cứng của bạn). +* Một thư mục chứa một vài tệp TIFF hoặc PNG mẫu mà bạn muốn xử lý. +* Visual Studio 2022 hoặc bất kỳ IDE nào bạn ưa thích. + +> **Mẹo chuyên nghiệp:** Nếu bạn dự định sử dụng phiên bản GPU, hãy xác nhận rằng driver đồ họa của bạn đã được cập nhật và CUDA 11+ đã được cài đặt. Engine sẽ tự động chuyển sang CPU nếu không tìm thấy GPU tương thích. + +## Step 1 – Set Up the Project and Install Aspose.OCR + +### H2: Create a New Console App and Add Aspose.OCR + +Mở terminal (hoặc Package Manager Console trong Visual Studio) và chạy: + +```bash +dotnet new console -n GpuBatchDemo +cd GpuBatchDemo +dotnet add package Aspose.OCR --version 23.12 +``` + +Nếu bạn có giấy phép hỗ trợ GPU, hãy thêm gói GPU thay thế: + +```bash +dotnet add package Aspose.OCR.GPU --version 23.12 +``` + +Xong—dự án của bạn hiện đã tham chiếu tới thư viện OCR mà chúng ta sẽ dùng để **thực hiện OCR hàng loạt**. + +## Step 2 – Initialize the OCR Engine (CPU or GPU) + +### H2: How to Batch OCR – Engine Initialization + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class GpuBatchDemo +{ + static void Main() + { + // Create the OCR engine. It works with both CPU and GPU builds. + var ocrEngine = new OcrEngine(); + + // OPTIONAL: Force GPU usage if a compatible device is present. + // Setting this to true won’t break on CPU‑only machines—it simply tries GPU first. + ocrEngine.Settings.UseGpu = true; +``` + +**Tại sao lại quan trọng:** Bằng cách bật `UseGpu`, bạn cho phép Aspose quyết định lộ trình nhanh nhất. Nếu GPU không khả dụng, engine sẽ tự động chuyển lại CPU, vì vậy công việc batch của bạn sẽ không bị sập do thiếu phần cứng. + +## Step 3 – Gather the Files You Want to Process + +### H2: Recognize Text from Images – Building the File List + +```csharp + // Prepare a list of image files (TIFF, PNG, JPEG, etc.). + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // You could also populate the list dynamically: + // var imageFiles = Directory.GetFiles(@"C:\OCR\Input", "*.tif").ToList(); +``` + +**Lưu ý trường hợp biên:** Nếu bạn có hỗn hợp định dạng, hãy đổi mẫu tìm kiếm thành `"*.*"` và lọc theo phần mở rộng trong vòng lặp. Điều này giúp batch linh hoạt hơn. + +## Step 4 – Process Each Image and Show a Preview + +### H2: Extract Text from TIFF – Loop Through the Files + +```csharp + // Loop through each file, run OCR, and print a short preview. + foreach (var filePath in imageFiles) + { + // Load the image into Aspose's OcrImage object. + var ocrImage = OcrImage.FromFile(filePath); + + // Run recognition. + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Display the first 50 characters of the recognized text. + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + } + } +} +``` + +**Bạn sẽ thấy:** Đối với mỗi TIFF, console sẽ in ra một dòng như: + +``` +C:\OCR\Input\doc1.tif: The quick brown fox jumps over the laz... +C:\OCR\Input\doc2.tif: Invoice #12345 +Date: 2023-11-01 +Total: $1,250.00 +... +``` + +Bản preview này xác nhận batch đã thành công mà không cần mở từng tệp một cách thủ công. + +## Step 5 – Save Results (Optional but Handy) + +### H3: Persist OCR Output to Text Files + +Nếu bạn cần toàn bộ văn bản để xử lý tiếp theo, thêm đoạn sau vào trong vòng lặp `foreach`: + +```csharp + // Define an output path based on the source file name. + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); +``` + +Bây giờ mỗi TIFF sẽ có một tệp `.txt` đi kèm chứa toàn bộ kết quả OCR—hoàn hảo cho việc lập chỉ mục, tìm kiếm, hoặc đưa vào mô hình ngôn ngữ. + +## Step 6 – Run the Demo and Verify + +1. Xây dựng dự án: `dotnet build`. +2. Thực thi: `dotnet run --project GpuBatchDemo.csproj`. + +Bạn sẽ thấy các dòng preview được in ra console, và (nếu đã thêm bước tùy chọn) một loạt tệp `.txt` nằm cạnh các ảnh nguồn. + +### H3: Common Pitfalls & How to Fix Them + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| **Empty `ocrResult.Text`** | Hình ảnh quá tối hoặc DPI thấp | Tiền xử lý ảnh (tăng độ tương phản, upscale) hoặc đặt `ocrEngine.Settings.PreprocessImage = true`. | +| **GPU error “CUDA driver version is insufficient”** | Driver đã lỗi thời | Cập nhật driver GPU, hoặc đặt `UseGpu = false` để buộc dùng CPU. | +| **Exception “File not found”** | Đường dẫn sai dấu phân cách trên Linux/macOS | Sử dụng `Path.Combine` hoặc dấu gạch chéo (`/`). | + +## Step 7 – Scaling Up (Beyond a Few Files) + +Khi bạn chuyển từ vài TIFF sang hàng ngàn, hãy cân nhắc: + +* **Xử lý song song:** Bao bọc `foreach` trong `Parallel.ForEach` (đảm bảo instance engine an toàn với đa luồng; nếu không, tạo một instance cho mỗi luồng). +* **I/O chia thành khối:** Đọc ảnh theo batch để tránh tiêu thụ RAM quá mức. +* **Ghi log:** Ghi tiến độ vào file log; giúp khôi phục sau khi gặp sự cố. + +```csharp +Parallel.ForEach(imageFiles, filePath => +{ + // Same OCR logic as before, but each thread gets its own engine. + var engine = new OcrEngine { Settings = { UseGpu = true } }; + // ... rest of the code +}); +``` + +> **Nhớ:** Bộ nhớ GPU được chia sẻ, vì vậy việc tạo quá nhiều job GPU song song có thể làm chậm lại. Hãy thử với một vài luồng trước. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; +using System.IO; + +class GpuBatchDemo +{ + static void Main() + { + // Step 1 – Create OCR engine (CPU or GPU) + var ocrEngine = new OcrEngine(); + ocrEngine.Settings.UseGpu = true; // Try GPU, fallback to CPU automatically + + // Step 2 – List of TIFF files to process + var imageFiles = new List + { + @"C:\OCR\Input\doc1.tif", + @"C:\OCR\Input\doc2.tif", + @"C:\OCR\Input\doc3.tif" + }; + + // Step 3 – Process each file + foreach (var filePath in imageFiles) + { + var ocrImage = OcrImage.FromFile(filePath); + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Show a short preview + Console.WriteLine($"{filePath}: {ocrResult.Text.Substring(0, Math.Min(50, ocrResult.Text.Length))}..."); + + // Optional: Save full text to a .txt file + var outputPath = Path.ChangeExtension(filePath, ".txt"); + File.WriteAllText(outputPath, ocrResult.Text); + } + } +} +``` + +Chạy chương trình này sẽ **nhận dạng văn bản từ ảnh**, **trích xuất văn bản từ TIFF**, và minh họa **cách thực hiện OCR hàng loạt** một cách hiệu quả. + +--- + +## Conclusion + +Bạn đã có một ví dụ toàn diện, từ đầu đến cuối, về **cách thực hiện OCR hàng loạt** trong C# bằng engine OCR của Aspose. Hướng dẫn đã bao phủ mọi thứ từ thiết lập dự án, bật tăng tốc GPU, xây dựng danh sách tệp, xử lý từng ảnh, và lưu kết quả. Dù bạn đang trích xuất văn bản từ tệp TIFF hay bất kỳ định dạng ảnh nào khác, mẫu này vẫn áp dụng—chỉ cần thay đổi phần mở rộng tệp. + +Sẵn sàng cho bước tiếp theo? Hãy thử tích hợp kết quả OCR vào một chỉ mục tìm kiếm, đưa văn bản vào mô hình ngôn ngữ lớn, hoặc thử xử lý song song để giảm thời gian cho các batch khổng lồ. Bầu trời là giới hạn, và bạn đã có nền tảng vững chắc để xây dựng. + +Có câu hỏi hoặc muốn chia sẻ mẹo OCR batch của mình? Để lại bình luận bên dưới—chúc lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md b/ocr/vietnamese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md new file mode 100644 index 00000000..45633cd2 --- /dev/null +++ b/ocr/vietnamese/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-01-01 +description: Tiền xử lý OCR hình ảnh để nâng cao độ chính xác. Tìm hiểu cách nhận + dạng văn bản trong hình ảnh, cải thiện độ chính xác của OCR, tải OCR hình ảnh và + hiển thị văn bản OCR bằng Aspose OCR. +draft: false +keywords: +- preprocess image ocr +- recognize text image +- improve ocr accuracy +- display ocr text +- load image ocr +language: vi +og_description: Tiền xử lý OCR ảnh để cải thiện độ chính xác. Hướng dẫn này cho thấy + cách nhận dạng văn bản trong ảnh, tải OCR ảnh, áp dụng bộ lọc và hiển thị văn bản + OCR. +og_title: Tiền xử lý OCR hình ảnh trong C# – Tăng độ chính xác với Aspose OCR +tags: +- Aspose OCR +- C# +- Image preprocessing +title: Tiền xử lý OCR hình ảnh trong C# – Tăng độ chính xác với Aspose OCR +url: /vi/net/ocr-optimization/preprocess-image-ocr-in-c-boost-accuracy-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# preprocess image ocr in C# – Tăng Độ Chính Xác với Aspose OCR + +Bạn đã bao giờ tự hỏi làm thế nào để **preprocess image ocr** sao cho engine thực sự đọc được nội dung trên trang? Bạn không đơn độc—hầu hết các nhà phát triển gặp khó khăn khi một bản quét nhiễu, lệch không hợp tác. Tin tốt là một vài bước tiền xử lý thông minh có thể biến hình ảnh hỗn loạn thành văn bản sạch sẽ, dễ đọc. + +Trong hướng dẫn này, chúng ta sẽ đi qua một ví dụ hoàn chỉnh, sẵn sàng chạy mà **recognize text image** các tệp, **improve OCR accuracy**, và cuối cùng **display OCR text** trên console. Khi kết thúc, bạn sẽ biết cách **load image OCR** tài nguyên, gắn các bộ lọc như chỉnh sửa độ lệch và giảm nhiễu, và nhận được kết quả đáng tin cậy—tất cả với Aspose.OCR cho .NET. + +## Những Điều Bạn Sẽ Học + +- Cách tạo một thể hiện `OcrEngine` và cấu hình các bộ lọc tiền xử lý. +- Tại sao các bộ lọc chỉnh sửa độ lệch và giảm nhiễu quan trọng đối với **improve OCR accuracy**. +- Mã chính xác để **load image ocr** các tệp và chạy nhận dạng. +- Cách **display OCR text** một cách thân thiện với người dùng. +- Mẹo, cạm bẫy và các tùy chỉnh tùy chọn bạn có thể áp dụng trong các dự án thực tế. + +### Yêu Cầu Trước + +- .NET 6+ (hoặc .NET Framework 4.7+) đã được cài đặt trên máy của bạn. +- Giấy phép cho Aspose.OCR (bản dùng thử miễn phí hoạt động cho bản demo này). +- Kiến thức cơ bản về C#—không cần các thủ thuật nâng cao. + +Nếu bất kỳ mục nào trên nghe lạ, hãy tạm dừng và cài đặt các thành phần còn thiếu; phần còn lại của hướng dẫn giả định chúng đã sẵn sàng. + +--- + +## preprocess image ocr – Cài Đặt Bộ Lọc + +Điều đầu tiên bạn cần hiểu là **why preprocessing matters**. Các engine OCR rất giỏi trong việc đọc văn bản rõ ràng, thẳng hàng, nhưng các bản quét thực tế thường gặp vấn đề xoay, mờ hoặc nhiễu nền. Bằng cách cung cấp một hình ảnh đã được làm sạch cho engine, bạn tăng đáng kể khả năng chuyển đổi chính xác. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; + +class PreprocessDemo +{ + static void Main() + { + // 1️⃣ Create the OCR engine. + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Add preprocessing filters. + // • SkewCorrectionFilter: straightens tilted text. + // • DenoiseFilter: removes speckles and grain. + ocrEngine.Settings.PreprocessingFilters.Add(new SkewCorrectionFilter()); + ocrEngine.Settings.PreprocessingFilters.Add(new DenoiseFilter()); + + // 3️⃣ (Optional) Fine‑tune filter parameters. + // ((SkewCorrectionFilter)ocrEngine.Settings.PreprocessingFilters[0]).MaxAngle = 25; + + // 4️⃣ Load the image you want to run OCR on. + OcrImage inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/skewed_noisy.jpg"); + + // 5️⃣ Run the recognition. + OcrResult ocrResult = ocrEngine.Recognize(inputImage); + + // 6️⃣ Show the recognized text. + Console.WriteLine("Corrected text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Điều gì đang xảy ra ở đây?** +- **Bước 1** tạo engine—trung tâm của thư viện Aspose OCR. +- **Bước 2** gắn hai bộ lọc. `SkewCorrectionFilter` xoay hình ảnh trở lại ngang, trong khi `DenoiseFilter` làm mịn nhiễu ở mức pixel. +- **Bước 3** là tùy chọn nhưng hữu ích; bạn có thể giới hạn góc tối đa mà engine sẽ cố gắng chỉnh sửa, ngăn việc xoay quá mức trên các trang đã thẳng. +- **Bước 4** là nơi bạn **load image OCR** dữ liệu. Thay thế `YOUR_DIRECTORY/skewed_noisy.jpg` bằng đường dẫn tới tệp thử nghiệm của bạn. +- **Bước 5** thực sự chạy OCR và tạo ra một `OcrResult`. +- **Bước 6** **display OCR text** trên console, cung cấp phản hồi ngay lập tức. + +> **Mẹo chuyên nghiệp:** Nếu bạn nhận thấy đầu ra vẫn chứa các ký tự rối, hãy thử tăng `MaxAngle` hoặc thêm một `ContrastFilter` trước bước giảm nhiễu. + +--- + +## recognize text image – Tải Tệp Của Bạn Đúng Cách + +Một rào cản phổ biến là **load image ocr** với định dạng hoặc DPI sai. Aspose.OCR hỗ trợ PNG, JPEG, TIFF, BMP và thậm chí các hình ảnh dựa trên PDF. Tuy nhiên, engine hoạt động tốt nhất với 300 DPI hoặc cao hơn cho tài liệu in. + +```csharp +// Example: loading a high‑resolution PNG +string imagePath = @"C:\Images\invoice_300dpi.png"; +OcrImage highRes = OcrImage.FromFile(imagePath); +``` + +Nếu bạn đang làm việc với TIFF đa trang, bạn có thể lặp qua từng khung hình: + +```csharp +var tiff = Aspose.OCR.ImageProcessing.TiffImage.FromFile(@"multi_page.tif"); +foreach (var frame in tiff.Frames) +{ + OcrResult pageResult = ocrEngine.Recognize(frame); + Console.WriteLine(pageResult.Text); +} +``` + +**Tại sao điều này quan trọng đối với improve OCR accuracy?** Độ phân giải cao hơn giữ nguyên hình dạng của từng ký tự, cung cấp cho bộ nhận dạng nhiều điểm dữ liệu hơn. Hình ảnh DPI thấp thường dẫn đến các glyph bị gộp hoặc bị phá vỡ, khiến engine hiểu sai. + +--- + +## improve OCR accuracy – Điều Chỉnh Tham Số Bộ Lọc + +Cài đặt bộ lọc mặc định là điểm khởi đầu tốt, nhưng bạn có thể khai thác thêm hiệu suất từ chúng. + +| Filter | Key Property | Typical Value | When to Adjust | +|--------|--------------|---------------|----------------| +| `SkewCorrectionFilter` | `MaxAngle` | `15` (độ) | Hình ảnh nghiêng mạnh (lên tới 30°). | +| `DenoiseFilter` | `Strength` | `0.5` (0‑1) | Các bản quét rất nhiễu; tăng lên `0.8`. | +| `ContrastFilter` (optional) | `Level` | `1.2` | Ảnh chụp màn hình độ tương phản thấp. | + +Ví dụ tùy chỉnh cả hai: + +```csharp +var skew = new SkewCorrectionFilter { MaxAngle = 25 }; +var denoise = new DenoiseFilter { Strength = 0.8 }; +ocrEngine.Settings.PreprocessingFilters.Clear(); // start fresh +ocrEngine.Settings.PreprocessingFilters.Add(skew); +ocrEngine.Settings.PreprocessingFilters.Add(denoise); +``` + +**Trường hợp đặc biệt:** Nếu hình ảnh của bạn chứa cả ghi chú viết tay và văn bản in, bạn có thể muốn thêm một `BinarizationFilter` trước bước giảm nhiễu để tách nền trước và nền sau. + +--- + +## display OCR text – Định Dạng Kết Quả + +Đầu ra console đơn giản hoạt động cho demo, nhưng mã sản xuất thường cần các chuỗi đã được làm sạch, ngắt dòng, hoặc thậm chí JSON. + +```csharp +// Remove extra whitespace and line breaks +string cleaned = System.Text.RegularExpressions.Regex + .Replace(ocrResult.Text, @"\s+", " ") + .Trim(); + +Console.WriteLine("📝 Recognized Text:"); +Console.WriteLine(cleaned); +``` + +Nếu bạn cần JSON cho phản hồi API: + +```csharp +var payload = new { + source = imagePath, + text = cleaned, + confidence = ocrResult.Confidence // overall confidence score +}; +string json = System.Text.Json.JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine(json); +``` + +Bây giờ bạn đã **display OCR text** ở định dạng mà các dịch vụ hạ nguồn có thể tiêu thụ. + +--- + +## Ví Dụ Hoàn Chỉnh – Kết Hợp Tất Cả + +Dưới đây là chương trình cuối cùng, tự chứa mà bạn có thể sao chép‑dán vào một dự án console mới. Nó bao gồm các bộ lọc tùy chọn, tải hình ảnh độ phân giải cao, và đầu ra sạch sẽ. + +```csharp +using Aspose.OCR; +using Aspose.OCR.Filters; +using System; +using System.Text.Json; +using System.Text.RegularExpressions; + +class PreprocessDemo +{ + static void Main() + { + // ---------- 1️⃣ Initialize OCR engine ---------- + OcrEngine ocrEngine = new OcrEngine(); + + // ---------- 2️⃣ Configure preprocessing ---------- + // Skew correction (up to 25°) + strong denoise + var skew = new SkewCorrectionFilter { MaxAngle = 25 }; + var denoise = new DenoiseFilter { Strength = 0.8 }; + ocrEngine.Settings.PreprocessingFilters.Add(skew); + ocrEngine.Settings.PreprocessingFilters.Add(denoise); + + // Optional: increase contrast for low‑visibility scans + // ocrEngine.Settings.PreprocessingFilters.Add(new ContrastFilter { Level = 1.3 }); + + // ---------- 3️⃣ Load the image ---------- + string imagePath = @"YOUR_DIRECTORY/skewed_noisy.jpg"; + OcrImage inputImage = OcrImage.FromFile(imagePath); + + // ---------- 4️⃣ Run OCR ---------- + OcrResult result = ocrEngine.Recognize(inputImage); + + // ---------- 5️⃣ Clean & display ---------- + string cleaned = Regex.Replace(result.Text, @"\s+", " ").Trim(); + Console.WriteLine("✅ Corrected text:"); + Console.WriteLine(cleaned); + + // ---------- 6️⃣ JSON payload (if needed) ---------- + var payload = new { + source = imagePath, + text = cleaned, + confidence = result.Confidence + }; + string json = JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine("\n📦 JSON output:"); + Console.WriteLine(json); + } +} +``` + +**Đầu ra console dự kiến (mẫu):** + +``` +✅ Corrected text: +Invoice #12345 Date: 01/15/2026 Total: $1,250.00 + +📦 JSON output: +{ + "source": "YOUR_DIRECTORY/skewed_noisy.jpg", + "text": "Invoice #12345 Date: 01/15/2026 Total: $1,250.00", + "confidence": 0.97 +} +``` + +Nếu bạn chạy chương trình với tệp khác, văn bản và độ tin cậy sẽ thay đổi tương ứng. + +--- + +## Câu Hỏi Thường Gặp & Trả Lời + +**Hỏi: Nếu hình ảnh của tôi đã thẳng?** +**Đáp:** Bộ lọc lệch sẽ phát hiện góc gần bằng không và thực chất không làm gì, vì vậy bạn có thể giữ nó bật mà không lo. + +**Hỏi: Aspose.OCR có hỗ trợ các ngôn ngữ khác ngoài tiếng Anh không?** +**Đáp:** Có—chỉ cần đặt `ocrEngine.Settings.Language = OcrLanguage.Spanish;` (hoặc bất kỳ ngôn ngữ nào được hỗ trợ) trước khi gọi `Recognize`. + +**Hỏi: Làm sao tôi xử lý PDF đa trang?** +**Đáp:** Chuyển đổi mỗi trang thành một hình ảnh (Aspose.PDF có thể làm điều này) và đưa chúng từng cái một vào cùng một thể hiện `OcrEngine`. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/text-recognition/_index.md b/ocr/vietnamese/net/text-recognition/_index.md index 205befde..fb167a54 100644 --- a/ocr/vietnamese/net/text-recognition/_index.md +++ b/ocr/vietnamese/net/text-recognition/_index.md @@ -55,9 +55,18 @@ Nâng cao các ứng dụng .NET của bạn với Aspose.OCR để nhận dạn Khai phá tiềm năng của OCR trong .NET với Aspose.OCR. Trích xuất văn bản từ tệp PDF một cách dễ dàng. Tải xuống ngay để có trải nghiệm tích hợp liền mạch. ### [Nhận dạng bảng trong nhận dạng hình ảnh OCR](./recognize-table/) Khai phá tiềm năng của Aspose.OCR cho .NET với hướng dẫn toàn diện của chúng tôi về nhận dạng bảng trong nhận dạng hình ảnh OCR. +### [Hướng dẫn OCR C#: Trích xuất văn bản từ hình ảnh với Aspose OCR](./c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/) +Khám phá cách sử dụng Aspose OCR trong C# để trích xuất văn bản từ hình ảnh một cách nhanh chóng và chính xác. +### [Hướng dẫn OCR C#: Trích xuất văn bản từ hình ảnh và xuất ra JSON](./c-ocr-tutorial-extract-text-from-images-and-export-to-json/) +Khám phá cách trích xuất văn bản từ hình ảnh và lưu kết quả dưới dạng JSON bằng Aspose OCR trong C#. +### [Cách OCR Hình ảnh trong C# – Chuyển JPG sang ePub](./how-to-ocr-image-in-c-convert-jpg-to-epub/) +Hướng dẫn chi tiết cách sử dụng Aspose.OCR trong C# để chuyển đổi ảnh JPG thành tài liệu ePub một cách nhanh chóng. +### [Nhận dạng văn bản tiếng Nga với Aspose OCR C# – Hướng dẫn PDF đa trang đầy đủ](./recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/) +Hướng dẫn chi tiết cách sử dụng Aspose OCR trong C# để nhận dạng văn bản tiếng Nga và xuất ra PDF đa trang. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md b/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md new file mode 100644 index 00000000..d29e9bc5 --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-01-01 +description: Hướng dẫn OCR bằng C# cho thấy cách trích xuất văn bản từ hình ảnh, thực + hiện OCR trên các tệp JPG bằng Aspose OCR. Học cách tải hình ảnh để OCR và nhận + kết quả chính xác. +draft: false +keywords: +- c# ocr tutorial +- extract text from image +- perform ocr on jpg +- load image for ocr +language: vi +og_description: Hướng dẫn OCR bằng C# giúp bạn trích xuất văn bản từ hình ảnh, thực + hiện OCR trên JPG và tải hình ảnh cho OCR bằng Aspose. +og_title: c# hướng dẫn OCR – Trích xuất văn bản từ hình ảnh với Aspose OCR +tags: +- OCR +- C# +- Aspose +title: 'hướng dẫn c# OCR: Trích xuất văn bản từ hình ảnh bằng Aspose OCR' +url: /vi/net/text-recognition/c-ocr-tutorial-extract-text-from-image-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hướng dẫn OCR c# – Trích xuất văn bản từ hình ảnh với Aspose OCR + +Bạn đang tìm một **c# ocr tutorial** thực sự hoạt động? Trong hướng dẫn này chúng tôi sẽ chỉ cho bạn cách **trích xuất văn bản từ một hình ảnh** và **thực hiện OCR trên các tệp JPG** bằng thư viện Aspose.OCR. Dù bạn đang xây dựng một máy quét biên lai, một hệ thống lưu trữ tài liệu, hay chỉ tò mò về cách đọc văn bản từ ảnh, các bước dưới đây sẽ đưa bạn từ không có gì tới một đoạn mã hoạt động trong vài phút. + +Chúng tôi sẽ bao phủ mọi thứ bạn cần: cài đặt gói, tải hình ảnh cho OCR, cấu hình tài nguyên ngôn ngữ, chạy engine nhận dạng, và xử lý các lỗi thường gặp. Khi kết thúc, bạn sẽ có một ứng dụng console tự chứa, in ra văn bản đã nhận dạng lên console—không cần dịch vụ bên ngoài. + +## Những gì bạn cần + +- .NET 6.0 hoặc mới hơn (mã cũng hoạt động với .NET Framework 4.6+) +- Visual Studio 2022, VS Code, hoặc bất kỳ trình soạn thảo C# nào bạn thích +- Một tệp hình ảnh chứa văn bản tiếng Nga (Cyrillic), ví dụ `receipt_ru.jpg` +- Kết nối Internet cho lần chạy đầu tiên (Aspose sẽ tự động tải tài nguyên ngôn ngữ) + +Nếu bạn đã có những thứ này, tuyệt vời—hãy bắt đầu. + +## Bước 1: Cài đặt Aspose.OCR và Tạo dự án mới + +Đầu tiên, thêm gói NuGet Aspose.OCR vào dự án của bạn. Mở terminal trong thư mục solution và chạy: + +```bash +dotnet add package Aspose.OCR +``` + +> **Pro tip:** Sử dụng tham số `--version` để khóa vào phiên bản ổn định mới nhất, ví dụ `Aspose.OCR 23.9.0`. + +Tiếp theo, tạo một dự án console đơn giản (bỏ qua bước này nếu bạn đã có sẵn): + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +``` + +Bây giờ bạn có một môi trường trống sạch để dán đoạn mã mẫu đầy đủ sau này. + +## Bước 2: Tải hình ảnh cho OCR + +Việc tải hình ảnh là bước chức năng đầu tiên trong bất kỳ **c# ocr tutorial** nào. Aspose.OCR chấp nhận đường dẫn tệp, một stream, hoặc thậm chí một `Bitmap`. Trong ví dụ của chúng tôi, chúng tôi sẽ giữ đơn giản và tải từ đĩa: + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 2: Load the image you want to process. + // Replace the path with the actual location of your JPG file. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // The rest of the tutorial continues below... + } +} +``` + +> **Why this matters:** Bằng cách tải hình ảnh một cách rõ ràng, bạn cung cấp cho engine một mục tiêu xác định, giúp cải thiện độ chính xác—đặc biệt khi làm việc với PDF đa trang hoặc đầu vào hỗn hợp định dạng. + +## Bước 3: Cấu hình Ngôn ngữ và Tự động Tải tài nguyên + +Aspose.OCR đi kèm với các gói ngôn ngữ có thể tải theo yêu cầu. Bật tính năng tự động tải sẽ đảm bảo engine lấy dữ liệu tiếng Nga lần đầu tiên bạn chạy mã. + +```csharp + // Step 3: Create the OCR engine and configure settings. + var ocrEngine = new OcrEngine(); + + // Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Set the language to Russian (Cyrillic). You can change this to OcrLanguage.English, etc. + ocrEngine.Settings.Language = OcrLanguage.Russian; +``` + +> **Explanation:** +> • `AutoDownloadResources = true` loại bỏ bước thủ công tải các tệp `.dat`. +> • Thiết lập `Language` cho engine biết bộ ký tự nào cần mong đợi, tăng đáng kể tốc độ và độ chính xác nhận dạng. + +## Bước 4: Chạy OCR và Lấy Văn bản Đã Nhận dạng + +Bây giờ công việc nặng sẽ diễn ra. Phương thức `Recognize` xử lý hình ảnh và trả về một đối tượng `OcrResult` chứa chuỗi đã trích xuất. + +```csharp + // Step 4: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 5: Output the recognized text to the console. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); +``` + +Khi bạn thực thi chương trình, bạn sẽ thấy đầu ra tương tự như: + +``` +Recognized text: +Счет № 12345 +Дата: 01/01/2026 +Сумма: 1 250,00 ₽ +``` + +> **What to expect:** Đầu ra chính xác phụ thuộc vào chất lượng của hình ảnh nguồn, nhưng engine dựa trên mạng nơ-ron của Aspose thường xử lý tốt các biên lai sạch và các mẫu in với độ trung thực cao. + +## Ví dụ Hoạt động Đầy đủ + +Dưới đây là **mã đầy đủ, có thể chạy** kết hợp tất cả các bước. Sao chép‑dán vào `Program.cs`, thay `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế, và chạy `dotnet run`. + +```csharp +using Aspose.OCR; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create an OCR engine instance. + var ocrEngine = new OcrEngine(); + + // Step 2: Enable automatic download of language resources. + ocrEngine.Settings.AutoDownloadResources = true; + + // Step 3: Set the language to Russian (Cyrillic) for recognition. + ocrEngine.Settings.Language = OcrLanguage.Russian; + + // Step 4: Load the image containing Russian text. + var inputImage = OcrImage.FromFile(@"YOUR_DIRECTORY/receipt_ru.jpg"); + + // Step 5: Perform OCR on the loaded image. + var ocrResult = ocrEngine.Recognize(inputImage); + + // Step 6: Output the recognized text. + Console.WriteLine("Recognized text:"); + Console.WriteLine(ocrResult.Text); + } +} +``` + +> **Tip:** Nếu bạn cần **trích xuất văn bản từ hình ảnh** ở các định dạng khác ngoài JPG (PNG, BMP, TIFF), chỉ cần thay đổi phần mở rộng tệp—Aspose hỗ trợ tất cả. + +## Bước 5: Các lỗi thường gặp & Mẹo chuyên nghiệp + +| Vấn đề | Tại sao xảy ra | Cách khắc phục | +|-------|----------------|----------------| +| **Ký tự rác** | Hình ảnh độ phân giải thấp hoặc nén mạnh | Sử dụng nguồn chất lượng cao hơn, hoặc tiền xử lý bằng `Bitmap` (ví dụ: tăng độ tương phản) | +| **Ngôn ngữ không được nhận dạng** | Gói ngôn ngữ chưa được tải | Đảm bảo `AutoDownloadResources` là `true` và máy có kết nối Internet lần chạy đầu tiên | +| **`ocrResult.Text` trả về null** | Đường dẫn hình ảnh sai hoặc tệp không tồn tại | Kiểm tra lại đường dẫn, dùng `File.Exists` trước khi tải | +| **Hiệu năng chậm** | Lượng lớn ảnh được xử lý tuần tự | Tái sử dụng một thể hiện `OcrEngine` duy nhất cho nhiều lần gọi | + +### Bonus: Đọc Nhiều Tệp trong Vòng Lặp + +Nếu bạn cần **thực hiện OCR trên các tệp JPG** trong một thư mục, hãy bao bọc logic trong một `foreach`: + +```csharp +string[] files = Directory.GetFiles(@"YOUR_DIRECTORY", "*.jpg"); +foreach (var file in files) +{ + var img = OcrImage.FromFile(file); + var result = ocrEngine.Recognize(img); + Console.WriteLine($"File: {Path.GetFileName(file)}"); + Console.WriteLine(result.Text); + Console.WriteLine(new string('-', 40)); +} +``` + +Mẫu này mở rộng tốt cho các pipeline xử lý biên lai. + +## Kết luận + +Bạn vừa hoàn thành một **c# ocr tutorial** cho thấy cách **trích xuất văn bản từ hình ảnh**, **thực hiện OCR trên JPG**, và **tải hình ảnh cho OCR** bằng Aspose.OCR. Chương trình mẫu minh họa toàn bộ quy trình—từ cài đặt gói NuGet tới in ra văn bản Cyrillic đã nhận dạng—để bạn có thể sao chép vào bất kỳ dự án .NET nào ngay lập tức. + +Sẵn sàng cho bước tiếp theo? Hãy thử thay `OcrLanguage.Russian` bằng `OcrLanguage.English` để nhận dạng biên lai tiếng Anh, hoặc khám phá các tùy chọn `OcrEngine.Settings` (ví dụ: `PageSegmentationMode`, `ImagePreprocessing`) để tinh chỉnh độ chính xác. Bạn cũng có thể tích hợp kết quả vào cơ sở dữ liệu, tạo PDF, hoặc đưa vào API dịch thuật. + +Nếu gặp bất kỳ khó khăn nào, hãy kiểm tra tài liệu Aspose.OCR hoặc để lại bình luận bên dưới. Chúc lập trình vui vẻ, và hy vọng kết quả OCR của bạn luôn rõ nét! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md b/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md new file mode 100644 index 00000000..b5b25271 --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-01 +description: Hướng dẫn OCR bằng C# cho thấy cách trích xuất văn bản, tải hình ảnh + để OCR và ghi JSON vào tệp bằng Aspose.OCR – hướng dẫn từng bước. +draft: false +keywords: +- c# OCR tutorial +- how to extract text +- write json to file +- load image for OCR +- OCR image to JSON +language: vi +og_description: Hướng dẫn OCR bằng C# giúp bạn thực hiện việc trích xuất văn bản từ + hình ảnh, tải hình ảnh cho OCR và ghi JSON vào tệp bằng Aspose.OCR. +og_title: Hướng dẫn OCR bằng C# – Trích xuất văn bản và xuất ra JSON +tags: +- Aspose.OCR +- C# +- Text Extraction +title: Hướng dẫn OCR bằng C# – Trích xuất văn bản từ hình ảnh và xuất ra JSON +url: /vi/net/text-recognition/c-ocr-tutorial-extract-text-from-images-and-export-to-json/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hướng dẫn c# OCR – Trích xuất văn bản từ hình ảnh và xuất ra JSON + +Bạn có bao giờ tự hỏi làm thế nào để trích xuất văn bản từ một hóa đơn đã quét mà không phải tốn hàng giờ viết các bộ phân tích tùy chỉnh? Bạn không đơn độc. Trong **c# OCR tutorial** chúng tôi sẽ chỉ cho bạn cách tải một hình ảnh để OCR, chạy engine nhận dạng, và sau đó **write JSON to file** để bạn có thể đưa dữ liệu vào các hệ thống downstream. + +Hãy tưởng tượng bạn có một thư mục chứa các biên lai, mỗi file có tên `receipt1.png`, `receipt2.png`, và bạn cần một cách nhanh chóng để chuyển chúng thành các bản ghi JSON có thể tìm kiếm. Đó là vấn đề chúng ta sẽ giải quyết, và vào cuối bạn sẽ có một ứng dụng console sẵn sàng chạy thực hiện điều đó. Không có phụ thuộc nào ngoài Aspose.OCR, và không có phép màu—chỉ những bước rõ ràng, có thể tái tạo. + +> **What you’ll learn** +> - How to **load image for OCR** using Aspose.OCR. +> - The best way to **how to extract text** and get confidence scores. +> - Converting the OCR result into a nicely structured **OCR image to JSON** payload. +> - Safely **write JSON to file** and verify the output. + +## Yêu cầu trước + +- .NET 6 SDK hoặc phiên bản mới hơn (code cũng chạy trên .NET Core). +- Visual Studio 2022 hoặc bất kỳ trình soạn thảo nào bạn thích. +- Gói NuGet Aspose.OCR (`Install-Package Aspose.OCR`). +- Một file ảnh (PNG, JPG, BMP) bạn muốn xử lý – trong demo chúng tôi sẽ dùng `invoice.png`. + +Nếu bạn thiếu bất kỳ mục nào trong số này, hãy tải SDK từ trang của Microsoft và thêm gói NuGet qua Package Manager Console: + +```powershell +Install-Package Aspose.OCR +``` + +Bây giờ nền tảng đã sẵn sàng, hãy đi sâu vào phần thực thi thực tế. + +## Bước 1: c# OCR tutorial – Khởi tạo Engine OCR + +Trước khi chúng ta có thể **load image for OCR**, chúng ta cần một thể hiện của engine sẽ điều khiển quá trình nhận dạng. Lớp `OcrEngine` nhẹ, nhưng thực hành tốt là bọc nó trong một khối `using` để tài nguyên được giải phóng kịp thời. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Create the OCR engine – this is the heart of the c# OCR tutorial + var ocrEngine = new OcrEngine(); + + // The rest of the steps follow… +``` + +*Pro tip:* Nếu bạn dự định xử lý nhiều ảnh trong một batch, hãy tái sử dụng cùng một thể hiện `OcrEngine` thay vì tạo mới mỗi lần. Điều này giảm tải bộ nhớ và tăng tốc độ. + +## Bước 2: Tải hình ảnh cho OCR + +Bây giờ chúng ta thực sự **load image for OCR**. Aspose.OCR hỗ trợ nhiều định dạng, vì vậy bạn có thể chỉ tới một PNG, JPEG, hoặc thậm chí một TIFF đa trang. Phương thức `OcrImage.FromFile` đọc file và chuẩn bị nó cho việc nhận dạng. + +```csharp + // Step 2: Load the image you want to recognize + // Replace YOUR_DIRECTORY with the folder that holds your invoice.png + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); +``` + +> **Why this matters:** Loading the image separately lets you inspect its dimensions, DPI, or even pre‑process it (e.g., binarization) before sending it to the engine. If the image is corrupted, `FromFile` will throw a clear exception, which you can catch and log. + +## Bước 3: Cách trích xuất văn bản – Chạy nhận dạng + +Với ảnh đã sẵn sàng, chúng ta cuối cùng có thể **how to extract text** từ nó. Phương thức `Recognize` trả về một đối tượng `OcrResult` chứa không chỉ văn bản thuần mà còn dữ liệu vị trí và điểm tin cậy cho mỗi từ. + +```csharp + // Step 3: Perform OCR – this is the core of how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); +``` + +*Edge case:* Some PDFs contain invisible text layers. If you feed a PDF page rendered as an image, the engine may see nothing. In those cases, consider using Aspose.PDF to extract the hidden layer first, then fall back to OCR only when needed. + +## Bước 4: OCR image to JSON – Chuyển đổi kết quả + +Lớp `OcrResult` cung cấp một helper tiện lợi `ToJson()` giúp tuần tự hoá toàn bộ tập kết quả—bao gồm hộp bao quanh và điểm tin cậy của mỗi từ—thành một chuỗi JSON. Đây là cách sạch nhất để đạt được **OCR image to JSON** mà không cần tự viết serializer. + +```csharp + // Step 4: Convert the OCR result to JSON (includes words, confidence, locations) + string jsonResult = ocrResult.ToJson(); +``` + +Nếu bạn muốn một schema tùy chỉnh, bạn có thể lặp qua `ocrResult.Words` và xây dựng đối tượng của riêng mình, nhưng trong hầu hết các trường hợp JSON tích hợp đã đủ và đã được cấu trúc tốt. + +## Bước 5: Ghi JSON vào tệp + +Bây giờ là phần cuối cùng của câu đố: lưu trữ payload JSON. Phương thức `File.WriteAllText` đảm bảo file được tạo (hoặc ghi đè) một cách nguyên tử. Hãy chắc chắn thư mục đích tồn tại, nếu không bạn sẽ gặp `DirectoryNotFoundException`. + +```csharp + // Step 5: Save the JSON output – this demonstrates write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); +``` + +*Tip:* If you need UTF‑8 with BOM or a different encoding, use the overload that accepts an `Encoding` argument. + +## Bước 6: Xác minh đầu ra + +Một lệnh `Console.WriteLine` nhanh chóng cho chúng ta biết quá trình đã hoàn thành thành công. Bạn cũng có thể mở file JSON trong một trình xem để xác nhận cấu trúc. + +```csharp + // Step 6: Inform the user that the JSON file has been saved + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +### Đoạn JSON dự kiến + +```json +{ + "Text": "Invoice #12345\nDate: 2025-12-31\nTotal: $250.00", + "Words": [ + { "Text": "Invoice", "Confidence": 0.98, "Location": { "X": 10, "Y": 15, "Width": 80, "Height": 20 } }, + { "Text": "#12345", "Confidence": 0.96, "Location": { "X": 95, "Y": 15, "Width": 60, "Height": 20 } } + // … more words … + ] +} +``` + +JSON bao gồm vị trí của mỗi từ, rất hữu ích nếu bạn muốn sau này làm nổi bật văn bản trong giao diện người dùng. + +## Ví dụ Hoạt động Đầy đủ + +Dưới đây là chương trình hoàn chỉnh, sẵn sàng sao chép‑dán. Thay `YOUR_DIRECTORY` bằng đường dẫn thực tế nơi ảnh của bạn nằm. + +```csharp +using Aspose.OCR; +using System; +using System.IO; + +class JsonExportDemo +{ + static void Main() + { + // Step 1: Initialize the OCR engine + var ocrEngine = new OcrEngine(); + + // Step 2: Load the image you want to recognize + var imagePath = @"YOUR_DIRECTORY/invoice.png"; + var ocrImage = OcrImage.FromFile(imagePath); + + // Step 3: Perform OCR – how to extract text + var ocrResult = ocrEngine.Recognize(ocrImage); + + // Step 4: Convert the result to JSON (OCR image to JSON) + string jsonResult = ocrResult.ToJson(); + + // Step 5: Write JSON to file – write JSON to file + var jsonPath = @"YOUR_DIRECTORY/invoice.json"; + File.WriteAllText(jsonPath, jsonResult); + + // Step 6: Verify + Console.WriteLine($"JSON saved to {jsonPath}"); + } +} +``` + +Chạy chương trình (`dotnet run` từ thư mục dự án) và bạn sẽ thấy `invoice.json` bên cạnh file PNG gốc. + +## Những Cạm Bẫy Thường Gặp & Cách Tránh + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **FileNotFoundException** when loading the image | Path typo or missing file | Use `Path.Combine` and check `File.Exists` before calling `FromFile`. | +| **Low confidence scores** | Poor image quality, low DPI | Pre‑process with `ocrImage.AdjustContrast` or upscale the image to 300 DPI. | +| **JSON file empty** | `ocrResult` returned null (engine failed) | Verify that the image format is supported and that the license (if any) is correctly applied. | +| **Performance bottleneck on large batches** | Re‑creating `OcrEngine` each iteration | Reuse a single `OcrEngine` instance across the batch, disposing only at the end. | + +## Các Bước Tiếp Theo + +Bây giờ bạn đã thành thạo **c# OCR tutorial**, bạn có thể muốn: + +- **Batch process** một thư mục toàn bộ và tổng hợp các file JSON thành một cơ sở dữ liệu duy nhất. +- **Integrate** kết quả với Azure Cognitive Search để tạo PDF có thể tìm kiếm. +- **Add language support** bằng cách đặt `ocrEngine.Language = OcrLanguage.Spanish` (hoặc bất kỳ ngôn ngữ nào được hỗ trợ). +- **Post‑process** JSON để trích xuất bảng hoặc cặp khóa‑giá trị bằng các biểu thức chính quy. + +Mỗi mở rộng này dựa trên các khái niệm cốt lõi chúng ta đã đề cập: tải ảnh cho OCR, trích xuất văn bản, chuyển đổi sang JSON, và ghi JSON ra đĩa. + +--- + +### Kết luận + +Trong **c# OCR tutorial** này chúng tôi đã đi qua mọi bước cần thiết để **load image for OCR**, **how to extract text**, chuyển đổi kết quả thành payload **OCR image to JSON**, và cuối cùng **write JSON to file**. Ví dụ code đầy đủ đã sẵn sàng đưa vào bất kỳ dự án .NET nào, và các giải thích cung cấp ngữ cảnh để bạn tùy chỉnh giải pháp cho các tình huống thực tế. + +Hãy thử với bộ biên lai hoặc hóa đơn của riêng bạn—tinh chỉnh tiền xử lý ảnh, thử nghiệm các ngôn ngữ khác nhau, và quan sát JSON đầu ra phát triển. Nếu gặp khó khăn, hãy xem lại bảng cạm bẫy hoặc để lại bình luận bên dưới. Chúc lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md b/ocr/vietnamese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md new file mode 100644 index 00000000..3bda360e --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-01-01 +description: Tìm hiểu cách OCR hình ảnh trong C# và chuyển đổi JPG sang ePub bằng + Aspose OCR. Hướng dẫn từng bước này cũng chỉ cách trích xuất văn bản từ hình ảnh. +draft: false +keywords: +- how to OCR image +- convert image to epub +- extract text from image +- convert jpg to epub +- c# OCR example +language: vi +og_description: Cách OCR ảnh trong C#? Hãy làm theo hướng dẫn này để trích xuất văn + bản từ ảnh và chuyển đổi JPG sang ePub với Aspose OCR. +og_title: Cách OCR ảnh trong C# – Chuyển JPG sang ePub +tags: +- Aspose OCR +- C# +- ePub conversion +title: Cách thực hiện OCR ảnh trong C# – Chuyển JPG sang ePub +url: /vi/net/text-recognition/how-to-ocr-image-in-c-convert-jpg-to-epub/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách OCR Ảnh trong C# – Chuyển JPG sang ePub + +Bạn đã bao giờ tự hỏi **cách OCR ảnh** trực tiếp từ một ứng dụng console C# chưa? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp khó khăn khi cần trích xuất văn bản từ một bức ảnh và sau đó đóng gói văn bản đó thành một cuốn ePub có thể đọc được. + +Trong hướng dẫn này, chúng ta sẽ đi qua một ví dụ hoàn chỉnh, có thể chạy ngay, **trích xuất văn bản từ ảnh**, lưu kết quả dưới dạng ePub, và cho bạn thấy cách **chuyển JPG sang ePub** mà không rời khỏi IDE. Không có phần thừa, chỉ có mã bạn có thể sao chép‑dán và chạy ngay hôm nay. + +## Những Điều Bạn Sẽ Học + +- Cách thiết lập engine OCR của Aspose trong dự án .NET. +- Các bước chính xác để **chuyển ảnh sang epub** bằng tùy chọn `OcrSaveFormat.Epub`. +- Mẹo xử lý các vấn đề thường gặp như định dạng ảnh không được hỗ trợ hoặc thiếu phông chữ. +- Một chương trình C# đầy đủ mà bạn có thể biên dịch và thực thi ngay bây giờ. + +**Yêu cầu trước**: .NET 6 SDK (hoặc bất kỳ phiên bản .NET nào mới), gói NuGet Aspose.OCR hợp lệ, và một tệp ảnh (`input.jpg`) bạn muốn xử lý. Nếu bạn chưa từng dùng NuGet, chỉ cần mở Package Manager Console và chạy `Install-Package Aspose.OCR`. + +Sẵn sàng? Hãy bắt đầu. + +## Bước 1 – Cách OCR Ảnh và Tải Nguồn + +Điều đầu tiên bạn cần là một thể hiện của engine OCR và một ảnh nguồn. Aspose OCR làm cho việc này trở nên đơn giản: bạn tạo một `OcrEngine`, sau đó cung cấp cho nó một `OcrImage` được tải từ đĩa. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // 1️⃣ Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // 2️⃣ Load the JPEG you want to convert. + // Replace YOUR_DIRECTORY with the folder that holds input.jpg. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // The rest of the steps follow... +``` + +> **Tại sao điều này quan trọng** – Khởi tạo engine chỉ một lần giúp giảm mức sử dụng bộ nhớ, và tải ảnh sớm cho phép bạn kiểm tra đường dẫn tệp trước khi công việc OCR nặng nề bắt đầu. + +## Bước 2 – Chạy OCR và Trích Xuất Văn Bản từ Ảnh + +Bây giờ ảnh đã nằm trong bộ nhớ, hãy yêu cầu engine nhận dạng các ký tự. Phương thức `Recognize` trả về một đối tượng `OcrResult` chứa văn bản thuần, điểm tin cậy, và thậm chí thông tin bố cục. + +```csharp + // 3️⃣ Perform OCR – this may take a second for large images. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Optional: display the raw text in the console for verification. + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); +``` + +> **Mẹo chuyên nghiệp** – Nếu bạn chỉ cần văn bản và không cần ePub, bạn có thể dừng ở đây. Thuộc tính `ocrResult.Text` là một chuỗi sạch mà bạn có thể truyền vào bất kỳ hệ thống nào khác. + +## Bước 3 – Lưu Kết Quả dưới dạng Sách ePub (Chuyển JPG sang ePub) + +Aspose OCR có thể trực tiếp tuần tự hoá kết quả OCR thành nhiều định dạng, bao gồm ePub. Bước này cho thấy cách **chuyển JPG sang ePub** chỉ trong một dòng lệnh. + +```csharp + // 4️⃣ Save the OCR result as an ePub file. + // The OcrSaveFormat enum tells the library which container to use. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // 5️⃣ Let the user know we’re done. + Console.WriteLine("ePub saved."); + } +} +``` + +Khi bạn chạy chương trình, sẽ thấy văn bản đã trích xuất được in ra console, và một tệp `book_page.epub` mới xuất hiện bên cạnh ảnh nguồn của bạn. Mở nó bằng bất kỳ trình đọc ePub nào (Calibre, Apple Books, v.v.) và bạn sẽ thấy văn bản OCR được định dạng đẹp mắt như một cuốn sách một trang. + +### Kết Quả Dự Kiến + +``` +=== Extracted Text === +The quick brown fox jumps over the lazy dog. +... +ePub saved. +``` + +Nếu ePub mở đúng, chúc mừng—bạn vừa hoàn thành một **ví dụ OCR C#** đầy đủ, chuyển đổi một JPEG thành một ePub di động. + +## Bước 4 – Các Vấn Đề Thường Gặp Khi Chuyển Ảnh sang ePub + +Ngay cả khi dùng thư viện mạnh, bạn vẫn có thể gặp một vài trở ngại. Dưới đây là một FAQ nhanh: + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|-------|-------------|----------------| +| **Định dạng ảnh không được hỗ trợ** | Aspose OCR chỉ chấp nhận các định dạng raster (JPG, PNG, BMP). | Chuyển ảnh sang JPG hoặc PNG trước, ví dụ bằng `System.Drawing.Image`. | +| **Kết quả trống** | Chất lượng ảnh thấp hoặc nén mạnh. | Tăng DPI, dùng bản scan rõ hơn, hoặc áp dụng tiền xử lý ảnh (`ocrEngine.Preprocess`). | +| **Thiếu phông chữ trong ePub** | Trình ghi ePub mặc định dùng phông chữ hệ thống có thể không được nhúng. | Đặt `ocrEngine.Config.FontsDirectory` tới thư mục chứa các tệp .ttf cần thiết. | +| **Tệp ePub quá lớn** | Ảnh độ phân giải cao được nhúng dưới dạng các trang riêng. | Dùng `ocrResult.Save(..., OcrSaveFormat.Epub, new OcrSaveOptions { ImageCompression = 75 })`. | + +Giải quyết những vấn đề này sớm sẽ giúp bạn tránh phải dò lỗi sau này. + +## Bước 5 – Mở Rộng Ví Dụ (Vượt Qua Cơ Bản) + +Bây giờ bạn đã có một pipeline **chuyển ảnh sang epub** hoạt động, bạn có thể tự hỏi còn gì khác có thể làm. Dưới đây là một vài ý tưởng bạn có thể thử ngay: + +1. **Xử lý hàng loạt** – Duyệt qua một thư mục các JPG, tạo một ePub cho mỗi ảnh, hoặc gộp chúng thành một ePub đa chương. +2. **Chọn ngôn ngữ** – Đặt `ocrEngine.Language = Language.English;` hoặc bất kỳ ngôn ngữ nào được hỗ trợ để cải thiện độ chính xác. +3. **Bảo toàn bố cục** – Đầu tiên sử dụng `OcrSaveFormat.Html`, sau đó gói HTML vào ePub để có định dạng phong phú hơn. +4. **Triển khai trên đám mây** – Đóng gói mã trong Azure Function hoặc AWS Lambda để cung cấp dịch vụ OCR‑to‑ePub dưới dạng web service. + +Mỗi mở rộng này đều dựa trên logic **cách OCR ảnh** mà chúng ta vừa trình bày. + +## Mã Hoàn Chỉnh (Sẵn Sàng Sao Chép‑Dán) + +Dưới đây là toàn bộ chương trình trong một khối. Thay `YOUR_DIRECTORY` bằng đường dẫn thực tế tới tệp ảnh của bạn. + +```csharp +using Aspose.OCR; +using System; + +class EpubExportDemo +{ + static void Main() + { + // Initialize the OCR engine. + var ocrEngine = new OcrEngine(); + + // Load the JPEG you want to convert. + var sourceImage = OcrImage.FromFile(@"YOUR_DIRECTORY/input.jpg"); + + // Perform OCR – extracts text and layout. + var ocrResult = ocrEngine.Recognize(sourceImage); + + // Show the extracted text (optional but handy for debugging). + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + + // Save the result as an ePub book. + ocrResult.Save(@"YOUR_DIRECTORY/book_page.epub", OcrSaveFormat.Epub); + + // Notify the user. + Console.WriteLine("ePub saved."); + } +} +``` + +> **Nhớ** – Gói NuGet `Aspose.OCR` phải được cài đặt, và môi trường .NET mục tiêu nên ít nhất là .NET 5 để đạt khả năng tương thích tốt nhất. + +## Kết Luận + +Chúng ta vừa tìm hiểu **cách OCR ảnh** trong C# và biến những bản quét đó thành các cuốn ePub sạch sẽ—thực chất là một workflow **chuyển JPG sang ePub** mà bạn có thể đưa vào bất kỳ dự án nào. Bằng cách làm theo các bước trên, bạn sẽ có thể **trích xuất văn bản từ ảnh**, xử lý các trường hợp đặc biệt, và mở rộng giải pháp thành công việc batch hoặc dịch vụ đám mây. + +Nếu muốn bước tiếp, hãy thử thay đổi đầu ra ePub thành PDF (`OcrSaveFormat.Pdf`) hoặc đưa văn bản OCR vào một API dịch thuật. Khi đã nắm vững nền tảng, khả năng của bạn là vô hạn. + +Có câu hỏi về định dạng ảnh cụ thể, hoặc muốn xem ví dụ ePub đa trang? Hãy để lại bình luận, mình sẽ sẵn sàng hỗ trợ. Chúc bạn lập trình vui vẻ và tận hưởng việc biến hình ảnh thành sách! + +![how to OCR image example](/images/ocr-image-to-epub.png) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md b/ocr/vietnamese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md new file mode 100644 index 00000000..bfad5375 --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-01-01 +description: Nhận dạng văn bản tiếng Nga ngay lập tức bằng Aspose OCR C#. Học cách + nhận dạng văn bản tiếng Trung, đọc số trang PDF và chuyển đổi văn bản trang PDF + trong một hướng dẫn duy nhất. +draft: false +keywords: +- recognize russian text +- aspose ocr c# +- recognize chinese text +- read pdf page count +- convert pdf page text +language: vi +og_description: Nhận dạng nhanh văn bản tiếng Nga bằng Aspose OCR C#. Hướng dẫn này + cũng bao gồm cách nhận dạng văn bản tiếng Trung, đọc số trang PDF và chuyển đổi + văn bản trang PDF. +og_title: Nhận dạng văn bản tiếng Nga bằng Aspose OCR C# – Hướng dẫn đầy đủ +tags: +- Aspose OCR +- C# +- PDF processing +title: Nhận dạng văn bản tiếng Nga bằng Aspose OCR C# – Hướng dẫn PDF đa trang đầy + đủ +url: /vi/net/text-recognition/recognize-russian-text-with-aspose-ocr-c-full-multi-page-pdf/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Nhận dạng văn bản tiếng Nga bằng Aspose OCR C# – Hướng dẫn PDF đa trang hoàn chỉnh + +Bạn đã bao giờ cần **recognize russian text** trong một tệp PDF hỗn hợp các ngôn ngữ, và tự hỏi làm sao mà không phải dùng công cụ riêng cho mỗi trang? Bạn không phải là người duy nhất. Trong nhiều dự án thực tế, bạn sẽ nhận được một tệp PDF duy nhất chứa tiếng Anh, tiếng Nga và thậm chí tiếng Trung trên các trang khác nhau, và bạn vẫn muốn có một đầu ra văn bản duy nhất, sạch sẽ. + +Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách **recognize russian text** (và các ngôn ngữ khác) bằng **Aspose OCR C#**, đồng thời minh họa cách **read pdf page count**, **recognize chinese text**, và **convert pdf page text** thành một bản dump console tiện lợi. Không có dịch vụ bên ngoài, không có bước ẩn—chỉ là mã C# thuần mà bạn có thể sao chép‑dán và chạy. + +> **Bạn sẽ nhận được gì** +> * Một ứng dụng console C# có thể chạy được, xử lý PDF đa trang. +> * Lựa chọn ngôn ngữ cho từng trang (Russian, Chinese, English). +> * Kỹ thuật truy vấn số trang của PDF và trích xuất văn bản của mỗi trang. +> * Mẹo, lưu ý và các mở rộng bạn có thể áp dụng cho dự án của mình. + +## Yêu cầu trước + +- .NET 6.0 hoặc mới hơn (mã cũng hoạt động trên .NET Framework 4.7+). +- **Aspose.OCR for .NET** NuGet package installed (`dotnet add package Aspose.OCR`). +- Một tệp PDF chứa các ngôn ngữ hỗn hợp; trong bản demo chúng tôi sẽ tham chiếu tới `mixed_lang.pdf`. +- Kiến thức cơ bản về ứng dụng console C#. + +Nếu bạn thiếu bất kỳ mục nào trong số này, hãy tải Aspose OCR mới nhất từ NuGet và đặt PDF của bạn ở vị trí có thể truy cập được từ thư mục dự án. + +## Bước 1 – Khởi tạo Aspose OCR Engine + +Điều đầu tiên bạn cần là một thể hiện của `OcrEngine`. Đối tượng này chứa tất cả các cài đặt (như ngôn ngữ) và thực hiện phần công việc nặng. + +```csharp +using Aspose.OCR; +using System; +using System.Collections.Generic; + +class MultiPageDemo +{ + static void Main() + { + // Create the OCR engine – this is where we’ll set language per page + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Tại sao điều này quan trọng:** +> Engine có thể tái sử dụng, vì vậy chúng ta không lãng phí bộ nhớ bằng cách tạo một thể hiện mới cho mỗi trang. Việc tái sử dụng cũng cho phép chúng ta thay đổi ngôn ngữ ngay lập tức, điều này rất cần thiết để **recognize russian text** trên một trang và **recognize chinese text** trên trang khác. + +## Bước 2 – Tải PDF và xác định số trang + +Trước khi bắt đầu nhận dạng, chúng ta cần đối tượng PDF và số trang của nó. Aspose OCR xem mỗi trang như một `OcrImage`. + +```csharp + // Load the multi‑page PDF + OcrImage multiPageImage = OcrImage.FromFile(@"YOUR_DIRECTORY/mixed_lang.pdf"); + + // Print the total number of pages – this answers the “read pdf page count” question + Console.WriteLine($"PDF contains {multiPageImage.PageCount} pages."); +``` + +> **Mẹo:** Nếu PDF rất lớn, bạn có thể muốn đọc số lượng trang trước và quyết định xử lý toàn bộ các trang hay chỉ một phần. + +## Bước 3 – Ánh xạ mỗi trang tới ngôn ngữ mong muốn + +Aspose OCR hỗ trợ nhiều ngôn ngữ, nhưng bạn phải chỉ định ngôn ngữ nào sẽ dùng cho mỗi trang. Dưới đây chúng ta tạo một `Dictionary` trong đó khóa là chỉ số trang bắt đầu từ 0. + +```csharp + // Define which language each page should be read with + var languageMap = new Dictionary + { + { 0, OcrLanguage.English }, // Page 1 – English + { 1, OcrLanguage.Russian }, // Page 2 – Russian (our primary focus) + { 2, OcrLanguage.Chinese } // Page 3 – Chinese + }; +``` + +> **Tại sao bước này quan trọng:** +> Nếu không có bản đồ này, engine OCR sẽ cố gắng dùng một ngôn ngữ mặc định duy nhất cho mọi trang, dẫn đến kết quả rối tung đối với văn bản tiếng Nga hoặc tiếng Trung. Bước này cho phép **recognize russian text** và **recognize chinese text** hoạt động chính xác. + +## Bước 4 – Lặp qua tất cả các trang, đặt ngôn ngữ và nhận dạng văn bản + +Bây giờ chúng ta duyệt qua từng trang, chuyển ngôn ngữ dựa trên bản đồ, và gọi `Recognize`. Kết quả được lưu trong `OcrResult`, từ đó chúng ta trích xuất văn bản thuần. + +```csharp + // Process each page one by one + for (int pageIndex = 0; pageIndex < multiPageImage.PageCount; pageIndex++) + { + // Choose language – default to English if we haven’t specified one + ocrEngine.Settings.Language = languageMap.ContainsKey(pageIndex) + ? languageMap[pageIndex] + : OcrLanguage.English; + + // Perform OCR on the current page + var pageResult = ocrEngine.Recognize(multiPageImage.GetPage(pageIndex)); + + // Output the recognized text – this is the “convert pdf page text” step + Console.WriteLine($"--- Page {pageIndex + 1} ({ocrEngine.Settings.Language}) ---"); + Console.WriteLine(pageResult.Text); + Console.WriteLine(); // Blank line for readability + } + } +} +``` + +### Kết quả Console dự kiến + +``` +PDF contains 3 pages. +--- Page 1 (English) --- +This is an English paragraph on the first page. + +--- Page 2 (Russian) --- +Это русский текст на второй странице. + +--- Page 3 (Chinese) --- +这是第三页的中文文本。 +``` + +> **Giải thích luồng:** +> * Vòng lặp tuân theo **read pdf page count** mà chúng ta đã in ra trước đó. +> * Bằng cách thay đổi `ocrEngine.Settings.Language` ở mỗi vòng lặp, chúng ta đảm bảo **recognize russian text** chính xác trên trang 2 và **recognize chinese text** trên trang 3. +> * Các câu lệnh `Console.WriteLine` thực sự **convert pdf page text** thành một chuỗi có thể đọc được bởi con người. + +## Bước 5 – Chạy, Kiểm tra và Điều chỉnh + +1. Xây dựng dự án (`dotnet build`). +2. Chạy nó (`dotnet run`). +3. So sánh đầu ra console với PDF gốc. + +Nếu bạn nhận thấy thiếu ký tự, hãy cân nhắc: + +- **Tăng độ chính xác OCR** bằng cách đặt `ocrEngine.Settings.DetectTextOrientation = true;`. +- **Cung cấp gói ngôn ngữ tùy chỉnh** nếu các từ điển tiếng Nga hoặc tiếng Trung tích hợp đã lỗi thời. +- **Điều chỉnh DPI** khi tải PDF (`OcrImage.FromFile(path, 300)`), có thể cải thiện nhận dạng trên các bản scan độ phân giải thấp. + +## Bonus: Xử lý các trường hợp đặc biệt + +### Nếu ngôn ngữ của một trang không có trong bản đồ? + +Mã hiện đã tự động quay lại tiếng Anh, nhưng bạn cũng có thể thêm một fallback để ghi log cảnh báo: + +```csharp +if (!languageMap.TryGetValue(pageIndex, out var lang)) +{ + Console.WriteLine($"Warning: No language defined for page {pageIndex + 1}. Using English."); + lang = OcrLanguage.English; +} +ocrEngine.Settings.Language = lang; +``` + +### Chúng ta có thể xử lý PDF với hơn ba ngôn ngữ không? + +Chắc chắn. Mở rộng `languageMap` với các chỉ số và giá trị `OcrLanguage` bổ sung (ví dụ, `OcrLanguage.French`). Vòng lặp sẽ xử lý bất kỳ số lượng trang nào. + +### Làm sao để xuất kết quả ra file thay vì console? + +Thay thế các lời gọi `Console.WriteLine` bằng `File.AppendAllText("output.txt", …)` hoặc sử dụng một `StringBuilder` để ghi toàn bộ sau khi vòng lặp kết thúc. + +## Minh hoạ hình ảnh + +![ví dụ recognize russian text](/images/recognize-russian-text.png "Ảnh chụp màn hình hiển thị kết quả OCR cho văn bản tiếng Nga") + +*Hình ảnh trên minh họa đầu ra console khi **recognize russian text** được thực hiện trên một PDF đa ngôn ngữ.* + +## Kết luận + +Chúng tôi đã trình bày một ví dụ hoàn chỉnh, từ đầu đến cuối, cho thấy cách **recognize russian text** (và đồng thời **recognize chinese text**) từ một PDF đa trang bằng **Aspose OCR C#**. Bằng cách đọc số trang của PDF, ánh xạ mỗi trang tới ngôn ngữ phù hợp, và lặp qua tài liệu, bạn có thể **convert pdf page text** thành các chuỗi thuần sẵn sàng lưu trữ, lập chỉ mục hoặc phân tích sâu hơn. + +Tóm lại: + +- **Khởi tạo** một `OcrEngine` duy nhất. +- **Tải** PDF và **read pdf page count**. +- **Ánh xạ** các trang tới ngôn ngữ (Russian, Chinese, v.v.). +- **Lặp**, đặt `ocrEngine.Settings.Language`, và **recognize** từng trang. +- **Xuất** hoặc lưu trữ văn bản đã trích xuất. + +Hãy tự do điều chỉnh mẫu này cho các tài liệu lớn hơn, thêm xử lý lỗi, hoặc tích hợp kết quả vào một chỉ mục tìm kiếm. Ý tưởng cốt lõi—lựa chọn ngôn ngữ theo từng trang—vẫn giữ nguyên, và đó là yếu tố khiến **recognize russian text** đáng tin cậy trong các PDF đa ngôn ngữ. + +Có trường hợp khác, chẳng hạn quét ảnh thay vì PDF? Engine vẫn hoạt động; chỉ cần thay `OcrImage.FromFile` bằng `OcrImage.FromStream` hoặc `FromBitmap`. Chúc bạn lập trình vui vẻ và OCR luôn chính xác! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file