diff --git a/ocr/arabic/net/ocr-configuration/_index.md b/ocr/arabic/net/ocr-configuration/_index.md index 64743e9bd..d3bed3883 100644 --- a/ocr/arabic/net/ocr-configuration/_index.md +++ b/ocr/arabic/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ weight: 24 استفد من قدرات OCR القوية مع Aspose.OCR for .NET. استخراج النص من الصور بسلاسة. ### [OCROperation مع القائمة في التعرف على الصور باستخدام OCR](./ocr-operation-with-list/) اكتشف إمكانات Aspose.OCR for .NET. تنفيذ التعرف على الصور باستخدام OCR مع القوائم بسهولة. عزّز الإنتاجية واستخراج البيانات في تطبيقاتك. +### [كيفية تعطيل OCR في C# – دليل Aspose OCR غير المتصل](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +تعلم كيفية إيقاف تشغيل OCR في تطبيقات C# باستخدام Aspose OCR دون اتصال بالإنترنت. ### حالات الاستخدام الشائعة - **استخراج نصوص الصور** من الفواتير الممسوحة لأتمتة المحاسبة. @@ -102,4 +104,4 @@ weight: 24 {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/arabic/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..06aa48789 --- /dev/null +++ b/ocr/arabic/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: تعلم كيفية تعطيل OCR في Aspose OCR للغة C# لتشغيله دون اتصال، واستخراج + النص من الصورة بدون إنترنت، وتحميل الصورة بشكل صحيح للـ OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: ar +og_description: كيفية تعطيل OCR في Aspose OCR للغة C# وتشغيله دون اتصال، استخراج النص + من الصورة دون الحاجة إلى الإنترنت، وتحميل الصورة للـ OCR بسهولة. +og_title: كيفية تعطيل OCR في C# – دليل Aspose OCR غير المتصل +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: كيفية تعطيل OCR في C# – دليل Aspose OCR غير المتصل +url: /ar/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تعطيل OCR في C# – دليل Aspose OCR غير المتصل + +هل تساءلت يومًا **كيف يمكنك تعطيل OCR** عندما تحتاج إلى حل غير متصل تمامًا؟ ربما تقوم ببناء تطبيق سطح مكتب آمن لا يمكنه الاعتماد على اتصال شبكة، أو ربما تريد فقط تجنب التحميلات غير المتوقعة. على أي حال، الخبر السار هو أن Aspose OCR يتيح لك إيقاف جلب الموارد تلقائيًا، وتوجيهه إلى مجلد محلي، والحفاظ على كل شيء داخل المؤسسة. في هذا الدرس ستتعرف أيضًا على **استخراج النص من ملفات الصورة** و**تحميل الصورة لـ OCR** بشكل صحيح دون أي مشاكل. + +سنستعرض مثالًا كاملًا جاهزًا للتنفيذ يوضح كل خطوة — من تهيئة المحرك إلى طباعة النص الياباني المُعترف به. لا وثائق خارجية، لا سحر مخفي؛ مجرد كود C# بسيط يمكنك إدراجه في مشروعك اليوم. بحلول النهاية ستفهم لماذا يُعد تعطيل ميزة التحميل التلقائي مهمًا، وكيفية تعيين مسار الموارد، وما هي الأخطاء الشائعة التي يجب الانتباه إليها. + +## المتطلبات المسبقة + +- .NET 6.0 (أو أي نسخة حديثة من .NET) مثبتة على جهازك. +- حزمة NuGet `Aspose.OCR` للـ .NET (`Install-Package Aspose.OCR`). +- مجلد يحتوي بالفعل على موارد اللغة التي تحتاجها (مثل نموذج اللغة اليابانية). +- ملف صورة (`japan_doc.png`) تريد تشغيل OCR عليه. + +إذا كنت تفتقد حزم اللغات، قم بتحميلها مرة واحدة من بوابة Aspose، فك ضغطها في مجلد مثل `AsposeOCRResources`، وستكون جاهزًا. لن يحدث أي تحميل إضافي بمجرد تعطيل ميزة التحميل التلقائي. + +![كيفية تعطيل OCR غير المتصل](/images/how-to-disable-ocr.png "رسم توضيحي لكيفية تعطيل OCR") + +## الخطوة 1 – إنشاء مثيل محرك OCR + +أول ما تقوم به هو إنشاء كائن `OcrEngine`. فكر في هذا الكائن كالعقل الذي سيقرأ صورتك. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **لماذا هذا مهم:** بدون محرك لا يمكنك ضبط أي إعدادات. الكائن يحمل جميع الإعدادات، بما في ذلك العلامة الحاسمة التي تخبر المكتبة ما إذا كان بإمكانها الوصول إلى الإنترنت. + +## الخطوة 2 – تعطيل تحميل الموارد تلقائيًا + +بشكل افتراضي، يحاول Aspose OCR جلب ملفات اللغة المفقودة عند الحاجة. لجعل كل شيء غير متصل، قم بتعيين المفتاح `AutoDownloadResources` إلى `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **نصيحة احترافية:** إيقاف هذا ليس فقط يضمن الخصوصية بل يسرّع أول عملية التعرف لأن المحرك لن يضيع الوقت في التحقق من وجود تحديثات. + +## الخطوة 3 – تحديد مسار مجلد الموارد المحلي + +الآن أخبر المحرك أين توجد حزم اللغة التي قمت بتحميلها مسبقًا. هذا هو المسار الذي أعددته في المتطلبات المسبقة. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **ما الذي قد يحدث خطأً؟** إذا كان المسار غير صحيح أو ملف اللغة المطلوب غير موجود، سيُطلق المحرك استثناء `ResourceNotFoundException`. تأكد من تهجئة المجلد بشكل صحيح وأن نموذج اللغة اليابانية (`jpn.traineddata`) موجود. + +## الخطوة 4 – اختيار نموذج اللغة المحلي + +اختر اللغة التي لديك فعليًا على القرص. في مثالنا نستخدم اليابانية، لكن يمكنك استبدال `Language.Japanese` بأي لغة أخرى قمت بتحميلها. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **حالة حافة:** بعض اللغات تحتاج إلى قواميس إضافية (مثل الصينية). تأكد من أن تلك الملفات المساعدة موجودة أيضًا في نفس مجلد الموارد. + +## الخطوة 5 – تحميل الصورة لـ OCR + +هنا نـ **نحمّل الصورة لـ OCR**. طريقة `ImageStream.FromFile` تقرأ الملف إلى تدفق يمكن لـ Aspose معالجته. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **نصيحة:** الصيغ المدعومة تشمل PNG، JPEG، BMP، وTIFF. إذا كنت بحاجة إلى معالجة ملفات PDF، حوّل كل صفحة إلى صورة أولًا. + +## الخطوة 6 – تشغيل عملية التعرف + +الآن يقوم المحرك فعليًا بقراءة البكسلات ومحاولة تحويلها إلى نص. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **لماذا قد تكون هذه الخطوة بطيئة:** OCR يستهلك الكثير من وحدة المعالجة المركزية، خاصةً مع الصور عالية الدقة. إذا كانت الأداء مشكلة، فكر في تقليل حجم الصورة قبل التعرف. + +## الخطوة 7 – إخراج النص المستخرج + +أخيرًا، نـ **نستخرج النص من الصورة** ونطبعه على وحدة التحكم. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +تشغيل البرنامج يجب أن يعرض الأحرف اليابانية الموجودة في `japan_doc.png`. إذا تم إعداد كل شيء بشكل صحيح، سترى كتلة نظيفة من النص Unicode على وحدة التحكم الخاصة بك. + +### النتيجة المتوقعة + +``` +これはサンプルの日本語テキストです。 +``` + +(ستعتمد النتيجة الفعلية على محتوى الصورة.) + +## الأخطاء الشائعة وكيفية تجنبها + +| المشكلة | لماذا يحدث | الحل | +|--------|------------|------| +| **ملف اللغة مفقود** | `AutoDownloadResources` مُعطَّل، لذا لا يستطيع المحرك جلبه. | تحقق من أن `ResourcesPath` يشير إلى المجلد الذي يحتوي على `jpn.traineddata`. | +| **مسار الصورة غير صحيح** | `ImageStream.FromFile` يُطلق استثناء `FileNotFoundException`. | استخدم مسارات مطلقة أو تأكد من ضبط دليل العمل بشكل صحيح. | +| **صيغة صورة غير مدعومة** | Aspose يقرأ صيغًا محددة فقط. | حوّل صورتك إلى PNG أو JPEG قبل استدعاء `FromFile`. | +| **نفاد الذاكرة مع الصور الكبيرة** | OCR يحمل الصورة بالكامل في الذاكرة. | قلل حجم الصورة أو قسمها إلى قطع، أو زد حد الذاكرة للعملية. | + +## توسيع المثال + +- **المعالجة الدفعية:** كرّر عبر مجلد من الصور، استدعِ نفس كود التعرف، واكتب كل نتيجة إلى ملف `.txt` منفصل. +- **لغات مختلفة:** استبدل `Language.Japanese` بـ `Language.English` (أو أي لغة أخرى) بعد وضع ملفات الموارد المقابلة. +- **معالجة مسبقة مخصصة:** استخدم Aspose.Imaging لتصحيح الانحراف أو تحسين التباين قبل OCR للحصول على دقة أفضل. + +## الخلاصة + +أنت الآن تعرف **كيفية تعطيل OCR** في Aspose OCR للـ C# وتشغيله بالكامل دون اتصال. من خلال تعيين `AutoDownloadResources` إلى `false`، وتوجيه المحرك إلى مجلد موارد محلي، و**تحميل الصورة لـ OCR** بشكل صحيح، يمكنك **استخراج النص من الصورة** دون الحاجة إلى الإنترنت مطلقًا. هذا النهج مثالي للبيئات الآمنة، خطوط أنابيب CI، أو أي سيناريو يتطلب وصولًا محدودًا إلى الشبكة. + +هل أنت مستعد للخطوة التالية؟ جرّب معالجة مجلد كامل من ملفات PDF الممسوحة، جرب حزم لغات مختلفة، أو دمج نتيجة 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/_index.md b/ocr/arabic/net/ocr-optimization/_index.md index 1ca8c92a0..2dbb77bb3 100644 --- a/ocr/arabic/net/ocr-optimization/_index.md +++ b/ocr/arabic/net/ocr-optimization/_index.md @@ -65,15 +65,22 @@ weight: 25 ## دروس تحسين OCR ### [إجراء OCR على صورة من URL في التعرف على الصور باستخدام OCR](./perform-ocr-on-image-from-url/) استكشف تكامل OCR السلس مع Aspose.OCR for .NET. تعرف على النص من الصور بدقة. + ### [إعداد المستطيلات في التعرف على الصور باستخدام OCR](./prepare-rectangles/) افتح إمكانات Aspose.OCR for .NET من خلال دليلنا الشامل. تعلم خطوة بخطوة كيفية إعداد المستطيلات للتعرف على الصور. ارتقِ بتطبيقات .NET الخاصة بك مع تكامل OCR السلس. + ### [فلاتر ما قبل المعالجة للصور في التعرف على الصور باستخدام OCR](./preprocessing-filters-for-image/) استكشف Aspose.OCR for .NET. عزّز دقة OCR باستخدام فلاتر ما قبل المعالجة. حمّل الآن لتكامل سلس. + ### [تصحيح النتائج باستخدام التدقيق الإملائي في التعرف على الصور باستخدام OCR](./result-correction-with-spell-checking/) حسّن دقة OCR مع Aspose.OCR for .NET. صحّح الأخطاء الإملائية، خصّص القواميس، واحصل على نص خالٍ من الأخطاء بسهولة. + ### [حفظ النتيجة متعددة الصفحات كمستند في التعرف على الصور باستخدام OCR](./save-multipage-result-as-document/) افتح إمكانات Aspose.OCR for .NET. احفظ نتائج OCR متعددة الصفحات كمستندات بسهولة من خلال هذا الدليل الشامل خطوة بخطوة. +### [كيفية تحسين دقة OCR في C# باستخدام Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +تعلم تقنيات تحسين دقة OCR في C# باستخدام Aspose OCR لنتائج أكثر دقة وسرعة. + ## الأسئلة المتكررة **س: هل يمكنني استخراج النص من ملفات صور تحتوي على لغات متعددة؟** diff --git a/ocr/arabic/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/arabic/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..b6758e06f --- /dev/null +++ b/ocr/arabic/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: تعلم كيفية تحسين تقنية التعرف الضوئي على الأحرف (OCR) في C# من خلال التعرف + على النص من ملفات JPG، وتصحيح انحراف الصور، وإزالة الضوضاء باستخدام Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: ar +og_description: اكتشف كيفية تحسين OCR من خلال التعرف على النص من ملفات JPG، وتصحيح + انحراف الصور، وإزالة الضوضاء—دليل C# كامل. +og_title: كيفية تحسين دقة OCR في C# باستخدام Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: كيفية تحسين دقة OCR في C# باستخدام Aspose OCR +url: /ar/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تحسين دقة OCR في C# باستخدام Aspose OCR + +هل تساءلت يومًا **how to improve OCR** عندما تبدو مسحاتك أكثر كفن تجريدي من نص قابل للقراءة؟ لست وحدك. في العديد من المشاريع الواقعية—فكر في الفواتير، الإيصالات، أو الملاحظات المكتوبة يدويًا—غالبًا ما تكون الصور المصدرية مائلة، ذات حبيبات، أو مجرد ضوضاء صاخبة. الخبر السار؟ Aspose OCR يزودك بمجموعة من إعدادات ما قبل المعالجة التي يمكنها تحويل تلك الفوضى إلى أحرف نظيفة قابلة للقراءة آليًا. في هذا الدرس سنستعرض مثالًا كاملاً قابلًا للتنفيذ يُظهر **how to improve OCR** عبر **recognizing text from JPG**، وتصحيح ميل الصورة، وإزالة الضوضاء غير المرغوب فيها. + +> *نصيحة احترافية:* إذا تخطيت مرحلة ما قبل المعالجة، فمن المحتمل أن تحصل على مخرجات مشوشة تشبه أحجية الكلمات المتقاطعة الغامضة. دعنا نتجنب ذلك. + +![كيفية تحسين OCR مع معالجة Aspose OCR المسبقة](https://example.com/ocr-preprocess.png "كيفية تحسين OCR مع Aspose OCR") + +## ما ستتعلمه + +1. كيفية إعداد محرك Aspose OCR للحصول على أقصى دقة. +2. الكود الدقيق اللازم لـ **recognize text from JPG** الملفات. +3. لماذا يهم تمكين *AutoDeskew* و *RemoveNoise* وكيفية ضبطهما. +4. كيفية **extract text from image** الملفات دون كتابة مرشح مخصص. +5. المشكلات الشائعة (ملف مفقود، تنسيق غير مدعوم) والحلول السريعة. + +بنهاية الدرس ستحصل على تطبيق وحدة تحكم C# واحد يمكنه أخذ أي JPG، تنظيفه، وإخراج السلسلة المستخرجة—جاهزة للمعالجة اللاحقة أو التخزين. + +## المتطلبات المسبقة + +- .NET 6.0 SDK أو أحدث (المثال يستخدم عبارات المستوى الأعلى للتبسيط). +- حزمة NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- صورة JPG نموذجية (اسمها `input.jpg`) موجودة في نفس مجلد الملف التنفيذي. +- إلمام أساسي بـ C#—لا حاجة لمفاهيم متقدمة. + +إذا كان لديك مشروع بالفعل، فقط الصق الكود فيه؛ وإلا أنشئ تطبيق وحدة تحكم جديد: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +الآن دعنا نغوص في الكود. + +## كيفية تحسين OCR: نظرة عامة على إعدادات ما قبل المعالجة + +جوهر **how to improve OCR** يكمن في كائن `PreprocessSettings`. فكر فيه كمحرر صور صغير يعمل *قبل* تشغيل محرك التعرف على الأحرف الفعلي. أدناه نظرة سريعة على أكثر العلامات تأثيرًا: + +| Setting | ما يفعله | حالة الاستخدام النموذجية | +|------------------------|-----------------------------------------------------|--------------------------| +| `AutoDeskew` | يطبق خوارزمية تصحيح الميل باستخدام التعلم العميق. | صفحات ممسوحة مائلة قليلاً. | +| `AdaptiveThreshold` | يعزز التباين في الصور ذات الإضاءة المنخفضة أو الباهتة. | إيصالات قديمة بحبر باهت. | +| `RemoveNoise` | يطبق مرشح تمويه غاوسي لتقليل البقع. | صور مأخوذة بفلاش الهاتف الذكي. | +| `NoiseRemovalStrength` | يتحكم في شدة المعالجة (1 = منخفض، 3 = عال). | ضبط دقيق بناءً على مدى حبيبية المصدر. | + +تفعيل هذه الخيارات هو في الأساس “السر الخفي” لـ **how to improve OCR** على المدخلات غير المثالية. + +## التعرف على النص من JPG باستخدام Aspose OCR + +فيما يلي البرنامج الكامل القابل للتنفيذ. كل سطر مشروح حتى ترى *لماذا* وجود كل جزء، وليس فقط *ماذا* يفعل. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### النتيجة المتوقعة + +إذا كان `input.jpg` يحتوي على العبارة “Invoice #12345 – Total: $256.78”، سيطبع وحدة التحكم: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +لاحظ كيف أن المخرجات نظيفة، مع الحفاظ على الشرطة وعلامة الدولار—تمامًا ما تتوقعه عند **extracting text from image** الملفات. + +## كيفية تصحيح ميل الصورة باستخدام إعدادات ما قبل المعالجة + +لماذا يعتبر تصحيح الميل مهمًا؟ حتى ميل بمقدار درجتين يمكن أن يربك مرحلة تجزئة الأحرف، مما يؤدي إلى أخطاء في التعرف على الحروف. علامة `AutoDeskew` تشغل شبكة عصبية تلافيفية تحت الغطاء تكتشف الزاوية السائدة وتدوير الصورة إلى الوضع الأصلي. + +إذا كنت تحتاج إلى مزيد من التحكم، يمكنك ضبط الزاوية يدويًا: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **متى تستخدم تصحيح الميل اليدوي:** إذا كنت تعلم أن الكاميرا تميل الصور دائمًا بكمية ثابتة (مثلاً، ماسح مثبت)، فإن ترميز الزاوية يدويًا يوفر قليلًا من وقت المعالجة. + +## كيفية إزالة الضوضاء للحصول على استخراج أنظف + +تظهر الضوضاء على شكل بقع عشوائية أو حبيبات، خاصة في الصور ذات الإضاءة المنخفضة. علامة `RemoveNoise` تطبق مرشح ثنائي الجانب ينعّم الخلفية مع الحفاظ على الحواف (الأحرف الفعلية). خاصية `NoiseRemovalStrength` تتيح لك ضبط شدة المعالجة: + +| القوة | التأثير | +|-------|----------| +| 1 | تنعيم خفيف—مناسب للصور ذات الحبيبات الخفيفة. | +| 2 | متوازن—يعمل مع معظم لقطات الهواتف الذكية. | +| 3 | تنعيم قوي—استخدم عندما تكون الصورة شديدة الضوضاء، لكن احذر من طمس الخطوط الرفيعة. | + +إذا واجهت حالة يصبح فيها الخط الصغير غير قابل للقراءة بعد التنعيم القوي، قلل ببساطة من القوة أو عطل الفلتر تمامًا. + +## استخراج النص من الصورة: ما وراء JPG + +بينما يركز عرضنا التجريبي على JPG، يدعم Aspose OCR صيغ PNG، BMP، TIFF، وحتى صفحات PDF. لاستخراج النص من صورة (**extract text from image**) بصيغ غير JPG، فقط غير امتداد الملف في `ImageStream.FromFile`. بالنسبة لملفات TIFF متعددة الصفحات يمكنك التكرار عبر كل صفحة: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +هذا المقتطف يوضح كيف يمكنك توسيع سير عمل **how to improve OCR** نفسه لمعالجة دفعة من مجموعة كاملة من المستندات الممسوحة. + +## المشكلات الشائعة وكيفية إصلاحها + +| العَرَض | السبب المحتمل | الحل السريع | +|---------|----------------|-------------| +| مخرجات فارغة | الصورة بيضاء تمامًا بعد المعالجة (عَتَبة مفرطة) | قلل `NoiseRemovalStrength` أو اضبط `AdaptiveThreshold = false`. | +| حروف مشوشة | نموذج لغة غير صحيح (الافتراضي هو الإنجليزية) | اضبط `ocrEngine.Settings.Language = Language.English;` أو حمّل حزمة لغة مخصصة. | +| تحطم عند ملفات كبيرة | نفاد الذاكرة بسبب صورة عالية الدقة | قلل الحجم باستخدام `ocrEngine.Settings.ImageResizeFactor = 0.5;` قبل التعرف. | +| لا توجد مخرجات للمسحات المائلة | `AutoDeskew` تم تعطيله عن غير قصد | فعّل `AutoDeskew = true` أو قدّم `DeskewAngle` الصحيح. | + +مراعاة هذه النقاط سيوفر لك ساعات من تصحيح الأخطاء عندما تحاول **how to improve OCR** في خطوط الإنتاج. + +## إضافي: تعديل السرعة مقابل الدقة + +إذا كنت تعالج آلاف الإيصالات يوميًا، قد تفضّل السرعة. عطل `AdaptiveThreshold` واضبط `NoiseRemovalStrength = 1`. وعلى العكس، بالنسبة للوثائق القانونية حيث يمكن أن يكون حرف واحد مفقودًا مكلفًا، احتفظ بجميع العلامات مفعلة وفكّر في رفع `NoiseRemovalStrength` إلى 3. + +## الخلاصة + +لقد غطينا الرحلة الكاملة لـ **how to improve OCR** في C# باستخدام Aspose OCR: من إنشاء المحرك، تكوين ما قبل المعالجة (الركيزة الأساسية لـ *how to deskew image* و *how to remove noise*), تحميل JPG، التعرف على النص، ومعالجة الحالات الخاصة. الكود مستقل، يعمل مباشرةً، ويظهر الخطوات الدقيقة التي تحتاجها لـ **recognize text from jpg** و **extract text from image** الملفات. + +### ما التالي؟ + +- جرّب صيغ صور أخرى (PNG، TIFF) لترى كيف تتصرف الإعدادات نفسها. +- دمج مخرجات 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/_index.md b/ocr/arabic/net/text-recognition/_index.md index 58e5dde95..2b93ce633 100644 --- a/ocr/arabic/net/text-recognition/_index.md +++ b/ocr/arabic/net/text-recognition/_index.md @@ -50,14 +50,24 @@ url: /ar/net/text-recognition/ ### [احصل على النتيجة كـ JSON في التعرف على الصور OCR](./get-result-as-json/) أطلق العنان لقوة Aspose.OCR لـ .NET. تعلم كيفية الحصول على نتائج التعرف الضوئي على الحروف بتنسيق JSON دون عناء. قم بتعزيز التعرف على الصور باستخدام هذا الدليل المفصّل خطوة بخطوة. ### [وضع اكتشاف المناطق بتقنية التعرف الضوئي على الحروف (OCR) في التعرف على الصور بتقنية التعرف الضوئي على الحروف (OCR).](./ocr-detect-areas-mode/) -قم بتحسين تطبيقات .NET الخاصة بك باستخدام Aspose.OCR للتعرف الفعال على نص الصورة. استكشف وضع مناطق اكتشاف التعرف الضوئي على الحروف (OCR) للحصول على نتائج دقيقة. +قم بتحسين تطبيقات .NET الخاصةك... ### [التعرف على PDF في التعرف على الصور OCR](./recognize-pdf/) -أطلق العنان لإمكانات التعرف الضوئي على الحروف في .NET باستخدام Aspose.OCR. استخراج النص من ملفات PDF دون عناء. قم بالتنزيل الآن للحصول على تجربة تكامل سلسة. +أطلق العنان لإمكانات التعرف الضوئي على الحروف في .NET باستخدام Aspose.OCR. استخراج النص من ملفات PDF دون عناء. قم بتنزيل الآن للحصول على تجربة تكامل سلسة. ### [التعرف على الجدول في التعرف على الصور OCR](./recognize-table/) أطلق العنان لإمكانات Aspose.OCR لـ .NET من خلال دليلنا الشامل حول التعرف على الجداول في التعرف على الصور باستخدام OCR. +### [استخراج النص من الصورة في C# – دليل OCR كامل](./extract-text-from-image-in-c-complete-ocr-guide/) +تعلم استخراج النص من الصور باستخدام C# و Aspose.OCR في دليل شامل خطوة بخطوة. +### [استخراج النص من ملف TIFF باستخدام OCR دفعي في C# – دليل كامل](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +تعلم استخراج النص من ملفات TIFF باستخدام OCR دفعي في C# عبر دليل شامل خطوة بخطوة. +### [إنشاء PDF قابل للبحث في C# – دليل كامل](./create-searchable-pdf-in-c-complete-guide/) +تعلم كيفية إنشاء ملفات PDF قابلة للبحث باستخدام Aspose.OCR في C# خطوة بخطوة. +### [التعرف على النص من PNG في C# – دليل كامل للتعرف الضوئي على الحروف وتدقيق الإملاء](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +تعلم استخراج النص من ملفات PNG باستخدام C# و Aspose.OCR مع تدقيق إملائي شامل خطوة بخطوة. +### [تحويل الصورة إلى JSON – دليل OCR بلغة C# للإيصالات](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +تعلم كيفية تحويل الصور إلى تنسيق JSON باستخدام 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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/arabic/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..f87a15010 --- /dev/null +++ b/ocr/arabic/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: تحويل الصورة إلى JSON باستخدام Aspose OCR Cloud في C#. تعلّم كيفية التعرف + على النص، استخراج النص من الصورة، ومعالجة الفاتورة باستخدام OCR في دقائق. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: ar +og_description: تحويل الصورة إلى JSON باستخدام Aspose OCR Cloud في C#. يوضح هذا الدليل + كيفية التعرف على النص، استخراج النص من الصورة، ومعالجة الإيصال باستخدام OCR. +og_title: تحويل الصورة إلى JSON – دليل OCR بلغة C# للإيصالات +tags: +- OCR +- C# +- Aspose +- JSON +title: تحويل الصورة إلى JSON – درس OCR بلغة C# للإيصالات +url: /ar/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل الصورة إلى JSON – دليل OCR بلغة C# للإيصالات + +هل احتجت يوماً إلى **تحويل الصورة إلى JSON** لكن لم تكن متأكدًا من أين تبدأ؟ في هذا الدليل سنرشدك عبر دورة كاملة من البداية إلى النهاية لتقنية OCR بلغة C# التي تلتقط صورة لإيصال، تتعرف على النص، وتنتج حمولة JSON منظمة. + +إذا تساءلت يوماً *كيف يتم التعرف على النص* في مستند ممسوح ضوئياً، أو كنت تبحث عن طريقة سريعة لـ **استخراج النص من الصورة**، فأنت في المكان الصحيح. بنهاية هذا المقال ستتمكن من **معالجة الإيصال باستخدام OCR** وإرسال النتيجة مباشرة إلى واجهات برمجة التطبيقات (APIs) التابعة لك. + +## ما ستحتاجه + +- .NET 6 SDK أو أحدث (الكود يعمل مع .NET Core أيضًا) +- مفتاح Aspose Cloud API – يمكنك الحصول على تجربة مجانية من بوابة Aspose +- صورة إيصال نموذجية (`receipt.jpg`) مخزنة محليًا +- بيئة التطوير المفضلة لديك (Visual Studio، VS Code، Rider – أيًا كان) + +لا تحتاج إلى أي حزم NuGet إضافية بخلاف عميل `Aspose.OCR.Cloud` الرسمي. إذا كان SDK مثبتًا لديك، فأنت جاهز للانطلاق. + +## الخطوة 1 – تحويل الصورة إلى JSON: إعداد عميل OCR + +أولاً، نحتاج إلى إنشاء نسخة من `CloudOcrClient`. هذا الكائن يتولى جميع عمليات التواصل مع خدمة OCR الخاصة بـ Aspose وسيعيد النتيجة بصيغة JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**لماذا هذا مهم:** تهيئة العميل هو الجسر بين كود C# الخاص بك ومحرك OCR السحابي. طريقة `RecognizeAsync` تقوم بالعمل الشاق – ترفع الصورة، تشغل محرك OCR، وتعيد سلسلة JSON تحتوي على النص المعترف به، درجات الثقة، وإحداثيات الصناديق المحيطة. + +> **نصيحة احترافية:** احفظ مفتاح API في متغير بيئي أو مدير أسرار بدلاً من تضمينه مباشرة في الكود. بهذه الطريقة تتجنب تسريبات غير مقصودة. + +## الخطوة 2 – كيفية التعرف على النص من الإيصال + +الآن بعد أن أصبح العميل جاهزًا، دعنا نستعرض *كيفية* التعرف على النص. يدعم Aspose OCR العديد من اللغات، لكن بالنسبة لمعظم الإيصالات اللغة الإنجليزية تكفي. إذا احتجت لغة أخرى، استبدل `Language.English` بالقيمة المناسبة من الـ enum. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**ما الذي يحدث خلف الكواليس؟** الخدمة تشغل نموذج تعلم عميق يكتشف الأحرف، يجمعها إلى كلمات، ثم يكوّن سطورًا. الـ JSON المرتجع يبدو تقريبًا هكذا: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +يمكنك تحليل هذا الـ JSON باستخدام `System.Text.Json` أو `Newtonsoft.Json` لاستخراج الحقول التي تهمك. + +## الخطوة 3 – استخراج النص من الصورة وبناء JSON يدويًا (اختياري) + +أحيانًا لا تريد الـ JSON الخام الذي تقدمه Aspose؛ ربما تحتاج هيكلًا مخصصًا لخدمتك اللاحقة. المثال التالي يوضح كيفية تحويل الاستجابة إلى كائن أنظف. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**لماذا نعيد الصياغة؟** العديد من الـ APIs تتوقع مخططًا محددًا (مثال: `{ "total": "12.34", "date": "2026-04-10" }`). باستخلاص الحقول المطلوبة فقط، تحافظ على خفة الحمولة وتجنب تسريب بيانات OCR غير ضرورية. + +## الخطوة 4 – اختبار دليل OCR بلغة C# باستخدام إيصال نموذجي + +شغّل البرنامج من الطرفية: + +```bash +dotnet run +``` + +ستظهر لك كتلتان من المخرجات: + +1. الـ JSON الخام الذي أرجعته Aspose (نتيجة **تحويل الصورة إلى JSON** مباشرة من السحابة). +2. الـ JSON المخصص الذي بنيته في الخطوة السابقة. + +المخرجات النموذجية تكون كالتالي: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +إذا صادفت خطأ مثل *401 Unauthorized*، تحقق من صحة مفتاح API ومسار الصورة. + +## حالات الحافة والمشكلات الشائعة + +| الحالة | ما الذي يجب مراقبته | الحل المقترح | +|-----------|------------------|---------------| +| **إيصال منخفض الدقة** | انخفاض ثقة OCR إلى أقل من 0.8 | عالج الصورة مسبقًا (زيادة DPI، تحسين الحدة) قبل الإرسال | +| **حروف غير إنجليزية** | اختيار لغة غير صحيحة | استخدم `Language.AutoDetect` أو حدد اللغة الصحيحة | +| **دفعة كبيرة من الإيصالات** | أخطاء حد المعدل (Rate‑limit) | نفّذ آلية back‑off أُسِي أو اطلب حصة أعلى من Aspose | +| **حقول مفقودة** | المحلل المخصص يُعيد `null` | أضف منطق احتياطي أو أنماط regex لاستخراج أكثر موثوقية | + +## نظرة بصرية + +![مخطط يوضح تدفق العملية من ملف الصورة → عميل OCR → استجابة JSON → التحليل المخصص → المخرجات النهائية بصيغة JSON](https://example.com/ocr-flow-diagram.png "تحويل الصورة إلى JSON") + +*نص بديل:* *مخطط تدفق تحويل الصورة إلى JSON يوضح الخطوات التي تم تغطيتها في هذا الدليل.* + +## ملخص + +أظهرنا لك كيفية **تحويل الصورة إلى JSON** باستخدام Aspose OCR Cloud، وشرحنا *كيفية التعرف على النص* في إيصال، وعرضنا طرقًا لـ **استخراج النص من الصورة**، ودمجنا كل ذلك في **دليل OCR بلغة C#** يمكنك إدراجه في أي مشروع .NET. + +النقاط الأساسية هي: + +- إعداد `CloudOcrClient` باستخدام مفتاح API الخاص بك. +- استدعاء `RecognizeAsync` للحصول على حمولة JSON مباشرة من الخدمة. +- (اختياري) إعادة تشكيل تلك الحمولة لتتناسب مع عقد البيانات الخاصة بك. + +## ما التالي؟ + +- **المعالجة الدفعة:** كرر العملية على مجلد من الإيصالات واجمع النتائج في مصفوفة JSON واحدة. +- **التحليل المتقدم:** استخدم تعبيرات regex أو نموذج NLP صغير لاستخراج بنود الفاتورة، الضرائب، والخصومات. +- **التكامل:** ادفع الـ JSON النهائي إلى قاعدة بيانات، طابور رسائل، أو Azure Function لمزيد من الأتمتة. + +لا تتردد في تجربة صيغ صور مختلفة (PNG، TIFF) أو تجربة تدفق **معالجة الإيصال باستخدام OCR** على صور تم التقاطها من الهاتف. السماء هي الحد عندما يكون لديك طريقة موثوقة لـ **تحويل الصورة إلى 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/arabic/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..8dfb8c05f --- /dev/null +++ b/ocr/arabic/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,264 @@ +--- +category: general +date: 2026-04-11 +description: أنشئ ملف PDF قابل للبحث من صورة بسرعة. تعلّم كيفية إنشاء PDF من صورة، + دمج صورة في PDF، تحويل TIF إلى PDF، واستخدام OCR لتحويل إلى PDF باستخدام C# مع Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: ar +og_description: إنشاء PDF قابل للبحث فورًا. يوضح هذا الدرس كيفية إنشاء PDF من صورة، + دمج صورة في PDF، تحويل TIF إلى PDF، واستخدام OCR لإنشاء PDF باستخدام C#. +og_title: إنشاء ملف PDF قابل للبحث في C# – دليل خطوة بخطوة +tags: +- C# +- OCR +- PDF generation +title: إنشاء ملف PDF قابل للبحث في C# – دليل شامل +url: /ar/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء PDF قابل للبحث في C# – دليل كامل + +هل احتجت يومًا إلى **create searchable PDF** من مستند ممسوح ضوئيًا لكن لم تكن متأكدًا من أين تبدأ؟ لست وحدك؛ العديد من المطورين يواجهون نفس المشكلة عند التعامل مع ملفات TIFF و OCR. في هذا الدرس سنستعرض حلًا عمليًا يتيح لك **generate PDF from image**، وإدراج الصورة الأصلية للحصول على قابلية بحث مثالية، وإنهاء العملية بسير عمل **OCR to PDF C#** نظيف. + +سنغطي كل شيء بدءًا من تثبيت مكتبة Aspose.OCR إلى معالجة الحالات الخاصة مثل ملفات TIFF متعددة الصفحات. في النهاية ستحصل على برنامج جاهز للتنفيذ يحول `input.tif` إلى `output.pdf` قابل للبحث بالكامل. لا خدمات خارجية، لا سحر مخفي—فقط كود C# بسيط يمكنك وضعه في أي مشروع .NET. + +## ما ستحتاجه + +- .NET 6.0 أو أحدث (الكود يعمل على .NET Framework 4.7+ أيضًا) +- Visual Studio 2022 (أو أي محرر تفضله) +- ترخيص Aspose.OCR فعال أو مفتاح تجربة مجانية (حزمة NuGet تعمل بدون مفتاح للتقييم) +- صورة TIFF نموذجية (`input.tif`) موجودة في مجلد يمكنك الإشارة إليه + +> **نصيحة احترافية:** احرص على أن تكون ملفات الصور أقل من 10 ميغابايت لتجنب ارتفاع استهلاك الذاكرة عند معالجة دفعات كبيرة. + +## الخطوة 1: تثبيت Aspose.OCR وإعداد المشروع + +أولاً، أضف حزمة Aspose.OCR من NuGet إلى مشروعك. افتح وحدة تحكم مدير الحزم (Package Manager Console) وشغّل: + +```powershell +Install-Package Aspose.OCR +``` + +إذا كنت تفضّل الواجهة الرسومية، انقر بزر الماوس الأيمن على **Dependencies → Manage NuGet Packages**, ابحث عن *Aspose.OCR*, ثم اضغط **Install**. + +لماذا هذه الخطوة مهمة: Aspose.OCR يتضمن محرك OCR عالي الأداء ومصدّر PDF مدمج، لذا لا تحتاج إلى مكتبات منفصلة لمعالجة الصور أو إنشاء PDF. + +### هيكل المشروع الكامل + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **ملاحظة:** استبدل `YOUR_DIRECTORY` بالمسار الفعلي للمجلد على جهازك. + +## الخطوة 2: تحميل الصورة – أساس *Generate PDF from Image* + +تحميل ملف المصدر خطوة صغيرة لكنها حاسمة. Aspose.OCR يتوقع كائن `ImageStream`, الذي ي抽象 عملية إدخال/إخراج الملفات ويدعم صيغًا متعددة (TIFF, PNG, JPEG, إلخ). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**لماذا لا نمرّر المسار مباشرة؟** +غلاف `ImageStream` يدير التخزين المؤقت الداخلي ويضمن أن يعمل محرك OCR مع ملفات TIFF متعددة الصفحات الكبيرة دون تحميل الملف بالكامل إلى الذاكرة مرة واحدة. + +## الخطوة 3: تكوين تصدير PDF – *Embed Image PDF* للحصول على قابلية بحث مثالية + +عند تصدير نتائج OCR إلى PDF، لديك خياران: تضمين النص المستخرج فقط، أو تضمين الصورة الأصلية مع طبقة النص المخفي. تضمين الصورة يحافظ على جودة الماسح البصري ويسمح للمستخدمين باختيار أو نسخ النص لاحقًا. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **حالة خاصة:** إذا ضبطت `EmbedOriginalImage` على `false`, سيكون حجم PDF الناتج أصغر لكنه سيفقد الصورة الأصلية—مفيد لأرشيفات النص الصافي. + +## الخطوة 4: التصدير – *OCR to PDF C#* في نداء واحد + +Aspose.OCR يجعل العملية الثقيلة سطرًا واحدًا. طريقة `ExportToPdf` تقوم بتشغيل OCR، تبني طبقة النص المخفي، وتكتب الملف النهائي. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### النتيجة المتوقعة + +تشغيل البرنامج يطبع: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +افتح `output.pdf` في أي عارض (Adobe Reader, Edge, إلخ) وحاول تحديد النص—سترى الصورة الأصلية تحتها، مما يؤكد نجاح عملية **create searchable pdf**. + +## الخطوة 5: التحقق من PDF – فحوصات سريعة يمكنك أتمتتها + +بينما الفحص اليدوي يكفي لملف واحد، قد ترغب في التأكد برمجيًا أن PDF يحتوي على طبقة نص. Aspose.PDF (مكتبة شقيقة) يمكنها قراءة المستند واستخراج النص: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +أضف استدعاءً لـ `VerifyPdfContainsText(pdfPath);` بعد عملية التصدير إذا أردت فحصًا تلقائيًا. + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | سبب حدوثها | الحل | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | تحميل الملف بالكامل مرة واحدة يتجاوز سعة الذاكرة. | استخدم `ImageStream.FromFile` (كما هو موضح) وعالج الصفحات واحدةً تلو الأخرى إذا كان لديك ملفات متعددة الصفحات. | +| **Missing license leads to watermarks** | وضع التقييم يضيف علامة مائية مرئية على كل صفحة. | قم بتطبيق ترخيص Aspose.OCR مبكرًا: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | استخدام فاصل مسار ثابت `\` يتعطل على أنظمة غير Windows. | استخدم `Path.Combine` أو سلاسل نصية خام مع `/`. | +| **Text not searchable** | تم ضبط `EmbedOriginalImage` على `false` أو تم إيقاف OCR. | تأكد من أن `PdfExportOptions.EmbedOriginalImage = true` وأن محرك OCR مفعّل بشكل صحيح. | + +## مكافأة: تحويل TIF إلى PDF بدون OCR (عندما لا يكون النص مطلوبًا) + +إذا كنت تحتاج فقط إلى **convert TIF to PDF** بدون طبقة النص المخفي، يمكنك تخطي خطوة OCR بالكامل: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## مثال كامل يعمل (جاهز للنسخ واللصق) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +شغّل البرنامج، افتح `output.pdf`, وسترى نسخة مطابقة للأصل من TIFF مع طبقة نص مخفية قابلة للتحديد—هذا هو المقصود عمليًا بـ **create searchable pdf**. + +## الخاتمة + +لقد استعرضنا للتو سير عمل كامل لـ **create searchable pdf** في C#. بدءًا من ملف TIFF الخام، قمنا بـ **generate pdf from image**, واخترنا **embed image pdf** للحفاظ على الجودة البصرية, وعرضنا خط أنابيب كامل لـ **ocr to pdf c#** باستخدام Aspose.OCR. + +لا تتردد في تعديل `PdfExportOptions` (الضغط، نسخة PDF، إلخ) أو ربط عدة صور معًا لمعالجة الدفعات. الخطوة التالية قد تكون استكشاف إضافة حماية بكلمة مرور، توقيعات رقمية, أو حتى دمج عدة PDFs قابلة للبحث في مستند رئيسي واحد. + +هل لديك أسئلة حول توسيع هذا إلى آلاف الملفات أو دمجه في API لـ ASP.NET? اترك تعليقًا أدناه أو تواصل معي على GitHub—برمجة سعيدة! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/arabic/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..8aea2ba5b --- /dev/null +++ b/ocr/arabic/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: استخراج النص من الصورة باستخدام Aspose OCR في C#. تعلّم كيفية تحميل الصورة + للتعرف الضوئي على الأحرف وتعرّف النص من ملفات TIFF بدعم وحدة معالجة الرسومات. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: ar +og_description: استخراج النص من الصورة باستخدام Aspose OCR في C#. يوضح هذا الدرس كيفية + تحميل الصورة للتعرف الضوئي على الأحرف (OCR) والتعرف على النص من ملف TIFF باستخدام + تسريع وحدة معالجة الرسومات. +og_title: استخراج النص من الصورة في C# – دليل OCR كامل +tags: +- OCR +- C# +- Aspose +- GPU +title: استخراج النص من الصورة في C# – دليل OCR الكامل +url: /ar/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص من الصورة في C# – دليل OCR كامل + +هل احتجت يومًا إلى **استخراج النص من الصورة** لكن لم تكن متأكدًا أي مكتبة ستتعامل مع ملف TIFF ضخم دون أن تتعطل؟ لست وحدك. في العديد من المشاريع الواقعية—مثل رقمنة الفواتير أو أرشفة الكتب الممسوحة ضوئيًا—تصبح القدرة على تحميل الصورة لـ OCR ثم التعرف على النص من TIFF بسرعة ميزة حاسمة. + +في هذا الدليل سنستعرض حلًا عمليًا يفعل ذلك بالضبط باستخدام Aspose OCR لـ .NET. بحلول النهاية ستحصل على تطبيق C# Console قابل للتنفيذ يقوم بتحميل مسح عالي الدقة، ويشغل المعالجة المعجلة بالـ GPU (مع تراجع سلس)، ويُخرج النتيجة كنص عادي. لا قطع مفقودة، ولا نهايات “انظر إلى الوثائق”. + +## ما ستحتاجه + +- **.NET 6 أو أحدث** (الكود يُترجم مع أي SDK حديث) +- **Aspose.OCR لـ .NET** حزمة NuGet + `dotnet add package Aspose.OCR` +- **TIFF كبير** أو أي تنسيق صورة آخر تريد تطبيق OCR عليه + (المثال يستخدم `large_scan.tif`) +- (اختياري) GPU يدعم CUDA 11+ – إذا لم يكن لديك، ستتحول المكتبة تلقائيًا إلى وضع CPU. + +هذا كل شيء. هيا نبدأ. + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## الخطوة 1: استخراج النص من الصورة – تهيئة محرك OCR + +قبل أن يتم معالجة أي صورة، تحتاج إلى نسخة من `OcrEngine`. يحتفظ المحرك بجميع الإعدادات التي تتحكم في كيفية تشغيل التعرف. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**لماذا هذا مهم:** +`ProcessingMode.Gpu` يمكن أن يقلل ثوانٍ من زمن التعرف على بطاقة حديثة، لكن ضبط `ProcessingMode.Auto` (أو ترك الإعداد الافتراضي) يكون أكثر أمانًا في البيئات التي قد لا يتوفر فيها GPU. الحماية `GpuMemoryLimit` هي نصيحة عملية—بدونها قد تستهلك صورة ضخمة كل ذاكرة الـ VRAM وتسبب تعطل التطبيقات الأخرى. + +## الخطوة 2: تحميل الصورة لـ OCR – جلب ملف TIFF إلى الذاكرة + +الآن بعد أن أصبح المحرك جاهزًا، نحتاج إلى تزويده بالصورة التي نريد تحليلها. توفر Aspose الدالة `ImageStream.FromFile` التي تُجرد التعامل مع الصيغ. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**ما الذي يحدث في الخلفية؟** +`ImageStream.FromFile` يقرأ الملف إلى تدفق ويكتشف تلقائيًا تنسيق الصورة (TIFF، PNG، JPEG، إلخ). إذا كنت تتعامل مع ملفات TIFF متعددة الصفحات، ستعامل Aspose كل صفحة كإطار منفصل؛ يمكنك التكرار عليها لاحقًا إذا لزم الأمر. + +## الخطوة 3: التعرف على النص من TIFF – تشغيل محرك OCR + +مع تحميل الصورة، يبدأ العمل الشاق. تُعيد الدالة `Recognize` كائن `OcrResult` يحتوي على النص المستخرج وبعض حقول البيانات الوصفية المفيدة. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**لماذا نستدعي `Recognize` مرة واحدة فقط؟** +لأن المحرك يخزن هياكل داخلية مؤقتًا بعد التشغيل الأول، فإن استدعاءً واحدًا يكفي لمعظم السيناريوهات. إذا كنت بحاجة لمعالجة صفحات متعددة، أعد استخدام نفس نسخة `OcrEngine`—هذا يتجنب عبء إعادة تهيئة سياقات الـ GPU. + +## الخطوة 4: عرض النتيجة – إظهار النص المستخرج + +أخيرًا، نطبع السلسلة التي تم التعرف عليها إلى وحدة التحكم. في تطبيق حقيقي ربما تكتبها إلى قاعدة بيانات أو ملف. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**الناتج المتوقع:** +إذا كان `large_scan.tif` يحتوي على فاتورة مطبوعة، سترى شيئًا مثل: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +التنسيق الدقيق يعتمد على الصورة الأصلية، لكن النقطة الأساسية هي أنك الآن تملك نتائج **استخراج النص من الصورة** جاهزة للمعالجة اللاحقة. + +## الخطوة 5: استكشاف الأخطاء وإصلاحها والحالات الخاصة + +### عدم اكتشاف GPU؟ + +إذا شغّلت العينة على جهاز لا يحتوي على GPU متوافق، سيعود المحرك صامتًا إلى CPU عند استخدام `ProcessingMode.Auto`. لفرض وضع CPU صراحةً، استبدل السطر السابق بـ: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### ملفات TIFF التي تستهلك الذاكرة + +المسحات الضخمة جدًا (مثلاً 10 000 × 10 000 بكسل) قد تتجاوز الحد الأقصى للـ GPU البالغ 1 GB الذي حددناه. في هذه الحالة، إما رفع قيمة `GpuMemoryLimit` (إذا كان لديك VRAM إضافي) أو تقليل حجم الصورة قبل تمريرها إلى المحرك: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### مستندات متعددة الصفحات + +إذا كان ملف TIFF يحتوي على صفحات متعددة، قم بالتكرار عليها: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### دعم اللغات والخطوط + +تكتشف Aspose OCR النصوص اللاتينية تلقائيًا، لكن للخطوط السيريالية أو العربية أو الخطوط المخصصة قد تحتاج إلى توفير حزمة لغة: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## نصائح احترافية وأفضل الممارسات + +- **إعادة استخدام المحرك**: إنشاء `OcrEngine` جديد لكل صورة يضيف تأخيرًا ملحوظًا. +- **المعالجة الدفعية**: عند التعامل مع عشرات ملفات TIFF، ضعها في طابور وعالجها في خيوط متوازية—مع مراعاة تنافسية ذاكرة الـ GPU. +- **التحقق من المخرجات**: OCR ليس مثاليًا؛ نفّذ تدقيق إملائي بسيط أو تحقق regex على `ocrResult.Text` لاكتشاف الأخطاء الواضحة. +- **تسجيل الأداء**: قس وقت `Stopwatch` المستغرق قبل وبعد `Recognize` لتحديد ما إذا كان تسريع الـ GPU يستحق الإعداد الإضافي في بيئتك. + +## الخلاصة + +أصبح لديك الآن مثال كامل من البداية إلى النهاية ي **استخراج النص من ملفات الصورة** باستخدام Aspose OCR في C#. من خلال تحميل الصورة لـ OCR، واستدعاء المحرك للتعرف على النص من TIFF، ومعالجة سيناريوهات GPU مقابل CPU، يوفر لك هذا الدليل أساسًا جاهزًا للإنتاج يمكنك تكييفه مع الفواتير أو جوازات السفر أو أي مستند ممسوح. + +ما الخطوة التالية؟ جرّب استبدال TIFF بملف PDF متعدد الصفحات، جرب حزم لغات مخصصة، أو صلّ النتيجة إلى خط أنابيب معالجة لغة طبيعية لاستخراج البيانات تلقائيًا. السماء هي الحد—برمجة سعيدة! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/arabic/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..7f94504ea --- /dev/null +++ b/ocr/arabic/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-04-11 +description: استخراج النص من ملفات TIFF باستخدام معالجة دفعات OCR من Aspose في C#. + تعلّم كيفية معالجة دفعات OCR بفعالية والحصول على تغذية راجعة فورية حول التقدّم. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: ar +og_description: استخراج النص من ملفات TIFF باستخدام معالجة الدُفعات OCR من Aspose + في C#. يوضح هذا الدرس خطوة بخطوة كيفية معالجة OCR على دفعات وقراءة التقدم. +og_title: استخراج النص من ملفات TIFF باستخدام OCR دفعي في C# – دليل كامل +tags: +- OCR +- C# +- Aspose +- Image Processing +title: استخراج النص من ملفات TIFF باستخدام OCR دفعي في C# – دليل كامل +url: /ar/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص من ملفات TIFF – دليل كامل لمعالجة OCR دفعة + +هل احتجت يوماً إلى **استخراج النص من ملفات TIFF** لكن شعرت بأن مرحلة المعالجة الدفعة عائق؟ لست وحدك. في العديد من مشاريع أتمتة المستندات، يمكن أن يصبح التعامل مع عشرات الصور عالية الدقة بصيغة TIF عبئاً كبيراً—خاصةً عندما تريد الحصول على تغذية راجعة مباشرة حول التقدم. + +الخبر السار؟ باستخدام Aspose OCR يمكنك **معالجة OCR دفعة** ببضع أسطر فقط، والحصول على أحداث تقدم في الوقت الحقيقي، وإخراج النص المعترف به لكل صورة. في هذا الدرس سنستعرض تطبيقًا جاهزًا بلغة C# يعمل على وحدة التحكم يقوم بذلك تمامًا. + +سنغطي كل ما تحتاج معرفته: الحزم المطلوبة، لماذا كل سطر مهم، الحالات الخاصة مثل الملفات المفقودة، وكيفية التحقق من النتائج. في النهاية ستتمكن من إضافة العينة إلى مشروعك والبدء في استخراج النص من صور TIFF فورًا. + +## ما ستحتاجه + +- **.NET 6 أو أحدث** (الكود يُجمّع أيضًا مع .NET Core) +- حزمة NuGet **Aspose.OCR for .NET** – `Install-Package Aspose.OCR` +- مجلد يحتوي على بعض صور **TIFF** التي تريد قراءتها (العينة تستخدم `img1.tif`, `img2.tif`, `img3.tif`) +- أي بيئة تطوير تفضلها – Visual Studio، Rider، أو VS Code تكفي + +لا تحتاج إلى أي إعدادات إضافية؛ المكتبة تأتي مع محرك OCR الخاص بها، لذا لن تحتاج إلى تثبيت ملفات تنفيذية أصلية خارجية. + +--- + +## الخطوة 1 – إنشاء كائن محرك OCR + +أول ما تقوم به هو إنشاء `OcrEngine`. فكر فيه كالعقل الذي سيحلل كل بكسل ويحوّله إلى أحرف. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **لماذا هذا مهم:** +> يحتفظ المحرك بنماذج اللغة الداخلية والإعدادات (مثل DPI، اللغة). إن إنشاؤه مرة واحدة وإعادة استخدامه لمعالجة دفعة هو أكثر كفاءة من إنشاء محرك جديد لكل صورة. + +--- + +## الخطوة 2 – ربط أحداث التقدم في الوقت الحقيقي + +إذا كنت تعالج عشرات ملفات TIFF، فإن مؤشر التقدم يمكن أن ينقذك من التساؤل عما إذا كان التطبيق عالقًا. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +حدث `ProgressChanged` يُطلق بعد انتهاء كل صورة، موفرًا لك القيم `Current`, `Total`, و `Percentage`. هذه هي حلقة التغذية الراجعة **process batch OCR** التي ينسى معظم المطورين تنفيذها. + +--- + +## الخطوة 3 – بناء قائمة من تدفقات الصور + +Aspose.OCR يعمل مع كائنات `ImageStream`. أسهل طريقة هي تحميل كل TIFF من القرص. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **نصيحة:** +> إذا كان لديك مجلد ديناميكي، استبدل القائمة الثابتة بـ `Directory.GetFiles(path, "*.tif")` ثم `Select(ImageStream.FromFile)` – بهذه الطريقة ستتمكن من **process batch OCR** دون تحديث يدوي. + +--- + +## الخطوة 4 – تشغيل عملية OCR الدفعة + +الآن يحدث العمل الشاق. `ProcessBatch` تُعيد قائمة قراءة‑فقط من كائنات `OcrResult`، كل منها يحتوي على النص المستخرج وتقييمات الثقة. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **لماذا هذا فعال:** +> يعيد المحرك استخدام نفس نموذج اللغة عبر جميع الصور، مما يقلل بشكل كبير استهلاك الذاكرة مقارنةً بالاتصالات الفردية لكل صورة. + +--- + +## الخطوة 5 – عرض أو تخزين النص المعترف به + +أخيرًا، قم بالتكرار على النتائج. في مشروع حقيقي قد تكتبها إلى قاعدة بيانات أو ملف JSON، لكن في هذه العينة سنطبعها فقط على وحدة التحكم. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**الناتج المتوقع على وحدة التحكم** (مقتطع للوضوح): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +إذا فشلت أي صورة، سيكون `result.Text` سلسلة فارغة، وستظل حدث `ProgressChanged` يُبلغ عن العنصر كمعالج—وبالتالي يمكنك تسجيل الأخطاء بشكل منفصل. + +--- + +## معالج حدث التقدم (الكود الكامل) + +ضع هذه الطريقة في أي مكان داخل فئة `BatchDemo`—يفضل بعد `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **نصيحة احترافية:** +> قم بإعادة توجيه هذا الإخراج إلى شريط تقدم في واجهة المستخدم إذا كنت تبني تطبيق سطح مكتب؛ الحدث نفسه يعمل مع WinForms، WPF، أو حتى إشعارات ASP.NET Core SignalR. + +--- + +## عينة كاملة جاهزة للتنفيذ + +بجمع كل ما سبق، إليك البرنامج الكامل الذي يمكنك نسخه ولصقه في مشروع وحدة تحكم جديد. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +احفظ الملف باسم `Program.cs`، نفّذ `dotnet add package Aspose.OCR`، استبدل `YOUR_DIRECTORY` بالمسار الفعلي، واضغط **Ctrl+F5**. يجب أن ترى أرقام التقدم متبوعة بالنص المستخرج لكل ملف TIFF. + +--- + +## معالجة الحالات الشائعة + +| الحالة | ما يجب مراقبته | الحل السريع | +|-----------|-------------------|-----------| +| **TIFF مفقود أو تالف** | `ImageStream.FromFile` يرمي `FileNotFoundException` أو `ArgumentException`. | غلف إنشاء القائمة بـ `try/catch` وتجاوز الملفات غير الصالحة مع تسجيل المشكلة. | +| **صور كبيرة جدًا ( >10 MP )** | قد يستهلك OCR الكثير من الذاكرة ويبطئ العملية. | قلل DPI قبل المعالجة: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **نص غير إنجليزي** | نموذج اللغة الافتراضي هو الإنجليزية. | عيّن `ocrEngine.Language = Language.Spanish;` (أو أي لغة مدعومة). | +| **الحاجة لحفظ النتائج** | إخراج وحدة التحكم غير دائم. | اكتب `result.Text` إلى ملف `.txt` باستخدام `File.WriteAllText`. | + +معالجة هذه السيناريوهات تجعل حلك قويًا وتظهر للذكاء الاصطناعي أنك فكرت بما يتجاوز المسار السعيد. + +--- + +## الخطوات التالية والمواضيع ذات الصلة + +- **استخراج النص من PDF** – API مشابه، فقط استبدل `ImageStream` بـ `PdfDocument`. +- **OCR دفعة متوازية** – لأحمال عمل ضخمة، شغّل عدة مثيلات من `OcrEngine` على خيوط منفصلة؛ تذكّر احترام حدود الترخيص. +- **ما بعد المعالجة** – مرّر ناتج OCR عبر مدقق إملائي أو تعبيرات regex لتنظيف الأخطاء الشائعة. + +جميع هذه الإضافات لا تزال تعتمد على الفكرة الأساسية لـ **process batch OCR** ويمكن إضافتها تدريجيًا. + +--- + +## الخلاصة + +لقد عرضنا للتو كيفية **استخراج النص من ملفات TIFF** بفعالية عبر **process batch OCR** باستخدام Aspose OCR بلغة C#. العينة تنشئ محركًا واحدًا، تشترك في أحداث التقدم، تُحمّل قائمة من تدفقات الصور، تُنفّذ الدفعة، وتطبع كل نتيجة. + +من هنا يمكنك دمج المخرجات في قواعد بيانات، إنشاء ملفات PDF قابلة للبحث، أو تمرير النص إلى خطوط أنابيب NLP لاحقة. السماء هي الحد—جرّب إعدادات اللغة، تعديل DPI، والتنفيذ المتوازي لتناسب عبء عملك الخاص. + +هل لديك أسئلة أو تريد مشاركة تعديلك للدفعة؟ اترك تعليقًا أدناه، وتمنياتنا لك ببرمجة سعيدة! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/arabic/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..2e90fc0ff --- /dev/null +++ b/ocr/arabic/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-04-11 +description: تعلم كيفية التعرف على النص من ملفات PNG واستخراج النص من الصورة باستخدام + C# و Aspose OCR. يتضمن خطوات تحميل ملف الصورة في C#، التدقيق الإملائي والكود الكامل. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: ar +og_description: تعرّف على النص من ملف PNG بسهولة باستخدام C#. اتبع هذا الدليل خطوة + بخطوة لتحميل ملف الصورة باستخدام C#، استخراج النص من الصورة باستخدام C#، وإجراء + التدقيق الإملائي. +og_title: التعرف على النص من ملف PNG في C# – دليل OCR كامل +tags: +- OCR +- C# +- Aspose +title: التعرف على النص من PNG في C# – دليل شامل للتعرف الضوئي على الأحرف وتدقيق الإملاء +url: /ar/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# التعرف على النص من PNG – دليل كامل لـ C# OCR وتدقيق الإملاء + +هل احتجت يومًا إلى **التعرف على النص من PNG** لكنك لم تكن متأكدًا أي مكتبة تختار؟ لست وحدك؛ العديد من المطورين يواجهون هذه المشكلة عندما يبدأون باستخراج البيانات من الصور. الخبر السار؟ مع Aspose OCR يمكنك تحميل ملف صورة في C#، استخراج النص، وحتى تشغيل مدقق إملائي مدمج — كل ذلك في بضع أسطر. + +في هذا الدليل سنستعرض العملية بالكامل: تحميل ملف PNG، استدعاء محرك OCR، وأخيرًا فحص الكلمات غير الصحيحة إملائيًا. بنهاية القراءة ستكون قادرًا على **استخراج النص من صورة C#** في مشاريعك دون الحاجة للبحث في وثائق متفرقة. لا تحتاج إلى خبرة سابقة في OCR، فقط بيئة تطوير .NET. + +## ما ستحتاجه + +- **.NET 6.0** (أو أي نسخة حديثة من .NET) – الواجهة البرمجية تعمل بنفس الطريقة عبر .NET Core و .NET Framework. +- **Aspose.OCR for .NET** حزمة NuGet – قم بتثبيتها عبر الأمر `dotnet add package Aspose.OCR`. +- صورة **PNG** تحتوي على نص قابل للقراءة (مثال: `letter.png` موجودة في مجلد تتحكم فيه). +- محرر شفرة أو بيئة تطوير متكاملة (IDE) (Visual Studio, VS Code, Rider—اختر ما تفضله). + +هذا كل شيء. لا محركات OCR إضافية، لا ملفات DLL أصلية، فقط حزمة مُدارة نظيفة. + +--- + +## الخطوة 1: تحميل ملف صورة PNG في C# + +قبل أن يتمكن محرك OCR من أي شيء، يحتاج إلى تدفق (stream) يشير إلى الصورة. توفر Aspose الدالة `ImageStream.FromFile` التي تُجرد تفاصيل نظام الملفات. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **نصيحة احترافية:** إذا كانت صورتك مضمنة كموارد أو جاءت من طلب ويب، يمكنك استخدام `ImageStream.FromBytes(byte[])` بدلاً من ذلك — دون الحاجة للتعامل مع نظام الملفات. + +### لماذا التحميل مهم + +تحميل الصورة بشكل صحيح يضمن أن محرك OCR يتلقى بيانات البكسل الدقيقة التي يتوقعها. إذا كان التدفق تالفًا سيتسبب ذلك في حدوث استثناء في `Recognize`، وستضيع وقتًا في تصحيح الأخطاء لاحقًا. + +--- + +## الخطوة 2: تهيئة محرك OCR + +إنشاء كائن `OcrEngine` أمر بسيط، لكن قد ترغب في تعديل إعدادات اللغة أو الدقة لحالات استخدام محددة (مثل المستندات متعددة اللغات). المُنشئ الافتراضي يعمل جيدًا للنص الإنجليزي. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### لماذا كائن محرك؟ + +المحرك يحتفظ بالإعدادات (اللغة، فلاتر ما قبل المعالجة، إلخ). من خلال فصل الإعدادات عن الصورة، يمكنك إعادة استخدام نفس المحرك لعدة ملفات — مفيد للمعالجة الدفعة. + +--- + +## الخطوة 3: التعرف على النص من PNG + +الآن يحدث السحر. تُعيد الدالة `Recognize` كائن `OcrResult` يحتوي على السلسلة الخام، درجات الثقة، وأكثر. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**الناتج المتوقع** (بافتراض أن `letter.png` يحتوي على “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +إذا احتوت الصورة على عدة أسطر، فإن النتيجة تحتفظ بفواصل الأسطر، مما يجعل المعالجة اللاحقة سهلة. + +### حالة خاصة: PNG منخفض الدقة + +إذا كان ناتج OCR مشوشًا، فكر في تكبير الصورة أو تعديل `ocrEngine.PreprocessingOptions`. غالبًا ما تفقد الصور ذات الدقة المنخفضة (DPI) التفاصيل التي يعتمد عليها المحرك. + +--- + +## الخطوة 4: تشغيل مدقق الإملاء المدمج + +يأتي Aspose OCR مع وحدة تدقيق إملائي خفيفة تعمل مباشرة على نتيجة OCR. تساعدك هذه الخطوة على التقاط الأخطاء مثل “H3llo” بدلاً من “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**نموذج الناتج** (إذا قرأ OCR كلمة “World” بشكل خاطئ كـ “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### لماذا تدقيق الإملاء؟ + +OCR لا يكون مثاليًا بنسبة 100 %، خاصةً مع الخلفيات المزعجة. يمكن لتدقيق إملائي سريع أن يزيل الأخطاء الواضحة قبل إدخال النص إلى التحليلات أو قواعد البيانات اللاحقة. + +--- + +## الخطوة 5: جمع كل شيء معًا – مثال كامل يعمل + +فيما يلي البرنامج الكامل الجاهز للتنفيذ. انسخه إلى مشروع وحدة تحكم جديد، عدل مسار الصورة، واضغط **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**تشغيل العرض** يطبع نص OCR متبوعًا بأي اقتراحات إملائية. يعمل على أي PNG يحتوي على نص إنجليزي واضح ومطبع. للغات أخرى، قم ببساطة بتعيين `ocrEngine.Language` وفقًا لذلك. + +--- + +## أسئلة شائعة وملاحظات + +| السؤال | الجواب | +|----------|--------| +| *هل يمكنني معالجة ملفات JPEG أو BMP؟* | بالتأكيد—`ImageStream.FromFile` يقبل أي صيغة يدعمها Aspose (PNG, JPEG, BMP, TIFF). | +| *ماذا لو كانت الصورة في تدفق ذاكرة (memory stream)؟* | استخدم `ImageStream.FromBytes(byteArray)` أو `ImageStream.FromStream(stream)`. | +| *هل مدقق الإملاء يدعم اللغة؟* | نعم، فهو يحترم اللغة المحددة في محرك OCR. | +| *كيف أحسن الدقة في الصور المائلة؟* | فعّل `ocrEngine.PreprocessingOptions.Deskew = true;` قبل استدعاء `Recognize`. | +| *هل أحتاج إلى ترخيص لـ Aspose.OCR؟* | النسخة التجريبية المجانية تعمل حتى 100 صفحة. للإنتاج، احصل على ترخيص لإزالة العلامات المائية. | + +--- + +## الخطوات التالية – ما بعد OCR الأساسي + +الآن بعد أن أصبحت قادرًا على **التعرف على النص من PNG** و **استخراج النص من صورة C#**، فكر في هذه الإضافات: + +1. معالجة دفعة – تكرار عبر مجلد يحتوي على PNGs وكتابة نتيجة OCR لكل صورة في ملف `.txt` منفصل. +2. التكامل مع Azure Cognitive Services – دمج Aspose OCR مع واجهات برمجة تطبيقات الترجمة السحابية لإنشاء خطوط عمل متعددة اللغات. +3. استخراج بيانات منظمة – استخدم التعبيرات النمطية على `recognizedText` لاستخراج التواريخ، أرقام الفواتير، أو العناوين. +4. تحسين الأداء – للأحجام الكبيرة، أعد استخدام كائن `OcrEngine` واحد وتمكين المعالجة المتعددة الخيوط. + +كل من هذه الخطوات يبني على الأساسيات التي غطيناها، مما يتيح لك تحويل صورة بسيطة إلى بيانات قابلة للاستخدام. + +--- + +## الخلاصة + +لقد استعرضنا مثالًا كاملاً من البداية إلى النهاية يوضح كيفية **التعرف على النص من PNG** في C#، **تحميل ملف صورة C#** بشكل صحيح، ثم **استخراج النص من صورة C#** مع التقاط الأخطاء الإملائية. الشيفرة مستقلة، والتوضيحات تغطي كلًا من “كيف” و “لماذا”، والآن لديك أساس قوي لأي ميزة تعتمد على 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 130a84dce..01829e35d 100644 --- a/ocr/chinese/net/ocr-configuration/_index.md +++ b/ocr/chinese/net/ocr-configuration/_index.md @@ -59,7 +59,8 @@ weight: 24 ### [使用语言选择进行 OCR 图像识别的 OCROperation](./ocr-operation-with-language-selection/) 利用 Aspose.OCR for .NET 的强大 OCR 功能,流畅地从图像中提取文本。 ### [使用列表进行 OCR 图像识别的 OCROperation](./ocr-operation-with-list/) -发挥 Aspose.OCR for .NET 的潜力,轻松实现基于列表的 OCR 图像识别,提高应用的生产力和数据提取效率。 +发挥 Aspose.OCR for .NET 的潜力,轻松实现基于列表的 OCR 图像识别,提高应用的生产力和数据提取效率。 +### [如何在 C# 中禁用 OCR – 离线 Aspose OCR 指南](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) ### 常见使用场景 - **从扫描发票中提取文本**,实现自动化会计。 @@ -100,4 +101,4 @@ weight: 24 {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/chinese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..fec9ba244 --- /dev/null +++ b/ocr/chinese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-04-11 +description: 了解如何在 Aspose OCR for C# 中禁用 OCR 以离线运行,从图像中提取文本而无需互联网,并正确加载图像进行 OCR。 +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: zh +og_description: 如何在 Aspose OCR for C# 中禁用 OCR 并离线运行,从图像中提取文本而无需互联网,并轻松加载图像进行 OCR。 +og_title: 如何在 C# 中禁用 OCR – 离线 Aspose OCR 指南 +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: 如何在 C# 中禁用 OCR – 离线 Aspose OCR 指南 +url: /zh/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中禁用 OCR – 离线 Aspose OCR 指南 + +是否曾想过 **如何在需要真正离线的解决方案时禁用 OCR**?也许你正在构建一个无法依赖网络连接的安全桌面应用,或者只是想避免意外下载。无论哪种情况,好消息是 Aspose OCR 允许你关闭自动资源获取,将其指向本地文件夹,并保持所有内容在本地。在本教程中,你还将看到如何 **从图像中提取文本** 并正确 **加载图像进行 OCR**,全程毫无卡顿。 + +我们将通过一个完整、可直接运行的示例,展示每一步——从初始化引擎到打印识别出的日文文本。没有外部文档,没有隐藏的魔法;只有可以直接放入项目的纯 C# 代码。完成后,你将了解为何关闭自动下载功能很重要、如何设置资源路径以及需要注意的坑点。 + +## 前置条件 + +- 已在机器上安装 .NET 6.0(或任意近期的 .NET 版本)。 +- Aspose.OCR for .NET NuGet 包(`Install-Package Aspose.OCR`)。 +- 已包含所需语言资源的文件夹(例如日文模型)。 +- 一张要进行 OCR 的图像文件(`japan_doc.png`)。 + +如果缺少语言包,请一次性从 Aspose 门户下载并解压到类似 `AsposeOCRResources` 的文件夹中。关闭自动下载功能后将不再进行任何下载。 + +![如何离线禁用 OCR](/images/how-to-disable-ocr.png "如何离线禁用 OCR 插图") + +## 第一步 – 创建 OCR 引擎实例 + +首先实例化 `OcrEngine`。把它想象成读取图像的大脑。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **为什么重要:** 没有引擎就无法进行任何配置。该对象保存所有设置,包括决定库是否可以访问互联网的关键标志。 + +## 第二步 – 禁用自动资源下载 + +默认情况下,Aspose OCR 会在运行时尝试获取缺失的语言文件。要保持离线,只需将 `AutoDownloadResources` 开关设为 `false`。 + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **小技巧:** 关闭此功能不仅保证了隐私,还能加快首次识别的速度,因为引擎不会浪费时间检查更新。 + +## 第三步 – 指向本地资源文件夹 + +告诉引擎预先下载好的语言包所在位置。这就是前置条件中设置的路径。 + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **可能出错的地方?** 如果路径错误或缺少所需语言文件,引擎会抛出 `ResourceNotFoundException`。请仔细检查文件夹名称以及日文模型(`jpn.traineddata`)是否存在。 + +## 第四步 – 选择本地语言模型 + +选择磁盘上实际存在的语言模型。示例中使用日文,你可以将 `Language.Japanese` 替换为已下载的其他语言。 + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **边缘情况:** 某些语言需要额外的词典(例如中文)。确保这些辅助文件也放在同一资源文件夹中。 + +## 第五步 – 加载图像进行 OCR + +这里就是 **加载图像进行 OCR** 的地方。`ImageStream.FromFile` 方法会将文件读取为 Aspose 可处理的流。 + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **提示:** 支持的格式包括 PNG、JPEG、BMP 和 TIFF。如果需要处理 PDF,请先将每页转换为图像。 + +## 第六步 – 运行识别过程 + +现在引擎真正读取像素并尝试将其转换为文本。 + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **为何此步骤可能较慢:** OCR 对 CPU 需求高,尤其是高分辨率图像。如果对性能有要求,考虑在识别前先对图像进行降采样。 + +## 第七步 – 输出提取的文本 + +最后,我们 **从图像中提取文本** 并将其打印到控制台。 + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +运行程序后,控制台应显示 `japan_doc.png` 中的日文字符。如果一切配置正确,你会看到一段干净的 Unicode 文本。 + +### 预期输出 + +``` +これはサンプルの日本語テキストです。 +``` + +(实际输出取决于图像内容。) + +## 常见坑点及规避方法 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **缺少语言文件** | `AutoDownloadResources` 为 false,导致引擎无法自动获取。 | 确认 `ResourcesPath` 指向包含 `jpn.traineddata` 的文件夹。 | +| **图像路径错误** | `ImageStream.FromFile` 抛出 `FileNotFoundException`。 | 使用绝对路径或确保工作目录设置正确。 | +| **不支持的图像格式** | Aspose 只读取特定格式。 | 在调用 `FromFile` 前将图像转换为 PNG 或 JPEG。 | +| **大图像导致内存不足** | OCR 会将整张图像加载到内存。 | 对图像进行缩放或分块处理,或提升进程内存上限。 | + +## 扩展示例 + +- **批量处理:** 遍历目录下的所有图像,调用相同的识别代码,并将每个结果写入单独的 `.txt` 文件。 +- **不同语言:** 将 `Language.Japanese` 替换为 `Language.English`(或其他),前提是已放置对应的资源文件。 +- **自定义预处理:** 使用 Aspose.Imaging 在 OCR 前进行去倾斜或提升对比度,以获得更高的识别准确率。 + +## 结论 + +现在你已经掌握了 **如何在 Aspose OCR 的 C# 版中禁用 OCR** 并实现完全离线运行。通过将 `AutoDownloadResources` 设置为 `false`、指向本地资源文件夹,并正确 **加载图像进行 OCR**,即可可靠地 **从图像中提取文本**,而无需触及互联网。此方法非常适合安全环境、CI 流水线或任何网络受限的场景。 + +准备好下一步了吗?尝试处理整文件夹的扫描 PDF,实验不同语言包,或将 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/_index.md b/ocr/chinese/net/ocr-optimization/_index.md index 48aeacf55..51205e318 100644 --- a/ocr/chinese/net/ocr-optimization/_index.md +++ b/ocr/chinese/net/ocr-optimization/_index.md @@ -72,6 +72,9 @@ weight: 25 ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) 释放 Aspose.OCR for .NET 的潜能。通过本综合一步一步的指南,轻松将多页 OCR 结果保存为文档。 +### [如何使用 Aspose OCR 在 C# 中提升 OCR 准确度](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +学习在 C# 项目中通过 Aspose OCR 的高级设置和预处理技术提升识别准确率。 + ## 常见问题 **Q: 我可以从包含多种语言的图像文件中提取文本吗?** diff --git a/ocr/chinese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/chinese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..fb55f1e12 --- /dev/null +++ b/ocr/chinese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: 了解如何通过使用 Aspose OCR 对 JPG 进行文字识别、图像去倾斜和去噪来提升 C# 中的 OCR。 +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: zh +og_description: 了解如何通过识别 JPG 文本、校正图像倾斜和去除噪声来提升 OCR——完整的 C# 指南。 +og_title: 如何使用 Aspose OCR 在 C# 中提升 OCR 准确率 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: 如何在 C# 中使用 Aspose OCR 提高 OCR 准确率 +url: /zh/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 Aspose OCR 提高 OCR 准确率 + +是否曾经想过 **how to improve OCR** 的结果,当你的扫描件看起来更像抽象艺术而不是可读文本?你并不是唯一的遇到这种情况的人。在许多真实项目中——比如发票、收据或手写笔记——源图像往往倾斜、颗粒感强,甚至噪声很大。好消息是,Aspose OCR 为你提供了一系列预处理选项,能够将这些混乱的图像转化为干净、机器可读的字符。在本教程中,我们将通过一个完整、可运行的示例,展示如何通过 **recognize text from JPG**、校正图像倾斜以及去除不需要的噪声来 **how to improve OCR**。 + +> *Pro tip:* 如果跳过预处理,你很可能会得到像密码填字游戏一样的乱码输出。让我们避免这种情况吧。 + +![使用 Aspose OCR 预处理改进 OCR](https://example.com/ocr-preprocess.png "使用 Aspose OCR 改进 OCR") + +## 您将学到 + +在接下来的几分钟里,你将看到: + +1. 如何为获得最佳准确率设置 Aspose OCR 引擎。 +2. 获取 **recognize text from JPG** 所需的完整代码。 +3. 为什么启用 *AutoDeskew* 和 *RemoveNoise* 很重要以及如何调优它们。 +4. 如何在不编写自定义过滤器的情况下 **extract text from image** 文件。 +5. 常见陷阱(文件缺失、不支持的格式)及快速解决方案。 + +完成后,你将拥有一个单独的 C# 控制台应用程序,能够接受任意 JPG,进行清理,并输出提取的字符串——可直接用于后续处理或存储。 + +## 前置条件 + +- .NET 6.0 SDK 或更高版本(示例为简洁起见使用顶层语句)。 +- Aspose.OCR NuGet 包(`dotnet add package Aspose.OCR`)。 +- 一个示例 JPG 图像(名为 `input.jpg`),放置在可执行文件同一文件夹中。 +- 对 C# 有基本了解——无需高级概念。 + +如果你已经有项目,只需把代码粘进去;否则创建一个新的控制台应用: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +现在让我们深入代码。 + +## 如何改进 OCR:预处理设置概览 + +**how to improve OCR** 的核心在于 `PreprocessSettings` 对象。可以把它看作在实际字符识别引擎运行之前的一个小型图像编辑器。下面是最具影响力的几个标志的快速概述: + +| 设置 | 功能说明 | 常见使用场景 | +|---------------------|---------------------------------------------------------|--------------| +| `AutoDeskew` | 应用深度学习去倾斜算法。 | 略有倾斜的扫描页。 | +| `AdaptiveThreshold`| 提升低光或褪色图像的对比度。 | 墨水褪色的旧收据。 | +| `RemoveNoise` | 使用高斯模糊过滤器抑制噪点。 | 使用手机闪光灯拍摄的照片。 | +| `NoiseRemovalStrength`| 控制去噪强度(1 = 低,3 = 高)。 | 根据源图像的颗粒程度进行微调。 | + +启用这些选项基本上就是对 **how to improve OCR** 的“秘密调味料”,能够显著提升对不完美输入的识别效果。 + +## 使用 Aspose OCR 识别 JPG 中的文本 + +下面是完整的、可直接运行的程序。每行代码都有注释,帮助你了解 *为什么* 需要这段代码,而不仅仅是 *它做了什么*。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### 预期输出 + +如果 `input.jpg` 包含短语 “Invoice #12345 – Total: $256.78”,控制台将打印: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +请注意,输出是干净的,连同破折号和美元符号一起保留下来——这正是你在 **extract text from image** 文件时所期望的结果。 + +## 使用预处理设置校正图像倾斜 + +为什么去倾斜很重要?即使是 2 度的倾斜也会干扰字符分割阶段,导致字母识别错误。`AutoDeskew` 标志在内部运行卷积神经网络,检测主导角度并将图像旋转回基准。 + +如果需要更细致的控制,你可以手动设置倾斜角度: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **何时使用手动去倾斜:** 如果你知道摄像头始终以固定角度倾斜图像(例如固定式扫描仪),硬编码角度可以略微节省处理时间。 + +## 去除噪声以获得更清晰的提取 + +噪声通常表现为随机斑点或颗粒,尤其是在低光照片中。`RemoveNoise` 标志使用双边滤波器平滑背景,同时保留边缘(即实际字符)。`NoiseRemovalStrength` 属性让你调节去噪强度: + +| 强度 | 效果 | +|------|------| +| 1 | 轻度平滑——适用于轻微颗粒的图片。 | +| 2 | 中等平衡——适用于大多数手机拍摄。 | +| 3 | 强力平滑——在图像极度嘈杂时使用,但要注意可能会模糊细小笔画。 | + +如果在强力平滑后出现小字号不可读的情况,只需降低强度或直接关闭该过滤器。 + +## 从图像中提取文本:超越 JPG + +虽然我们的演示聚焦于 JPG,Aspose OCR 还支持 PNG、BMP、TIFF,甚至 PDF 页面。要 **extract text from image** 其他格式,只需在 `ImageStream.FromFile` 中更改文件扩展名。对于多页 TIFF,你可以遍历每一页: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +上述代码片段展示了如何将相同的 **how to improve OCR** 工作流扩展到批量处理整堆扫描文档。 + +## 常见陷阱与解决方案 + +| 症状 | 可能原因 | 快速解决方案 | +|--------------------|------------------------------------------------------------|--------------| +| 输出为空 | 预处理后图像完全变白(阈值过于激进) | 降低 `NoiseRemovalStrength` 或将 `AdaptiveThreshold = false`。 | +| 字符乱码 | 语言模型错误(默认是英文) | 设置 `ocrEngine.Settings.Language = Language.English;` 或加载自定义语言包。 | +| 大文件崩溃 | 高分辨率图像导致内存不足 | 在识别前使用 `ocrEngine.Settings.ImageResizeFactor = 0.5;` 降低分辨率。 | +| 旋转扫描无输出 | 不小心关闭了 `AutoDeskew` | 启用 `AutoDeskew = true` 或提供正确的 `DeskewAngle`。 | + +牢记这些要点,在生产流水线中 **how to improve OCR** 时可以为你节省大量调试时间。 + +## 进阶:速度与准确度的权衡 + +如果你每天要处理成千上万张收据,可能更看重速度。关闭 `AdaptiveThreshold` 并将 `NoiseRemovalStrength = 1`。相反,对于法律文档等对单字符错误极其敏感的场景,建议保持所有标志开启,并考虑将 `NoiseRemovalStrength` 提升至 3。 + +## 总结 + +我们已经完整演示了在 C# 中使用 Aspose OCR **how to improve OCR** 的全过程:从创建引擎、配置预处理(即 *how to deskew image* 与 *how to remove noise* 的核心)、加载 JPG、识别文本,到处理各种边缘情况。代码自包含、开箱即用,展示了实现 **recognize text from jpg** 和 **extract text from image** 文件的全部步骤。 + +### 接下来怎么办? + +- 试验其他图像格式(PNG、TIFF),观察相同设置的表现。 +- 将 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/_index.md b/ocr/chinese/net/text-recognition/_index.md index 9a3154c26..a8ef4170d 100644 --- a/ocr/chinese/net/text-recognition/_index.md +++ b/ocr/chinese/net/text-recognition/_index.md @@ -49,15 +49,26 @@ url: /zh/net/text-recognition/ 探索 Aspose.OCR for .NET,这是一款功能强大的 OCR 解决方案,可实现图像中的无缝文本识别。 ### [在 OCR 图像识别中获取 JSON 格式的结果](./get-result-as-json/) 释放 Aspose.OCR for .NET 的强大功能。学习轻松获取 JSON 格式的 OCR 结果。通过本分步指南增强您的图像识别能力。 +### [将图像转换为 JSON – C# 收据 OCR 教程](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +使用 Aspose.OCR 在 C# 中将收据图像转换为 JSON 格式,提供完整的步骤指南。 ### [OCR图像识别中的OCR检测区域模式](./ocr-detect-areas-mode/) 使用 Aspose.OCR 增强您的 .NET 应用程序,以实现高效的图像文本识别。探索 OCR 检测区域模式以获得精确结果。 ### [OCR图像识别中识别PDF](./recognize-pdf/) 使用 Aspose.OCR 释放 .NET 中 OCR 的潜力。轻松从 PDF 中提取文本。立即下载以获得无缝集成体验。 ### [OCR图像识别中的识别表](./recognize-table/) 通过我们关于 OCR 图像识别中表格识别的综合指南,释放 Aspose.OCR for .NET 的潜力。 +### [在 C# 中从图像提取文本 – 完整 OCR 指南](./extract-text-from-image-in-c-complete-ocr-guide/) +使用 Aspose.OCR 在 C# 中实现完整的图像文本提取指南,帮助您快速集成 OCR 功能。 +### [在 C# 中使用批量 OCR 从 TIFF 提取文本 – 完整指南](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +使用 Aspose.OCR 在 C# 中批量处理 TIFF 文件,轻松提取文本并集成到您的应用程序中。 +### [在 C# 中创建可搜索 PDF – 完整指南](./create-searchable-pdf-in-c-complete-guide/) +使用 Aspose.OCR 在 C# 中创建可搜索的 PDF,提供完整的分步指南,帮助您轻松实现 PDF 文本搜索功能。 +### [在 C# 中从 PNG 识别文本 – 完整 OCR 与拼写检查指南](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +使用 Aspose.OCR 在 C# 中实现完整的 PNG 文本识别和拼写检查,帮助您快速集成 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/chinese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..59d3b4541 --- /dev/null +++ b/ocr/chinese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: 使用 Aspose OCR Cloud 在 C# 中将图像转换为 JSON。了解如何识别文本、从图像中提取文本,并在几分钟内使用 OCR + 处理收据。 +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: zh +og_description: 使用 Aspose OCR Cloud 在 C# 中将图像转换为 JSON。本指南展示了如何识别文本、从图像中提取文本以及使用 OCR + 处理收据。 +og_title: 将图像转换为 JSON – 收据的 C# OCR 教程 +tags: +- OCR +- C# +- Aspose +- JSON +title: 将图像转换为 JSON – C# 收据 OCR 教程 +url: /zh/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 将图像转换为 JSON – C# 收据 OCR 教程 + +是否曾经需要**将图像转换为 JSON**但不知从何入手?在本指南中,我们将带您完成一个完整的、端到端的 C# OCR 教程,拍摄收据照片,识别文本,并输出整洁的 JSON 负载。 + +如果您曾经想过*如何在扫描文档中识别文本*,或者正在寻找一种快速的**从图像中提取文本**的方法,您来对地方了。本文结束时,您将能够**使用 OCR 处理收据**并将结果直接传递给下游 API。 + +## 您需要的准备 + +- .NET 6 SDK 或更高版本(代码同样适用于 .NET Core) +- Aspose Cloud API 密钥 – 您可以从 Aspose 门户获取免费试用 +- 本地存储的示例收据图像(`receipt.jpg`) +- 您喜欢的 IDE(Visual Studio、VS Code、Rider – 任意一种均可) + +不需要除官方 `Aspose.OCR.Cloud` 客户端之外的额外 NuGet 包。如果您已经安装了 SDK,便可以直接开始。 + +## 第一步 – 将图像转换为 JSON:设置 OCR 客户端 + +首先,我们需要一个 `CloudOcrClient` 实例。该对象负责与 Aspose 的 OCR 服务的所有通信,并以 JSON 格式返回结果。 + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**为什么这很重要:** 初始化客户端是您的 C# 代码与云 OCR 引擎之间的桥梁。`RecognizeAsync` 方法承担了主要工作——它上传图像、运行 OCR 引擎,并返回包含识别文本、置信度分数和边界框坐标的 JSON 字符串。 + +> **小贴士:** 将 API 密钥存储在环境变量或密钥管理器中,而不是硬编码。这样可以避免意外泄露。 + +## 第二步 – 如何从收据中识别文本 + +客户端准备就绪后,让我们深入了解文本识别背后的*实现方式*。Aspose OCR 支持多种语言,但对大多数收据而言,英语已足够。如果需要其他语言,只需将 `Language.English` 替换为相应的枚举值。 + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**底层发生了什么?** 服务运行一个深度学习模型,检测字符、将其组合成单词,然后组装成行。返回的 JSON 大致如下: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +您可以使用 `System.Text.Json` 或 `Newtonsoft.Json` 解析此 JSON,以提取所需字段。 + +## 第三步 – 从图像提取文本并手动构建 JSON(可选) + +有时您并不想使用 Aspose 返回的原始 JSON;也许需要为下游服务定制结构。下面是一个快速示例,演示如何反序列化响应并重新封装为更简洁的对象。 + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**为什么要重新格式化?** 许多 API 期望特定的模式(例如 `{ "total": "12.34", "date": "2026-04-10" }`)。只提取所需字段可以让负载更轻,并避免泄露不必要的 OCR 元数据。 + +## 第四步 – 使用示例收据测试 C# OCR 教程 + +在终端中运行程序: + +```bash +dotnet run +``` + +您应该会看到两段输出: + +1. Aspose 返回的原始 JSON(即**将图像转换为 JSON**的直接结果)。 +2. 上一步构建的自定义 JSON。 + +典型输出如下: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +如果出现类似 *401 Unauthorized* 的错误,请再次确认 API 密钥是否有效以及图像路径是否正确。 + +## 边缘情况与常见陷阱 + +| 情况 | 需要注意的点 | 建议的解决方案 | +|-----------|------------------|---------------| +| **低分辨率收据** | OCR 置信度低于 0.8 | 在发送前对图像进行预处理(提高 DPI,锐化) | +| **非英文字符** | 语言枚举错误 | 使用 `Language.AutoDetect` 或指定正确的语言 | +| **大量收据批处理** | 速率限制错误 | 实现指数退避或向 Aspose 请求更高配额 | +| **缺失字段** | 自定义解析器返回 `null` | 添加回退逻辑或正则表达式模式以实现更稳健的提取 | + +## 可视化概览 + +![展示从图像文件 → OCR 客户端 → JSON 响应 → 自定义解析 → 最终 JSON 输出的流程图](https://example.com/ocr-flow-diagram.png "将图像转换为 JSON") + +*Alt text:* *展示本教程所涵盖步骤的将图像转换为 JSON 流程图*。 + +## 小结 + +我们已经演示了如何使用 Aspose OCR Cloud **将图像转换为 JSON**,解释了*如何在收据中识别文本*,展示了**从图像中提取文本**的多种方式,并将所有内容封装在一个简洁的 **C# OCR 教程** 中,您可以将其直接嵌入任何 .NET 项目。 + +关键要点如下: + +- 使用您的 API 密钥设置 `CloudOcrClient`。 +- 调用 `RecognizeAsync` 直接获取服务返回的 JSON 负载。 +- 可选地对该负载进行重构,以符合自己的数据合约。 + +## 接下来做什么? + +- **批量处理:**遍历收据文件夹,将结果聚合为单个 JSON 数组。 +- **高级解析:**使用正则表达式或小型 NLP 模型提取项目、税金和折扣。 +- **集成:**将最终 JSON 推送到数据库、消息队列或 Azure Function,以实现进一步自动化。 + +随意尝试不同的图像格式(PNG、TIFF),或在移动设备拍摄的照片上尝试 **使用 OCR 处理收据** 流程。一旦拥有可靠的 **将图像转换为 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/chinese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..177cbe15b --- /dev/null +++ b/ocr/chinese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-04-11 +description: 快速将图像创建为可搜索的 PDF。学习如何从图像生成 PDF、嵌入图像 PDF、将 TIF 转换为 PDF,并使用 Aspose 在 C# + 中进行 OCR 转 PDF。 +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: zh +og_description: 即时创建可搜索的 PDF。本教程展示如何从图像生成 PDF、嵌入图像 PDF、将 TIF 转换为 PDF,以及使用 OCR 生成 PDF(C#)。 +og_title: 使用 C# 创建可搜索的 PDF – 步骤指南 +tags: +- C# +- OCR +- PDF generation +title: 在 C# 中创建可搜索的 PDF – 完整指南 +url: /zh/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中创建可搜索 PDF – 完整指南 + +是否曾需要 **创建可搜索的 PDF**,但不知从何入手?你并不孤单;许多开发者在处理 TIFF 文件和 OCR 时都会遇到同样的难题。在本教程中,我们将手把手演示一个解决方案,帮助你 **从图像生成 PDF**,嵌入原始图片以实现完美的可搜索性,并完成一个简洁的 **OCR to PDF C#** 工作流。 + +我们将覆盖从安装 Aspose.OCR 库到处理多页 TIFF 等边缘情况的全部内容。完成后,你将拥有一个可直接运行的程序,将 `input.tif` 转换为完整可搜索的 `output.pdf`。无需外部服务,也没有隐藏的魔法——只需将普通的 C# 代码放入任意 .NET 项目即可。 + +## 你需要的环境 + +- .NET 6.0 或更高(代码同样适用于 .NET Framework 4.7+) +- Visual Studio 2022(或你喜欢的任何编辑器) +- 有效的 Aspose.OCR 许可证或免费试用密钥(NuGet 包在评估模式下无需密钥) +- 一个示例 TIFF 图像(`input.tif`),放在可引用的文件夹中 + +> **专业提示:** 将图片文件保持在 10 MB 以下,以避免在处理大批量时出现内存峰值。 + +## 第一步:安装 Aspose.OCR 并创建项目 + +首先,将 Aspose.OCR NuGet 包添加到项目中。打开 **Package Manager Console**,运行: + +```powershell +Install-Package Aspose.OCR +``` + +如果你更喜欢 UI,右键 **Dependencies → Manage NuGet Packages**,搜索 *Aspose.OCR*,点击 **Install**。 + +为什么这一步很重要:Aspose.OCR 捆绑了高性能 OCR 引擎和内置的 PDF 导出器,这样你就不需要额外的图像处理或 PDF 创建库。 + +### 完整项目骨架 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **注意:** 将 `YOUR_DIRECTORY` 替换为你机器上的实际文件夹路径。 + +## 第二步:加载图像 – *Generate PDF from Image* 基础 + +加载源文件是一个微小但关键的步骤。Aspose.OCR 需要一个 `ImageStream`,它抽象了文件 I/O 并支持多种格式(TIFF、PNG、JPEG 等)。 + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**为什么不能直接传路径?** +`ImageStream` 包装器处理内部缓冲,并确保 OCR 引擎在处理大型多页 TIFF 时不会一次性将整个文件加载到内存中。 + +## 第三步:配置 PDF 导出 – *Embed Image PDF* 以实现完美可搜索性 + +将 OCR 结果导出为 PDF 时,你有两种选择:仅嵌入提取的文本,或在隐藏文本层的同时嵌入原始图像。嵌入图像可以保持扫描件的视觉保真度,并让用户后续能够选中或复制文本。 + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **边缘情况:** 如果将 `EmbedOriginalImage` 设置为 `false`,生成的 PDF 会更小,但会失去原始图片——这在纯文本归档时很有用。 + +## 第四步:导出 – *OCR to PDF C#* 一键完成 + +Aspose.OCR 让繁重的工作只需一行代码。`ExportToPdf` 方法会执行 OCR、构建隐藏文本层并写入最终文件。 + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### 预期结果 + +运行程序后会输出: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +在任意阅读器(Adobe Reader、Edge 等)中打开 `output.pdf`,尝试选中文本——你会看到下面有原始图像,说明 **create searchable pdf** 操作已成功。 + +## 第五步:验证 PDF – 可自动化的快速检查 + +手动检查单个文件固然可以,但你可能想以编程方式断言 PDF 包含文本层。Aspose.PDF(兄弟库)可以读取文档并提取文本: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +在导出后调用 `VerifyPdfContainsText(pdfPath);`,即可实现自动化的基本校验。 + +## 常见陷阱及规避方法 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **在超大 TIFF 上出现内存不足** | 一次性加载整个文件会超出 RAM。 | 使用 `ImageStream.FromFile`(如示例所示),并在多页文件时逐页处理。 | +| **缺少许可证导致水印** | 评估模式会在每页添加可见水印。 | 在程序开始时尽早应用 Aspose.OCR 许可证:`License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Linux 上路径分隔符错误** | 硬编码的 `\` 在非 Windows 系统上失效。 | 使用 `Path.Combine` 或使用 `/` 的原始字符串字面量。 | +| **文本不可搜索** | `EmbedOriginalImage` 被设为 `false` 或 OCR 未启用。 | 确保 `PdfExportOptions.EmbedOriginalImage = true`,并正确初始化 OCR 引擎。 | + +## 进阶:在不需要 OCR 时将 TIF 转为 PDF + +如果只想 **convert TIF to PDF** 而不需要隐藏的文本层,可以完全跳过 OCR 步骤: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +此技巧适用于仅需归档扫描件且不要求可搜索性的场景。 + +## 完整可运行示例(复制粘贴即用) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +运行程序,打开 `output.pdf`,你会看到原始 TIFF 的忠实复制,并带有隐藏的可选文本层——这正是 **create searchable pdf** 在实际中的含义。 + +## 结论 + +我们已经完整演示了在 C# 中实现 **create searchable pdf** 的工作流。从原始 TIFF 出发,**generate pdf from image**,选择 **embed image pdf** 以保持视觉完整性,并使用 Aspose.OCR 完成全套 **ocr to pdf c#** 流程。 + +欢迎根据需要调整 `PdfExportOptions`(压缩、PDF 版本等),或将多张图像串联实现批量处理。下一步,你可以尝试添加密码保护、数字签名,甚至将多个可搜索 PDF 合并为一个主文档。 + +如果你对将此方案扩展到成千上万文件或集成到 ASP.NET API 有疑问,欢迎在下方留言或在 GitHub 上私信我——祝编码愉快! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/chinese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..d1816033f --- /dev/null +++ b/ocr/chinese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,180 @@ +--- +category: general +date: 2026-04-11 +description: 在 C# 中使用 Aspose OCR 从图像中提取文本。了解如何加载图像进行 OCR,并使用 GPU 支持识别 TIFF 文件中的文本。 +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: zh +og_description: 使用 Aspose OCR 在 C# 中从图像提取文本。本教程展示了如何加载图像进行 OCR,并使用 GPU 加速识别 TIFF 中的文本。 +og_title: 使用 C# 从图像提取文本 – 完整 OCR 指南 +tags: +- OCR +- C# +- Aspose +- GPU +title: 在 C# 中从图像提取文本 – 完整 OCR 指南 +url: /zh/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从图像中提取文本(C#)– 完整 OCR 指南 + +是否曾需要 **从图像中提取文本**,却不确定哪个库能够在处理巨大的 TIFF 时不崩溃?你并不孤单。在许多实际项目中——比如发票数字化或扫描书籍的归档——能够加载图像进行 OCR 并快速识别 TIFF 文本往往是成败关键。 + +在本指南中,我们将手把手演示使用 Aspose OCR for .NET 完成上述任务。完成后,你将拥有一个可运行的 C# 控制台应用程序,能够加载高分辨率扫描件,启动 GPU 加速处理(并在必要时优雅回退),并输出纯文本结果。没有缺失的环节,也没有“请参阅文档”的死胡同。 + +## 你需要准备的环境 + +- **.NET 6 或更高版本**(代码可在任何近期 SDK 上编译) +- **Aspose.OCR for .NET** NuGet 包 + `dotnet add package Aspose.OCR` +- 一个 **大型 TIFF** 或其他你想进行 OCR 的图像格式 + (示例使用 `large_scan.tif`) +- (可选)支持 CUDA 11+ 的 GPU —— 如果没有,库会自动切换到 CPU 模式。 + +就这些。让我们开始吧。 + +![使用 Aspose OCR 在 C# 中从图像中提取文本](image-placeholder.png "使用 Aspose OCR 在 C# 中从图像中提取文本") + +## 第一步:从图像中提取文本 – 初始化 OCR 引擎 + +在处理任何图像之前,需要先创建一个 `OcrEngine` 实例。该引擎保存所有控制识别过程的设置。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**为什么这很重要:** +`ProcessingMode.Gpu` 可以在现代显卡上将识别时间缩短数秒,但将 `ProcessingMode.Auto`(或保持默认)设为更安全,适用于可能没有 GPU 的环境。`GpuMemoryLimit` 限制是实用技巧——没有它,巨大的图像可能会占用全部显存并导致其他应用崩溃。 + +## 第二步:加载图像进行 OCR – 将 TIFF 读取到内存 + +引擎准备好后,需要把要分析的图片喂给它。Aspose 提供的 `ImageStream.FromFile` 能够抽象掉格式处理细节。 + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**内部发生了什么?** +`ImageStream.FromFile` 会将文件读取为流,并自动检测图像格式(TIFF、PNG、JPEG 等)。如果处理多页 TIFF,Aspose 会将每一页视为单独的帧;需要时可以随后遍历它们。 + +## 第三步:从 TIFF 识别文本 – 运行 OCR 引擎 + +图像加载完毕后,重活开始。`Recognize` 方法返回一个 `OcrResult` 对象,其中包含提取的文本以及一些实用的元数据字段。 + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**为什么只调用一次 `Recognize`?** +因为引擎在第一次运行后会缓存内部结构,单次调用即可满足大多数场景。如果需要处理多页,复用同一个 `OcrEngine` 实例——这可以避免重新初始化 GPU 上下文的开销。 + +## 第四步:显示结果 – 输出提取的文本 + +最后,我们将识别得到的字符串输出到控制台。在真实应用中,你可能会把它写入数据库或文件。 + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**预期输出:** +如果 `large_scan.tif` 包含一张打印的发票,你会看到类似如下内容: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +具体布局取决于源图像,但关键是你已经拥有 **extract text from image** 的结果,准备好进行后续处理。 + +## 第五步:故障排查与特殊情况 + +### GPU 未检测到? + +如果在没有兼容 GPU 的机器上运行示例,使用 `ProcessingMode.Auto` 时引擎会静默回退到 CPU。若想显式强制 CPU 模式,可将前面的代码行替换为: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### 内存占用巨大的 TIFF + +非常大的扫描(例如 10 000 × 10 000 像素)仍可能超出我们设定的 1 GB GPU 上限。此时,可以提升 `GpuMemoryLimit`(前提是有剩余显存),或在送入引擎前先对图像进行降采样: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### 多页文档 + +如果你的 TIFF 包含多页,可使用以下方式遍历: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### 语言与字体支持 + +Aspose OCR 能自动检测拉丁文字,但对于西里尔文、阿拉伯文或自定义字体,可能需要提供相应的语言包: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## 专业技巧与最佳实践 + +- **复用引擎**:为每张图像创建新的 `OcrEngine` 会导致明显的延迟。 +- **批量处理**:处理数十个 TIFF 时,可将它们排队并使用并行线程——但要注意 GPU 显存竞争。 +- **验证输出**:OCR 并非完美;对 `ocrResult.Text` 进行简单的拼写检查或正则验证,以捕获明显的误识别。 +- **记录性能**:在 `Recognize` 前后使用 `Stopwatch` 测量耗时,以决定在你的环境中是否值得使用 GPU 加速。 + +## 结论 + +现在,你已经拥有一个完整的、端到端的示例,能够使用 Aspose OCR 在 C# 中 **extract text from image**。通过加载图像进行 OCR、调用引擎识别 TIFF 文本,并处理 GPU 与 CPU 场景,本教程为你提供了可直接用于发票、护照或任何扫描文档的生产级基础。 + +接下来可以尝试将 TIFF 换成多页 PDF,实验自定义语言包,或将输出管道化到自然语言处理流程,实现自动化数据抽取。可能性无限——祝编码愉快! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/chinese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..b6b1af28e --- /dev/null +++ b/ocr/chinese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-04-11 +description: 使用 Aspose OCR 批处理在 C# 中提取 TIFF 文件的文本。了解如何高效处理批量 OCR 并获取实时进度反馈。 +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: zh +og_description: 使用 Aspose OCR 批处理在 C# 中从 TIFF 文件提取文本。本教程逐步演示如何进行批量 OCR 处理并读取进度。 +og_title: 在 C# 中使用批量 OCR 从 TIFF 提取文本 – 完整指南 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: 在 C# 中使用批量 OCR 从 TIFF 提取文本 – 完整指南 +url: /zh/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从 TIFF 中提取文本 – 批量 OCR 完整指南 + +是否曾需要**从 TIFF**文件中提取文本,但在批处理阶段卡住了?你并不是唯一遇到这种情况的人。在许多文档自动化项目中,处理数十个高分辨率的 TIF 图像很快会成为瓶颈——尤其是当你想要实时的进度反馈时。 + +好消息是?使用 Aspose OCR,你可以在几行代码中**process batch OCR**,获取实时进度事件,并输出每个图像的识别文本。在本教程中,我们将逐步演示一个可直接运行的 C# 控制台应用程序,完成这些操作。 + +我们将覆盖你需要了解的所有内容:必需的包、每行代码为何重要、缺失文件等边缘情况,以及如何验证结果。完成后,你就可以将示例直接放入自己的解决方案中,立即开始从 TIFF 图像中提取文本。 + +## 你需要的条件 + +- **.NET 6 或更高**(代码同样可以在 .NET Core 上编译) +- **Aspose.OCR for .NET** NuGet 包 – `Install-Package Aspose.OCR` +- 一个包含若干你想读取的 **TIFF** 图像的文件夹(演示使用 `img1.tif`、`img2.tif`、`img3.tif`) +- 任意你喜欢的 IDE——Visual Studio、Rider 或 VS Code 都可以 + +无需额外配置;该库自带 OCR 引擎,无需安装外部本机二进制文件。 + +--- + +## 第一步 – 创建 OCR 引擎实例 + +首先需要实例化一个 `OcrEngine`。可以把它看作分析每个像素并将其转化为字符的大脑。 + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **为什么这很重要:** +> 引擎保存内部语言模型和设置(例如 DPI、语言)。只创建一次并在批处理中重复使用,比对每张图像实例化新引擎要高效得多。 + +--- + +## 第二步 – 绑定实时进度事件 + +如果你正在处理数十个 TIFF 文件,进度指示器可以帮助你避免怀疑应用是否卡住。 + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` 事件在每张图像处理完毕后触发,提供 `Current`、`Total` 和 `Percentage`。这就是大多数开发者忘记实现的 **process batch OCR** 反馈循环。 + +--- + +## 第三步 – 构建图像流列表 + +Aspose.OCR 使用 `ImageStream` 对象。最简单的方式是从磁盘加载每个 TIFF。 + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **提示:** +> 如果文件夹是动态的,请将硬编码的列表替换为 `Directory.GetFiles(path, "*.tif")` 并使用 `Select(ImageStream.FromFile)` ——这样你就可以真正 **process batch OCR**,无需手动更新。 + +--- + +## 第四步 – 运行批量 OCR 处理 + +现在开始进行繁重的工作。`ProcessBatch` 返回一个只读的 `OcrResult` 对象列表,每个对象包含提取的文本和置信度分数。 + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **为什么这很高效:** +> 引擎在所有图像之间复用相同的语言模型,与单图像调用相比显著降低内存消耗。 + +--- + +## 第五步 – 显示或存储识别文本 + +最后,遍历结果。在实际项目中,你可能会将它们写入数据库或 JSON 文件,但在本演示中我们仅将其打印到控制台。 + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**预期的控制台输出**(为简洁起见已截断): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +如果某张图像处理失败,`result.Text` 将为空字符串,且 `ProgressChanged` 事件仍会将该项标记为已处理——因此你可以单独记录失败情况。 + +--- + +## 进度事件处理器(完整代码) + +将此方法放在 `BatchDemo` 类中的任意位置——最好在 `Main` 方法之后。 + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **专业提示:** +> 如果你在构建桌面应用,可以将此输出重定向到 UI 进度条;相同的事件同样适用于 WinForms、WPF,甚至 ASP.NET Core SignalR 通知。 + +--- + +## 完整、可直接运行的示例 + +将所有内容整合后,下面是完整的程序,你可以复制粘贴到新的控制台项目中。 + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +将文件保存为 `Program.cs`,运行 `dotnet add package Aspose.OCR`,将 `YOUR_DIRECTORY` 替换为实际路径,然后按 **Ctrl+F5**。你应该会看到进度数字,随后是每个 TIFF 的提取文本。 + +--- + +## 处理常见边缘情况 + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **缺失或损坏的 TIFF** | `ImageStream.FromFile` throws `FileNotFoundException` or `ArgumentException`. | 将列表创建包装在 `try/catch` 中,跳过无效文件并记录问题。 | +| **非常大的图像(>10 MP)** | OCR 可能会消耗大量内存并导致变慢。 | 在处理前降低 DPI:`ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **非英文文本** | 默认语言模型是英文。 | 设置 `ocrEngine.Language = Language.Spanish;`(或任何受支持的语言)。 | +| **需要保存结果** | 控制台输出不是持久化的。 | 使用 `File.WriteAllText` 将 `result.Text` 写入 `.txt` 文件。 | + +--- + +## 后续步骤与相关主题 + +- **Extract text from PDF** – 类似的 API,只需将 `ImageStream` 替换为 `PdfDocument`。 +- **Parallel batch OCR** – 对于大规模工作负载,可在独立线程上启动多个 `OcrEngine` 实例;请记得遵守许可限制。 +- **Post‑processing** – 将 OCR 输出通过拼写检查器或正则表达式处理,以清除常见的 OCR 伪影。 + +所有这些扩展仍然基于 **process batch OCR** 的核心思想,并且可以逐步添加。 + +--- + +## 结论 + +我们刚刚演示了如何使用 Aspose OCR 在 C# 中通过 **process batch OCR** 高效地**从 TIFF 文件中提取文本**。示例创建了一个引擎,订阅进度事件,加载图像流列表,运行批处理,并打印每个结果。 + +从这里你可以将输出集成到数据库,生成可搜索的 PDF,或将文本输入下游的 NLP 流水线。可能性无限——可以尝试语言设置、 DPI 调整和并行执行,以适应你的特定工作负载。 + +有问题或想分享你如何自定义批处理?在下方留言吧,祝编码愉快! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/chinese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..06e77b510 --- /dev/null +++ b/ocr/chinese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-04-11 +description: 学习如何使用 Aspose OCR 在 C# 中识别 PNG 中的文字并提取图像文本。包括 C# 加载图像文件的步骤、拼写检查以及完整代码。 +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: zh +og_description: 使用 C# 轻松识别 PNG 中的文本。请按照本分步指南加载图像文件(C#)、提取图像文本(C#),并进行拼写检查。 +og_title: 在 C# 中从 PNG 识别文本 – 完整 OCR 教程 +tags: +- OCR +- C# +- Aspose +title: 在 C# 中识别 PNG 文本 – 完整的 OCR 与拼写检查指南 +url: /zh/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从 PNG 识别文本 – 完整的 C# OCR 与拼写检查教程 + +是否曾经需要 **从 PNG 识别文本**,却不确定该选哪个库?你并不孤单;很多开发者在第一次处理基于图像的数据提取时都会遇到这个难题。好消息是?使用 Aspose OCR,你可以在 C# 中加载图像文件、提取文本,甚至运行内置的拼写检查器——全部只需几行代码。 + +在本指南中,我们将完整演示整个流程:加载 PNG、调用 OCR 引擎,最后进行拼写检查。阅读完毕后,你将能够在 **C# 项目中从图像提取文本**,无需在零散的文档中寻找答案。无需任何 OCR 先验经验,只需一个 .NET 开发环境。 + +## 你需要准备的东西 + +- **.NET 6.0**(或任意近期的 .NET 版本)——API 在 .NET Core 和 Framework 上表现一致。 +- **Aspose.OCR for .NET** NuGet 包——通过 `dotnet add package Aspose.OCR` 安装。 +- 一张 **包含可读文字的 PNG 图像**(例如放在你可控文件夹中的 `letter.png`)。 +- 一个代码编辑器或 IDE(Visual Studio、VS Code、Rider——随你喜欢)。 + +就这些。无需额外的 OCR 引擎、无需本地 DLL,只有一个干净的托管包。 + +--- + +## 第一步:在 C# 中加载 PNG 图像文件 + +在 OCR 引擎能够工作之前,需要一个指向图像的流。Aspose 提供了 `ImageStream.FromFile`,它抽象了文件系统的细节。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **小技巧:**如果你的图像作为资源嵌入或来自网络请求,可以使用 `ImageStream.FromBytes(byte[])`——无需触碰文件系统。 + +### 为什么加载很重要 + +正确加载图像可以确保 OCR 引擎收到它期望的像素数据。流损坏会导致 `Recognize` 抛异常,后期调试会浪费大量时间。 + +--- + +## 第二步:初始化 OCR 引擎 + +创建 `OcrEngine` 实例代价不高,但你可能想为特定场景(例如多语言文档)微调语言或精度设置。默认构造函数对英文文本已经足够。 + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### 为什么需要引擎实例? + +引擎保存了配置(语言、预处理过滤器等)。将配置与图像分离后,你可以在多个文件之间复用同一个引擎——这对批处理非常友好。 + +--- + +## 第三步:从 PNG 识别文本 + +魔法时刻到来了。`Recognize` 返回一个 `OcrResult` 对象,里面包含原始字符串、置信度分数等信息。 + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**预期输出**(假设 `letter.png` 上写着 “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +如果图像包含多行,结果会保留换行符,便于后续处理。 + +### 边缘情况:低分辨率 PNG + +如果 OCR 结果出现乱码,考虑对图像进行放大或调整 `ocrEngine.PreprocessingOptions`。低 DPI 图像往往缺失引擎依赖的细节。 + +--- + +## 第四步:运行内置拼写检查器 + +Aspose OCR 附带了一个轻量级的拼写检查模块,可直接作用于 OCR 结果。此步骤帮助你捕获诸如 “H3llo” 之类的误识别。 + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**示例输出**(若 OCR 将 “World” 误读为 “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### 为什么要进行拼写检查? + +OCR 永远达不到 100 % 的完美,尤其在噪声背景下。快速的拼写检查可以在将文本送入下游分析或数据库之前过滤掉明显错误。 + +--- + +## 第五步:完整示例 – 一键运行 + +下面是完整的、可直接运行的程序。复制粘贴到新建的控制台项目中,修改图像路径后按 **F5** 即可。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**运行演示** 会先打印 OCR 文本,再输出任何拼写建议。它适用于任何包含清晰印刷英文的 PNG。若需其他语言,只需相应设置 `ocrEngine.Language`。 + +--- + +## 常见问题与注意事项 + +| 问题 | 答案 | +|----------|--------| +| *我可以处理 JPEG 或 BMP 文件吗?* | 当然可以——`ImageStream.FromFile` 支持 Aspose 所支持的所有格式(PNG、JPEG、BMP、TIFF)。 | +| *如果图像在内存流中怎么办?* | 使用 `ImageStream.FromBytes(byteArray)` 或 `ImageStream.FromStream(stream)`。 | +| *拼写检查器是否支持多语言?* | 支持,它会遵循 OCR 引擎上设置的语言。 | +| *如何提升倾斜图像的识别准确率?* | 在调用 `Recognize` 前启用 `ocrEngine.PreprocessingOptions.Deskew = true;`。 | +| *Aspose.OCR 是否需要许可证?* | 免费试用可处理最多 100 页。生产环境请获取许可证以去除水印。 | + +--- + +## 后续步骤 – 超越基础 OCR + +既然已经能够 **从 PNG 识别文本** 并 **在 C# 中提取图像文本**,可以考虑以下扩展: + +1. **批量处理** – 遍历目录下的 PNG,分别将 OCR 结果写入对应的 `.txt` 文件。 +2. **与 Azure Cognitive Services 集成** – 将 Aspose OCR 与云端翻译 API 结合,实现多语言流水线。 +3. **结构化数据抽取** – 对 `recognizedText` 使用正则表达式,提取日期、发票号或地址等信息。 +4. **性能调优** – 对大批量处理复用单个 `OcrEngine` 实例,并开启多线程。 + +这些都基于我们已经讲解的核心步骤,让你能够把简单的图像转化为可操作的数据。 + +--- + +## 结论 + +我们完整演示了如何在 C# 中 **从 PNG 识别文本**、**正确加载图像文件**,并在 **从图像提取文本** 的同时进行拼写错误检测。代码自包含,解释覆盖了“怎么做”和“为什么这么做”,为你今后任何基于 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 c7b6c9546..665f64f2a 100644 --- a/ocr/czech/net/ocr-configuration/_index.md +++ b/ocr/czech/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Odemkněte sílu rozpoznávání OCR obrázků v .NET s Aspose.OCR. Snadno extra Odemkněte výkonné OCR schopnosti s Aspose.OCR pro .NET. Plynule extrahujte text z obrázků. ### [OCROperation se seznamem v rozpoznávání OCR obrázků](./ocr-operation-with-list/) Odemkněte potenciál Aspose.OCR pro .NET. Snadno provádějte rozpoznávání OCR obrázků pomocí seznamů. Zvyšte produktivitu a extrakci dat ve svých aplikacích. +### [Jak zakázat OCR v C# – Offline průvodce Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Naučte se, jak v C# vypnout OCR a pracovat offline s Aspose OCR, včetně nastavení a optimalizace výkonu. ### Běžné případy použití - **Extrahovat text z obrázků** ze skenovaných faktur pro automatizované účetnictví. @@ -98,4 +100,4 @@ A: Ano, objekt `OcrResult` poskytuje hodnoty důvěry, které můžete programov {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/czech/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..0cb4bff0e --- /dev/null +++ b/ocr/czech/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,169 @@ +--- +category: general +date: 2026-04-11 +description: Naučte se, jak v Aspose OCR pro C# vypnout OCR, aby fungoval offline, + extrahovat text z obrázku bez připojení k internetu a správně načíst obrázek pro + OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: cs +og_description: Jak zakázat OCR v Aspose OCR pro C# a spustit offline, extrahovat + text z obrázku bez potřeby internetu a snadno načíst obrázek pro OCR. +og_title: Jak zakázat OCR v C# – Offline průvodce Aspose OCR +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Jak zakázat OCR v C# – Offline průvodce Aspose OCR +url: /cs/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zakázat OCR v C# – Offline průvodce Aspose OCR + +Už jste se někdy zamysleli **jak zakázat OCR**, když potřebujete skutečně offline řešení? Možná vytváříte zabezpečenou desktopovou aplikaci, která se nemůže spoléhat na síťové připojení, nebo prostě chcete předejít nečekaným stažení souborů. Ať už je to jakkoli, dobrá zpráva je, že Aspose OCR vám umožní vypnout automatické stahování zdrojů, nasměrovat jej na lokální složku a mít vše on‑premises. V tomto tutoriálu také uvidíte, jak **extrahovat text z obrázku** a správně **načíst obrázek pro OCR** bez jakýchkoli problémů. + +Provedeme kompletní, připravený příklad, který ukazuje každý krok – od inicializace enginu až po výpis rozpoznaného japonského textu. Žádná externí dokumentace, žádná skrytá magie; jen čistý C# kód, který můžete dnes vložit do svého projektu. Na konci budete vědět, proč je důležité vypnout funkci automatického stahování, jak nastavit cestu ke zdrojům a na jaké úskalí si dát pozor. + +## Požadavky + +- .NET 6.0 (nebo jakákoli novější verze .NET) nainstalovaná ve vašem počítači. +- NuGet balíček Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Složka, která již obsahuje jazykové zdroje, jež potřebujete (např. japonský model). +- Soubor obrázku (`japan_doc.png`), na který chcete spustit OCR. + +Pokud vám chybí jazykové balíčky, stáhněte si je jednou z portálu Aspose, rozbalte do složky např. `AsposeOCRResources` a jste připraveni. Po vypnutí funkce automatického stahování se žádná další stažení nebudou provádět. + +![Jak zakázat OCR offline](/images/how-to-disable-ocr.png "ilustrace jak zakázat OCR") + +## Krok 1 – Vytvoření instance OCR enginu + +Prvním krokem je vytvořit instanci `OcrEngine`. Představte si tento objekt jako mozek, který bude číst váš obrázek. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Proč je to důležité:** Bez enginu nemůžete nic konfigurovat. Objekt drží všechna nastavení, včetně klíčového příznaku, který knihovně říká, zda může přistupovat k internetu. + +## Krok 2 – Vypnutí automatického stahování zdrojů + +Ve výchozím nastavení se Aspose OCR pokusí načíst chybějící jazykové soubory za běhu. Pro zachování offline režimu přepněte přepínač `AutoDownloadResources` na `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Tip:** Vypnutí této funkce nejen zaručuje soukromí, ale také urychluje první rozpoznání, protože engine neplýtvá časem kontrolou aktualizací. + +## Krok 3 – Nastavení cesty k lokální složce se zdroji + +Nyní řekněte enginu, kde se nachází předem stažené jazykové balíčky. Jedná se o cestu, kterou jste nastavili v předchozích požadavcích. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Co může jít špatně?** Pokud je cesta špatná nebo chybí požadovaný jazykový soubor, engine vyhodí `ResourceNotFoundException`. Zkontrolujte pravopis složky a ujistěte se, že japonský model (`jpn.traineddata`) je přítomen. + +## Krok 4 – Výběr lokálního jazykového modelu + +Zvolte jazyk, který máte skutečně na disku. V našem příkladu používáme japonštinu, ale můžete nahradit `Language.Japanese` libovolným jiným jazykem, který jste si stáhli. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Hraniční případ:** Některé jazyky vyžadují dodatečné slovníky (např. čínština). Ujistěte se, že i tyto pomocné soubory jsou ve stejné složce se zdroji. + +## Krok 5 – Načtení obrázku pro OCR + +Zde **načteme obrázek pro OCR**. Metoda `ImageStream.FromFile` načte soubor do proudu, který Aspose může zpracovat. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tip:** Podporované formáty zahrnují PNG, JPEG, BMP a TIFF. Pokud potřebujete pracovat s PDF, nejprve každou stránku převedete na obrázek. + +## Krok 6 – Spuštění rozpoznávacího procesu + +Nyní engine skutečně čte pixely a snaží se je převést na text. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Proč může být tento krok pomalý:** OCR je náročné na CPU, zejména u vysoce rozlišených obrázků. Pokud vás výkon trápí, zvažte předzmenšení obrázku před rozpoznáním. + +## Krok 7 – Výpis extrahovaného textu + +Nakonec **extrahujeme text z obrázku** a vypíšeme jej do konzole. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Spuštění programu by mělo zobrazit japonské znaky, které byly v souboru `japan_doc.png`. Pokud je vše nastaveno správně, uvidíte čistý blok Unicode textu ve vaší konzoli. + +### Očekávaný výstup + +``` +これはサンプルの日本語テキストです。 +``` + +(Váš skutečný výstup bude záviset na obsahu obrázku.) + +## Časté úskalí a jak se jim vyhnout + +| Problém | Proč se vyskytuje | Řešení | +|-------|----------------|-----| +| **Chybějící jazykový soubor** | `AutoDownloadResources` je nastaven na false, takže engine nemůže soubor stáhnout. | Ověřte, že `ResourcesPath` ukazuje na složku obsahující `jpn.traineddata`. | +| **Nesprávná cesta k obrázku** | `ImageStream.FromFile` vyhodí `FileNotFoundException`. | Použijte absolutní cesty nebo se ujistěte, že pracovní adresář je nastaven správně. | +| **Nepodporovaný formát obrázku** | Aspose čte jen určité formáty. | Před voláním `FromFile` převěďte obrázek na PNG nebo JPEG. | +| **Nedostatek paměti u velkých obrázků** | OCR načte celý obrázek do paměti. | Zmenšete nebo rozdělete obrázek, nebo zvýšte limit paměti procesu. | + +## Rozšíření příkladu + +- **Dávkové zpracování:** Procházejte složku s obrázky, volajte stejný rozpoznávací kód a výsledek uložte do samostatného `.txt` souboru. +- **Různé jazyky:** Nahraďte `Language.Japanese` za `Language.English` (nebo jiný) po umístění odpovídajících souborů zdrojů. +- **Vlastní předzpracování:** Použijte Aspose.Imaging k deskewování nebo zlepšení kontrastu před OCR pro vyšší přesnost. + +## Závěr + +Nyní víte **jak zakázat OCR** v Aspose OCR pro C# a spustit jej zcela offline. Nastavením `AutoDownloadResources` na `false`, nasměrováním enginu na lokální složku se zdroji a správným **načtením obrázku pro OCR** můžete spolehlivě **extrahovat text z obrázku** bez jakéhokoli přístupu k internetu. Tento přístup je ideální pro zabezpečená prostředí, CI pipeline nebo jakýkoli scénář, kde je síťový přístup omezený. + +Jste připraveni na další krok? Zkuste zpracovat celou složku naskenovaných PDF, experimentujte s různými jazykovými balíčky nebo integrujte výsledek OCR do prohledávatelné databáze. Offline nastavení, které jste dnes vytvořili, je solidním základem pro jakýkoli on‑premises workflow zpracování dokumentů. + +Šťastné programování a neváhejte zanechat komentář, pokud narazíte na potíže! + +{{< /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 73afa8ddc..f275084d9 100644 --- a/ocr/czech/net/ocr-optimization/_index.md +++ b/ocr/czech/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Prozkoumejte Aspose.OCR pro .NET. Zvyšte přesnost OCR pomocí předzpracovatel Zvyšte přesnost OCR s Aspose.OCR pro .NET. Opravujte pravopis, přizpůsobujte slovníky a dosáhněte bezchybného rozpoznávání textu s lehkostí. ### [Uložit vícestránkový výsledek jako dokument v OCR rozpoznávání obrázků](./save-multipage-result-as-document/) Odemkněte potenciál Aspose.OCR pro .NET. Jednoduše uložte vícestránkové OCR výsledky jako dokumenty s tímto komplexním krok‑za‑krokem průvodcem. +### [Jak zlepšit přesnost OCR v C# s Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Naučte se techniky pro zvýšení přesnosti OCR v C# pomocí Aspose OCR. ## Často kladené otázky diff --git a/ocr/czech/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/czech/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..7b5336b8d --- /dev/null +++ b/ocr/czech/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Naučte se, jak vylepšit OCR v C# rozpoznáváním textu z JPG, narovnáním + obrázků a odstraňováním šumu pomocí Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: cs +og_description: Objevte, jak zlepšit OCR rozpoznáváním textu z JPG, vyrovnáváním obrazu + a odstraňováním šumu — kompletní průvodce C#. +og_title: Jak zlepšit přesnost OCR v C# pomocí Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Jak zlepšit přesnost OCR v C# pomocí Aspose OCR +url: /cs/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zlepšit přesnost OCR v C# s Aspose OCR + +Už jste se někdy zamysleli nad **jak zlepšit OCR** výsledky, když vaše skeny vypadají spíše jako abstraktní umění než čitelný text? Nejste v tom sami. V mnoha reálných projektech – například faktury, účtenky nebo ručně psané poznámky – jsou zdrojové obrázky často nakřivené, zrnitější nebo prostě jen hlučné. Dobrá zpráva? Aspose OCR vám poskytuje řadu ovládacích prvků předzpracování, které dokážou ten nepořádek proměnit v čisté, strojově čitelné znaky. V tomto tutoriálu projdeme kompletním, spustitelným příkladem, který ukazuje **jak zlepšit OCR** pomocí **rozpoznání textu z JPG**, korekce sklonu obrázku a odstranění nežádoucího šumu. + +> *Tip:* Pokud přeskočíte předzpracování, pravděpodobně skončíte s nečitelným výstupem, který vypadá jako kryptické křížovky. Vyhněme se tomu. + +![Jak zlepšit OCR pomocí předzpracování Aspose OCR](https://example.com/ocr-preprocess.png "jak zlepšit OCR pomocí Aspose OCR") + +## Co se naučíte + +V následujících několika minutách uvidíte: + +1. Jak nastavit engine Aspose OCR pro optimální přesnost. +2. Přesný kód potřebný k **rozpoznání textu z JPG** souborů. +3. Proč má povolení *AutoDeskew* a *RemoveNoise* význam a jak je nastavit. +4. Jak **extrahovat text z obrázku** souborů bez psaní vlastního filtru. +5. Běžné úskalí (chybějící soubor, nepodporovaný formát) a rychlé opravy. + +Na konci budete mít jedinou C# konzolovou aplikaci, která dokáže libovolný JPG vyčistit a vypsat extrahovaný řetězec – připravený pro další zpracování nebo uložení. + +## Požadavky + +- .NET 6.0 SDK nebo novější (příklad používá top‑level statements pro stručnost). +- NuGet balíček Aspose.OCR (`dotnet add package Aspose.OCR`). +- Ukázkový JPG obrázek (nazvaný `input.jpg`) umístěný ve stejné složce jako spustitelný soubor. +- Základní znalost C# — žádné pokročilé koncepty nejsou potřeba. + +Pokud už máte projekt, stačí kód vložit; jinak vytvořte novou konzolovou aplikaci: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Nyní se ponořme do kódu. + +## Jak zlepšit OCR: Přehled nastavení předzpracování + +Jádrem **jak zlepšit OCR** je objekt `PreprocessSettings`. Představte si ho jako mini‑editor obrázků, který běží *před* samotným rozpoznávacím enginem. Níže je rychlý přehled nejvlivnějších příznaků: + +| Nastavení | Co dělá | Typický případ použití | +|------------------------|-----------------------------------------------------------|------------------------| +| `AutoDeskew` | Používá algoritmus deep‑learning pro korekci sklonu. | Naskenované stránky, které jsou mírně nakloněné. | +| `AdaptiveThreshold` | Zvyšuje kontrast u snímků s nízkým osvětlením nebo vybledlých. | Staré účtenky s vybledlým inkoustem. | +| `RemoveNoise` | Používá filtr Gaussian‑blur k potlačení šumových bodů. | Fotografie pořízené bleskem smartphonu. | +| `NoiseRemovalStrength` | Řídí agresivitu (1 = nízká, 3 = vysoká). | Doladit podle toho, jak zrnitý je zdroj. | + +Povolení těchto možností je v podstatě „tajnou ingrediencí“ pro **jak zlepšit OCR** na nedokonalých vstupech. + +## Rozpoznat text z JPG pomocí Aspose OCR + +Níže je kompletní, připravený k spuštění program. Každý řádek je okomentován, abyste viděli *proč* daný kus existuje, ne jen *co* dělá. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Očekávaný výstup + +Pokud `input.jpg` obsahuje frázi „Invoice #12345 – Total: $256.78“, konzole vypíše: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Všimněte si, že výstup je čistý, s pomlčkou a znakem dolaru zachovaným – přesně to, co očekáváte při **extrahování textu z obrázku** souborů. + +## Jak korigovat sklon obrázku pomocí nastavení předzpracování + +Proč je korekce sklonu důležitá? Už 2‑stupňový náklon může zmást fázi segmentace znaků, což vede k nesprávně rozpoznaným písmenům. Příznak `AutoDeskew` spouští pod kapotou konvoluční neuronovou síť, která detekuje dominantní úhel a otočí obrázek zpět na základní úroveň. + +Pokud potřebujete větší kontrolu, můžete úhel nastavit ručně: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Kdy použít ruční korekci sklonu:** Pokud víte, že kamera systematicky naklání obrázky o pevný úhel (např. pevně instalovaný skener), pevné nastavení úhlu ušetří malé množství výpočetního času. + +## Jak odstranit šum pro čistší extrakci + +Šum se projevuje jako náhodné tečky nebo zrno, zejména na fotografiích pořízených při špatném osvětlení. Příznak `RemoveNoise` aplikuje bilaterální filtr, který vyhlazuje pozadí a zachovává hrany (tedy skutečné znaky). Vlastnost `NoiseRemovalStrength` vám umožní nastavit agresivitu: + +| Síla | Efekt | +|------|-------| +| 1 | Lehké vyhlazení — vhodné pro mírně zrnitý obrázek. | +| 2 | Vyvážené — funguje pro většinu snímků ze smartphonu. | +| 3 | Silné vyhlazení — použijte, když je obrázek extrémně šumivý, ale dejte pozor na rozmazání tenkých tahů. | + +Pokud narazíte na situaci, kdy po silném vyhlazení malé písmo přestane být čitelné, stačí snížit sílu nebo filtr úplně vypnout. + +## Extrahovat text z obrázku: mimo JPG + +Zatímco naše ukázka se zaměřuje na JPG, Aspose OCR podporuje PNG, BMP, TIFF a dokonce i PDF stránky. Pro **extrahování textu z obrázku** v jiných formátech než JPG stačí změnit příponu souboru v `ImageStream.FromFile`. U vícestránkových TIFF můžete projít každou stránku ve smyčce: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Tento úryvek ukazuje, jak můžete workflow **jak zlepšit OCR** rozšířit na dávkové zpracování celé sady naskenovaných dokumentů. + +## Běžné úskalí a jak je opravit + +| Příznak | Pravděpodobná příčina | Rychlá oprava | +|------------------------|---------------------------------------------------------------|---------------| +| Prázdný výstup | Obrázek je po předzpracování úplně bílý (příliš agresivní prahování) | Snižte `NoiseRemovalStrength` nebo nastavte `AdaptiveThreshold = false`. | +| Zkreslené znaky | Špatný jazykový model (výchozí je Angličtina) | Nastavte `ocrEngine.Settings.Language = Language.English;` nebo načtěte vlastní jazykový balíček. | +| Pád při velkých souborech | Nedostatek paměti kvůli vysokému rozlišení obrázku | Zmenšete rozlišení pomocí `ocrEngine.Settings.ImageResizeFactor = 0.5;` před rozpoznáním. | +| Žádný výstup pro otočené skeny | `AutoDeskew` byl neúmyslně vypnutý | Povolte `AutoDeskew = true` nebo zadejte správný `DeskewAngle`. | + +Mít tyto body na paměti vám ušetří hodiny ladění, když se snažíte **jak zlepšit OCR** v produkčních pipelinech. + +## Bonus: Ladění pro rychlost vs. přesnost + +Pokud zpracováváte tisíce účtenek denně, můžete upřednostnit rychlost. Vypněte `AdaptiveThreshold` a nastavte `NoiseRemovalStrength = 1`. Naopak u právních dokumentů, kde může chybějící znak stát hodně, nechte všechny příznaky zapnuté a zvažte zvýšení `NoiseRemovalStrength` na 3. + +## Závěr + +Prošli jsme celou cestu **jak zlepšit OCR** v C# pomocí Aspose OCR: od vytvoření enginu, konfigurace předzpracování (klíčové pro *jak korigovat sklon obrázku* a *jak odstranit šum*), načtení JPG, rozpoznání textu a řešení okrajových případů. Kód je samostatný, funguje ihned a ukazuje přesné kroky, které potřebujete k **rozpoznání textu z jpg** a **extrahování textu z obrázku** souborů. + +### Co dál? + +- Vyzkoušejte další formáty obrázků (PNG, TIFF) a podívejte se, jak se stejná nastavení chovají. +- Integrujte výstup OCR do databáze nebo + +{{< /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 b178a0c01..3ca53d421 100644 --- a/ocr/czech/net/text-recognition/_index.md +++ b/ocr/czech/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Extrahovat text z obrázku v C# – Kompletní průvodce OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Kompletní průvodce pro extrakci textu z obrázků v C# pomocí Aspose.OCR, včetně výkonných... +### [Extrahovat text z TIFF pomocí dávkového OCR v C# – Kompletní průvodce](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Kompletní průvodce pro extrakci textu z TIFF souborů pomocí dávkového OCR v C# s Aspose.OCR, včetně nastavení a získání výsledků. +### [Vytvořit prohledávatelný PDF v C# – Kompletní průvodce](./create-searchable-pdf-in-c-complete-guide/) +Kompletní průvodce vytvořením prohledávatelného PDF v C# pomocí Aspose.OCR, včetně nastavení a získání výsledků. +### [Rozpoznat text z PNG v C# – Kompletní průvodce OCR a kontrolou pravopisu](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Kompletní průvodce rozpoznáváním textu z PNG souborů v C# s OCR a kontrolou pravopisu. +### [Převod obrázku na JSON – C# OCR tutoriál pro účtenky](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Naučte se převést obrázek účtenky na JSON pomocí Aspose.OCR v C# a získat strukturovaná data pro další zpracová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/czech/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/czech/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..6988901e2 --- /dev/null +++ b/ocr/czech/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Převod obrázku na JSON pomocí Aspose OCR Cloud v C#. Naučte se, jak rozpoznávat + text, extrahovat text z obrázku a zpracovávat účtenky pomocí OCR během několika + minut. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: cs +og_description: Převod obrázku na JSON pomocí Aspose OCR Cloud v C#. Tento průvodce + ukazuje, jak rozpoznat text, extrahovat text z obrázku a zpracovat účtenku pomocí + OCR. +og_title: Převod obrázku do JSON – C# OCR tutoriál pro účtenky +tags: +- OCR +- C# +- Aspose +- JSON +title: Převod obrázku do JSON – C# OCR tutoriál pro účtenky +url: /cs/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod obrázku na JSON – C# OCR tutoriál pro účtenky + +Už jste někdy potřebovali **převést obrázek na JSON**, ale nevedeli jste, kde začít? V tomto průvodci vás provedeme kompletním, end‑to‑end C# OCR tutoriálem, který vezme fotografii účtenky, rozpozná text a vytvoří úhledný JSON payload. + +Pokud jste se někdy ptali, *jak rozpoznat text* ve skenovaném dokumentu, nebo hledáte rychlý způsob, jak **extrahovat text z obrázku**, jste na správném místě. Na konci tohoto článku budete umět **zpracovat účtenku pomocí OCR** a výsledek přímo předat vašim downstream API. + +## Co budete potřebovat + +- .NET 6 SDK nebo novější (kód funguje i s .NET Core) +- Aspose Cloud API klíč – můžete získat bezplatnou zkušební verzi na portálu Aspose +- Ukázkový obrázek účtenky (`receipt.jpg`) uložený lokálně +- Váš oblíbený IDE (Visual Studio, VS Code, Rider – jakýkoliv) + +Nejsou potřeba žádné další NuGet balíčky kromě oficiálního klienta `Aspose.OCR.Cloud`. Pokud už máte SDK nainstalované, můžete rovnou začít. + +## Krok 1 – Převod obrázku na JSON: Nastavení OCR klienta + +Nejprve potřebujeme instanci `CloudOcrClient`. Tento objekt zajišťuje veškerou komunikaci se službou OCR od Aspose a vrátí výsledek ve formátu JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Proč je to důležité:** Inicializace klienta je mostem mezi vaším C# kódem a cloudovým OCR enginem. Metoda `RecognizeAsync` dělá těžkou práci – nahrává obrázek, spouští OCR engine a vrací JSON řetězec, který obsahuje rozpoznaný text, skóre důvěry a souřadnice ohraničujících boxů. + +> **Tip:** Uložte API klíč do proměnné prostředí nebo správce tajemství místo tvrdého zakódování. Tím předejdete nechtěnému úniku. + +## Krok 2 – Jak rozpoznat text z účtenky + +Nyní, když je klient připraven, podíváme se na *jak* rozpoznávání textu funguje. Aspose OCR podporuje mnoho jazyků, ale pro většinu účtenek stačí angličtina. Pokud potřebujete jiný jazyk, stačí zaměnit `Language.English` za odpovídající enum hodnotu. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Co se děje pod kapotou?** Služba spouští model hlubokého učení, který detekuje znaky, seskupuje je do slov a následně skládá řádky. Vrácený JSON vypadá přibližně takto: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Tento JSON můžete parsovat pomocí `System.Text.Json` nebo `Newtonsoft.Json` a získat jen ta pole, která vás zajímají. + +## Krok 3 – Extrahování textu z obrázku a ruční vytvoření JSON (volitelné) + +Někdy nechcete surový JSON, který Aspose poskytuje; možná potřebujete vlastní strukturu pro váš downstream servis. Níže je rychlý příklad, který deserializuje odpověď a přebaluje ji do přehlednějšího objektu. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Proč přeformátovat?** Mnoho API očekává konkrétní schéma (např. `{ "total": "12.34", "date": "2026-04-10" }`). Extrahováním jen potřebných polí udržíte payload lehký a vyhnete se úniku zbytečných OCR metadat. + +## Krok 4 – Otestujte C# OCR tutoriál s ukázkovou účtenkou + +Spusťte program z terminálu: + +```bash +dotnet run +``` + +Měli byste vidět dva bloky výstupu: + +1. Surový JSON vrácený Aspose (výsledek **convert image to json** přímo z cloudu). +2. Vlastní JSON, který jste vytvořili v předchozím kroku. + +Typický výstup vypadá takto: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Pokud dostanete chybu jako *401 Unauthorized*, zkontrolujte, zda je váš API klíč platný a zda je cesta k obrázku správná. + +## Okrajové případy a časté úskalí + +| Situace | Na co si dát pozor | Navrhované řešení | +|-----------|------------------|---------------| +| **Nízké rozlišení účtenky** | Důvěra OCR klesne pod 0,8 | Před odesláním předzpracujte obrázek (zvyšte DPI, zaostřete) | +| **Neanglické znaky** | Špatný jazykový enum | Použijte `Language.AutoDetect` nebo specifikujte správný jazyk | +| **Velké dávky účtenek** | Chyby limitu rychlosti | Implementujte exponenciální back‑off nebo požádejte Aspose o vyšší kvótu | +| **Chybějící pole** | Vlastní parser vrací `null` | Přidejte záložní logiku nebo regex vzory pro robustnější extrakci | + +## Vizualizace + +![Diagram zobrazující tok od souboru obrázku → OCR klient → JSON odpověď → vlastní parsování → finální JSON výstup](https://example.com/ocr-flow-diagram.png "převod obrázku na json") + +*Alt text:* *diagram převodu obrázku na json znázorňující kroky popsané v tomto tutoriálu.* + +## Shrnutí + +Ukázali jsme vám, jak **převést obrázek na JSON** pomocí Aspose OCR Cloud, vysvětlili *jak rozpoznat text* na účtence, předvedli způsoby **extrahování textu z obrázku** a zabalili vše do přehledného **C# OCR tutoriálu**, který můžete vložit do libovolného .NET projektu. + +Klíčové body jsou: + +- Nastavte `CloudOcrClient` s vaším API klíčem. +- Zavolejte `RecognizeAsync` a získejte JSON payload přímo ze služby. +- Volitelně přetvořte tento payload tak, aby odpovídal vašemu datovému kontraktu. + +## Co dál? + +- **Dávkové zpracování:** Procházejte složku s účtenkami a agregujte výsledky do jediného JSON pole. +- **Pokročilé parsování:** Použijte regulární výrazy nebo malý NLP model k získání položek, daní a slev. +- **Integrace:** Odesílejte finální JSON do databáze, fronty zpráv nebo Azure Function pro další automatizaci. + +Klidně experimentujte s různými formáty obrázků (PNG, TIFF) nebo vyzkoušejte **process receipt with OCR** tok na mobilně pořízených fotografiích. Možnosti jsou neomezené, jakmile máte spolehlivý způsob, jak **převést obrázek na JSON**. + +Máte otázky nebo narazili na problém? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/czech/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..c91b9dab0 --- /dev/null +++ b/ocr/czech/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Rychle vytvořte prohledávatelný PDF z obrázku. Naučte se generovat PDF + z obrázku, vložit obrázek do PDF, převést TIF na PDF a použít OCR pro PDF v C# s + Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: cs +og_description: Vytvořte okamžitě prohledávatelný PDF. Tento tutoriál ukazuje, jak + generovat PDF z obrázku, vložit obrázek do PDF, převést TIF na PDF a použít OCR + pro PDF v C#. +og_title: Vytvořte prohledávatelný PDF v C# – krok za krokem průvodce +tags: +- C# +- OCR +- PDF generation +title: Vytvoření prohledávatelného PDF v C# – Kompletní průvodce +url: /cs/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření prohledávatelného PDF v C# – Kompletní průvodce + +Už jste někdy potřebovali **vytvořit prohledávatelné PDF** ze skenovaného dokumentu, ale nevedeli jste, kde začít? Nejste sami; mnoho vývojářů narazí na stejnou překážku při práci s TIFF soubory a OCR. V tomto tutoriálu vás provedeme praktickým řešením, které vám umožní **generovat PDF z obrázku**, vložit původní obrázek pro dokonalou prohledávatelnost a zakončit čistým **OCR do PDF C#** workflow. + +Probereme vše od instalace knihovny Aspose.OCR po řešení okrajových případů, jako jsou více‑stránkové TIFFy. Na konci budete mít připravený program, který změní `input.tif` na plně prohledávatelné `output.pdf`. Žádné externí služby, žádná skrytá magie — jen čistý C# kód, který můžete vložit do libovolného .NET projektu. + +## Co budete potřebovat + +- .NET 6.0 nebo novější (kód funguje také na .NET Framework 4.7+) +- Visual Studio 2022 (nebo jakýkoli editor, který preferujete) +- Aktivní licence Aspose.OCR nebo bezplatný trial klíč (NuGet balíček funguje i bez klíče pro evaluaci) +- Ukázkový TIFF obrázek (`input.tif`) umístěný ve složce, na kterou můžete odkazovat + +> **Tip:** Uchovávejte své soubory obrázků pod 10 MB, aby nedocházelo k výkyvům paměti při zpracování velkých dávek. + +## Krok 1: Instalace Aspose.OCR a nastavení projektu + +Nejprve přidejte NuGet balíček Aspose.OCR do svého projektu. Otevřete Package Manager Console a spusťte: + +```powershell +Install-Package Aspose.OCR +``` + +Pokud dáváte přednost UI, klikněte pravým tlačítkem na **Dependencies → Manage NuGet Packages**, vyhledejte *Aspose.OCR* a klikněte na **Install**. + +Proč je tento krok důležitý: Aspose.OCR obsahuje vysoce výkonný OCR engine a vestavěný PDF exportér, takže nepotřebujete samostatné knihovny pro zpracování obrázků nebo tvorbu PDF. + +### Kompletní kostra projektu + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Poznámka:** Nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce na vašem počítači. + +## Krok 2: Načtení obrázku – *Generate PDF from Image* Základ + +Načtení zdrojového souboru je malý, ale kritický krok. Aspose.OCR očekává `ImageStream`, který abstrahuje souborové I/O a podporuje mnoho formátů (TIFF, PNG, JPEG, atd.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Proč nepředat jen cestu?** +Obal `ImageStream` zajišťuje interní bufferování a zaručuje, že OCR engine pracuje s velkými více‑stránkovými TIFFy, aniž by načítal celý soubor najednou do paměti. + +## Krok 3: Konfigurace PDF exportu – *Embed Image PDF* pro dokonalou prohledávatelnost + +Když exportujete výsledky OCR do PDF, máte dvě možnosti: vložit pouze extrahovaný text, nebo vložit původní obrázek spolu s vrstvou skrytého textu. Vložení obrázku zachovává vizuální věrnost skenu a umožňuje uživatelům později vybrat nebo kopírovat text. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Okrajový případ:** Pokud nastavíte `EmbedOriginalImage` na `false`, výsledné PDF bude menší, ale ztratí původní obrázek — užitečné pro čisté textové archivy. + +## Krok 4: Export – *OCR to PDF C#* jedním voláním + +Aspose.OCR usnadňuje těžkou práci jedním řádkem. Metoda `ExportToPdf` spustí OCR, vytvoří vrstvu skrytého textu a zapíše finální soubor. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Očekávaný výsledek + +Spuštění programu vypíše: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Otevřete `output.pdf` v libovolném prohlížeči (Adobe Reader, Edge, atd.) a zkuste vybrat text — uvidíte pod ním původní obrázek, což potvrzuje úspěšnost operace **create searchable pdf**. + +## Krok 5: Ověření PDF – Rychlé kontroly, které můžete automatizovat + +Zatímco ruční kontrola je v pořádku pro jeden soubor, můžete chtít programově ověřit, že PDF obsahuje textovou vrstvu. Aspose.PDF (sesterská knihovna) může dokument přečíst a extrahovat text: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Přidejte volání `VerifyPdfContainsText(pdfPath);` po exportu, pokud chcete automatizovanou kontrolu. + +## Časté úskalí a jak se jim vyhnout + +| Problém | Proč se stává | Řešení | +|-------|----------------|-----| +| **Out‑of‑memory na obrovských TIFF** | Načtení celého souboru najednou překročí RAM. | Použijte `ImageStream.FromFile` (jak je ukázáno) a zpracovávejte stránky po jedné, pokud máte více‑stránkové soubory. | +| **Chybějící licence vede k vodoznakům** | Evaluační režim přidává viditelný vodoznak na každou stránku. | Aplikujte svou licenci Aspose.OCR co nejdříve: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Nesprávné oddělovače cest na Linuxu** | Hard‑coded `\` selže na ne‑Windows OS. | Použijte `Path.Combine` nebo raw string literals s `/`. | +| **Text není prohledávatelný** | `EmbedOriginalImage` nastaveno na `false` nebo OCR vypnuto. | Ujistěte se, že `PdfExportOptions.EmbedOriginalImage = true` a OCR engine je správně inicializován. | + +## Bonus: Konverze TIF do PDF bez OCR (když text není potřeba) + +Pokud potřebujete jen **převést TIF do PDF** bez skryté textové vrstvy, můžete krok OCR úplně přeskočit: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Tento trik je užitečný pro archivaci skenovaných dokumentů, kde prohledávatelnost není požadována. + +## Kompletní funkční příklad (připravený ke kopírování) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Spusťte program, otevřete `output.pdf` a uvidíte věrnou repliku původního TIFF s skrytou, výběrnou textovou vrstvou — přesně to, co v praxi znamená **create searchable pdf**. + +## Závěr + +Právě jsme prošli kompletním workflow **create searchable pdf** v C#. Začínáme s raw TIFF, **generujeme pdf z obrázku**, zvolili jsme **embed image pdf** pro vizuální věrnost a ukázali kompletní pipeline **ocr to pdf c#** pomocí Aspose.OCR. + +Neváhejte upravit `PdfExportOptions` (komprese, verze PDF, atd.) nebo spojit více obrázků dohromady pro dávkové zpracování. Další krok může být přidání ochrany heslem, digitálních podpisů nebo dokonce sloučení několika prohledávatelných PDF do jednoho hlavního dokumentu. + +Máte otázky ohledně škálování na tisíce souborů nebo integrace do ASP.NET API? Zanechte komentář níže nebo mě kontaktujte na GitHubu — šťastné kódování! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/czech/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..f3e9fa3cf --- /dev/null +++ b/ocr/czech/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: Extrahujte text z obrázku pomocí Aspose OCR v C#. Naučte se, jak načíst + obrázek pro OCR a rozpoznat text z TIFF souborů s podporou GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: cs +og_description: Extrahujte text z obrázku pomocí Aspose OCR v C#. Tento tutoriál ukazuje, + jak načíst obrázek pro OCR a rozpoznat text z TIFF pomocí akcelerace GPU. +og_title: Extrahování textu z obrázku v C# – Kompletní průvodce OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Extrahovat text z obrázku v C# – Kompletní průvodce OCR +url: /cs/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahování textu z obrázku v C# – Kompletní průvodce OCR + +Už jste někdy potřebovali **extrahovat text z obrázku**, ale nebyli jste si jisti, která knihovna zvládne obrovský TIFF, aniž by se zhroutila? Nejste v tom sami. V mnoha reálných projektech – například digitalizace faktur nebo archivace naskenovaných knih – se schopnost načíst obrázek pro OCR a poté rozpoznat text z TIFF rychle stane klíčovou funkcí. + +V tomto průvodci si projdeme praktické řešení, které přesně to dělá pomocí Aspose OCR pro .NET. Na konci budete mít spustitelnou C# konzolovou aplikaci, která načte vysoce rozlišený sken, spustí zpracování akcelerované GPU (s elegantním přepnutím na CPU) a vypíše výsledek jako prostý text. Žádné chybějící části, žádné „viz dokumentaci“ slepé uličky. + +## Co budete potřebovat + +- **.NET 6 nebo novější** (kód se kompiluje s jakýmkoli aktuálním SDK) +- **Aspose.OCR for .NET** NuGet balíček + `dotnet add package Aspose.OCR` +- **Velký TIFF** nebo jakýkoli jiný formát obrázku, který chcete podrobit OCR + (v příkladu se používá `large_scan.tif`) +- (Volitelné) GPU, která podporuje CUDA 11+ – pokud ji nemáte, knihovna automaticky přepne do režimu CPU. + +To je vše. Pojďme na to. + +![Extrahování textu z obrázku pomocí Aspose OCR v C#](image-placeholder.png "Extrahování textu z obrázku pomocí Aspose OCR v C#") + +## Krok 1: Extrahování textu z obrázku – Inicializace OCR enginu + +Než může být jakýkoli obrázek zpracován, potřebujete instanci `OcrEngine`. Engine obsahuje všechna nastavení, která řídí, jak probíhá rozpoznávání. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Proč je to důležité:** +`ProcessingMode.Gpu` může ušetřit sekundy rozpoznávacího času na moderní kartě, ale nastavení `ProcessingMode.Auto` (nebo ponechání výchozího) je bezpečnější v prostředích, kde může GPU chybět. Ochrana `GpuMemoryLimit` je praktický tip – bez ní by obrovský obrázek mohl monopolizovat veškerou VRAM a zhavarovat ostatní aplikace. + +## Krok 2: Načtení obrázku pro OCR – Načtení TIFF do paměti + +Teď, když je engine připraven, musíme mu předat obrázek, který chceme analyzovat. Aspose poskytuje `ImageStream.FromFile`, který abstrahuje manipulaci s formáty. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Co se děje pod kapotou?** +`ImageStream.FromFile` načte soubor do streamu a automaticky detekuje formát obrázku (TIFF, PNG, JPEG atd.). Pokud pracujete s více‑stránkovými TIFFy, Aspose bude každou stránku považovat za samostatný rámec; můžete je později iterovat, pokud bude potřeba. + +## Krok 3: Rozpoznání textu z TIFF – Spuštění OCR enginu + +S načteným obrázkem začíná těžká část. Metoda `Recognize` vrací objekt `OcrResult`, který obsahuje extrahovaný text a několik užitečných metadat. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Proč volat `Recognize` jen jednou?** +Protože engine po prvním spuštění kešuje interní struktury, jeden volání stačí pro většinu scénářů. Pokud potřebujete zpracovat mnoho stránek, znovu použijte stejnou instanci `OcrEngine` – tím se vyhnete režii opětovného inicializování GPU kontextů. + +## Krok 4: Zobrazení výsledku – Ukázka extrahovaného textu + +Nakonec vypíšeme rozpoznaný řetězec do konzole. Ve skutečné aplikaci byste ho pravděpodobně uložili do databáze nebo souboru. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Očekávaný výstup:** +Pokud `large_scan.tif` obsahuje tištěnou fakturu, uvidíte něco jako: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Přesné rozložení závisí na zdrojovém obrázku, ale hlavní pointa je, že nyní máte **extrahování textu z obrázku** připravené pro další zpracování. + +## Krok 5: Řešení problémů a okrajové případy + +### GPU nebyl detekován? + +Pokud spustíte ukázku na stroji bez kompatibilního GPU, engine tiše přepne na CPU, když použijete `ProcessingMode.Auto`. Pro vynucení režimu CPU explicitně nahraďte předchozí řádek tímto: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Paměťově náročné TIFFy + +Velmi velké skeny (např. 10 000 × 10 000 px) mohou stále překročit nastavený limit 1 GB GPU, který jsme stanovili. V takovém případě buď zvýšte `GpuMemoryLimit` (pokud máte volnou VRAM), nebo před předáním enginu obrázek zmenšete: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Vícestránkové dokumenty + +Pokud váš TIFF obsahuje více stránek, projděte je v cyklu: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Podpora jazyků a fontů + +Aspose OCR automaticky detekuje latinské skripty, ale pro cyrilici, arabštinu nebo vlastní fonty možná budete muset dodat jazykový balíček: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Profesionální tipy a osvědčené postupy + +- **Znovu použijte engine**: Vytváření nového `OcrEngine` pro každý obrázek přidává znatelnou latenci. +- **Dávkové zpracování**: Při práci s desítkami TIFFů je vhodné je zařadit do fronty a zpracovávat ve více vláknech – jen dejte pozor na soutěž o GPU paměť. +- **Validujte výstup**: OCR není dokonalé; spusťte jednoduchou kontrolu pravopisu nebo regex validaci na `ocrResult.Text`, abyste zachytili zjevné chyby rozpoznání. +- **Logujte výkon**: Změřte uplynulý čas pomocí `Stopwatch` před a po volání `Recognize`, abyste rozhodli, zda je akcelerace GPU ve vašem prostředí opodstatněná. + +## Závěr + +Nyní máte kompletní, end‑to‑end příklad, který **extrahuje text z obrázku** pomocí Aspose OCR v C#. Načtením obrázku pro OCR, vyvoláním enginu k rozpoznání textu z TIFF a ošetřením scénářů GPU vs. CPU vám tento tutoriál poskytuje produkčně připravený základ, který můžete přizpůsobit fakturám, pasům nebo jakémukoli naskenovanému dokumentu. + +Co dál? Vyzkoušejte zaměnit TIFF za více‑stránkový PDF, experimentujte s vlastními jazykovými balíčky nebo nasměrujte výstup do pipeline pro zpracování přirozeného jazyka a automatické získávání dat. Možnosti jsou neomezené – hodně štěstí při 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/czech/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..14656e06d --- /dev/null +++ b/ocr/czech/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-04-11 +description: Extrahujte text z TIFF souborů pomocí dávkového zpracování OCR v Aspose + v C#. Naučte se, jak efektivně zpracovávat dávkové OCR a získat zpětnou vazbu o + průběhu v reálném čase. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: cs +og_description: Extrahujte text z TIFF souborů pomocí dávkového zpracování OCR v Aspose + v C#. Tento tutoriál ukazuje krok za krokem, jak provést dávkové OCR a číst průběh. +og_title: Extrahujte text z TIFF pomocí dávkového OCR v C# – kompletní průvodce +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extrahujte text z TIFF pomocí dávkového OCR v C# – Kompletní průvodce +url: /cs/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahování textu z TIFF – Kompletní průvodce hromadným OCR + +Už jste někdy potřebovali **extrahovat text z TIFF** souborů, ale uvízli jste u hromadného zpracování? Nejste v tom sami. V mnoha projektech automatizace dokumentů může zpracování desítek vysoce rozlišených TIF obrázků rychle vytvořit úzké hrdlo – zejména když chcete mít živou zpětnou vazbu o průběhu. + +Dobrá zpráva? S Aspose OCR můžete **zpracovat hromadný OCR** během několika řádků kódu, získat události o průběhu v reálném čase a výstupem je rozpoznaný text pro každý obrázek. V tomto tutoriálu projdeme připravenou C# konzolovou aplikaci, která přesně to dělá. + +Probereme vše, co potřebujete vědět: požadované balíčky, proč je každý řádek důležitý, okrajové případy jako chybějící soubory a jak ověřit výsledky. Na konci budete schopni vložit ukázku do svého řešení a okamžitě začít extrahovat text z TIFF obrázků. + +## Co budete potřebovat + +- **.NET 6 nebo novější** (kód se také kompiluje s .NET Core) +- **Aspose.OCR for .NET** NuGet balíček – `Install-Package Aspose.OCR` +- Složka obsahující několik **TIFF** obrázků, které chcete číst (demo používá `img1.tif`, `img2.tif`, `img3.tif`) +- Jakékoliv IDE – Visual Studio, Rider nebo VS Code vám postačí + +Žádná další konfigurace není nutná; knihovna přichází se svým OCR jádrem, takže nebudete muset instalovat externí nativní binárky. + +--- + +## Krok 1 – Vytvoření instance OCR enginu + +První, co uděláte, je vytvořit `OcrEngine`. Představte si ho jako mozek, který analyzuje každý pixel a převádí ho na znaky. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Proč je to důležité:** +> Engine drží interní jazykové modely a nastavení (např. DPI, jazyk). Vytvořit ho jednou a znovu použít pro hromadu je mnohem efektivnější než instanciovat nový engine pro každý obrázek. + +--- + +## Krok 2 – Připojení událostí o průběhu v reálném čase + +Pokud zpracováváte desítky TIFF souborů, indikátor průběhu vám ušetří hádání, zda aplikace nezamrzla. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Událost `ProgressChanged` se spustí po dokončení každého obrázku a poskytne vám `Current`, `Total` a `Percentage`. Toto je **process batch OCR** smyčka zpětné vazby, kterou většina vývojářů zapomene implementovat. + +--- + +## Krok 3 – Vytvoření seznamu streamů obrázků + +Aspose.OCR pracuje s objekty `ImageStream`. Nejjednodušší je načíst každý TIFF ze souborového systému. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tip:** +> Pokud máte dynamickou složku, nahraďte pevně zadaný seznam voláním `Directory.GetFiles(path, "*.tif")` a `Select(ImageStream.FromFile)` – tím skutečně **process batch OCR** bez ručních úprav. + +--- + +## Krok 4 – Spuštění hromadného OCR procesu + +Nyní se děje těžká práce. `ProcessBatch` vrací jen pro čtení seznam objektů `OcrResult`, z nichž každý obsahuje extrahovaný text a skóre důvěry. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Proč je to efektivní:** +> Engine znovu používá stejný jazykový model napříč všemi obrázky, což dramaticky snižuje paměťové zatížení oproti voláním po jednotlivých obrázcích. + +--- + +## Krok 5 – Zobrazení nebo uložení rozpoznaného textu + +Nakonec projděte výsledky. V reálném projektu je můžete zapsat do databáze nebo JSON souboru, ale pro demo je jen vytiskneme do konzole. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Očekávaný výstup v konzoli** (zkrácený pro stručnost): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Pokud některý obrázek selže, `result.Text` bude prázdný řetězec a událost `ProgressChanged` i nadále oznámí položku jako zpracovanou – tak můžete selhání logovat zvlášť. + +--- + +## Obsluha události průběhu (úplný kód) + +Umístěte tuto metodu kdekoliv uvnitř třídy `BatchDemo` – ideálně za metodou `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Přesměrujte tento výstup do UI progress baru, pokud budujete desktopovou aplikaci; stejná událost funguje pro WinForms, WPF nebo dokonce ASP.NET Core SignalR notifikace. + +--- + +## Kompletní, připravený příklad + +Když spojíme vše dohromady, zde je kompletní program, který můžete zkopírovat a vložit do nového konzolového projektu. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Uložte soubor jako `Program.cs`, spusťte `dotnet add package Aspose.OCR`, nahraďte `YOUR_DIRECTORY` skutečnou cestou a stiskněte **Ctrl+F5**. Měli byste vidět čísla průběhu následovaná extrahovaným textem pro každý TIFF. + +--- + +## Řešení běžných okrajových případů + +| Situace | Na co si dát pozor | Rychlá oprava | +|-----------|-------------------|-----------| +| **Chybějící nebo poškozený TIFF** | `ImageStream.FromFile` vyhodí `FileNotFoundException` nebo `ArgumentException`. | Zabalte tvorbu seznamu do `try/catch` a neplatné soubory přeskočte, přičemž je zalogujte. | +| **Velmi velké obrázky ( >10 MP )** | OCR může spotřebovat hodně RAM a zpomalit. | Před zpracováním snižte DPI: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Neanglický text** | Výchozí jazykový model je angličtina. | Nastavte `ocrEngine.Language = Language.Spanish;` (nebo jakýkoliv podporovaný jazyk). | +| **Potřeba uložit výsledky** | Výstup do konzole není trvalý. | Zapište `result.Text` do `.txt` souboru pomocí `File.WriteAllText`. | + +Řešením těchto scénářů učiníte své řešení robustním a ukážete, že jste přemýšleli i o méně častých situacích. + +--- + +## Další kroky a související témata + +- **Extrahování textu z PDF** – podobné API, jen místo `ImageStream` použijete `PdfDocument`. +- **Paralelní hromadný OCR** – pro masivní zátěže spusťte více instancí `OcrEngine` na oddělených vláknech; pamatujte na licenční limity. +- **Post‑processing** – projděte OCR výstup pravopisným kontrolorem nebo regexem, abyste odstranili typické OCR artefakty. + +Všechny tyto rozšíření stále staví na jádru **process batch OCR** a lze je přidávat postupně. + +--- + +## Závěr + +Právě jsme ukázali, jak **extrahovat text z TIFF** souborů efektivně pomocí **process batch OCR** s Aspose OCR v C#. Ukázka vytvoří jediný engine, přihlásí se k událostem průběhu, načte seznam streamů obrázků, spustí hromadný proces a vytiskne každý výsledek. + +Odtud můžete výstup integrovat do databází, generovat prohledávatelné PDF nebo posílat text do downstream NLP pipeline. Možnosti jsou neomezené – experimentujte s jazykovými nastaveními, úpravou DPI a paralelním spouštěním, aby vyhovovaly vašemu konkrétnímu zatížení. + +Máte otázky nebo chcete sdílet, jak jste batch upravili? Zanechte komentář níže a šť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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/czech/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..452321758 --- /dev/null +++ b/ocr/czech/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Naučte se rozpoznávat text z PNG a extrahovat text z obrázku v C# pomocí + Aspose OCR. Obsahuje kroky načtení souboru obrázku v C#, kontrolu pravopisu a kompletní + kód. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: cs +og_description: Rozpoznávejte text z PNG snadno pomocí C#. Postupujte podle tohoto + krok‑za‑krokem průvodce, jak načíst soubor obrázku v C#, extrahovat text z obrázku + v C# a spustit kontrolu pravopisu. +og_title: rozpoznat text z PNG v C# – kompletní OCR tutoriál +tags: +- OCR +- C# +- Aspose +title: Rozpoznání textu z PNG v C# – Kompletní průvodce OCR a kontrolou pravopisu +url: /cs/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznání textu z png – Kompletní C# OCR a kontrola pravopisu + +Už jste někdy potřebovali **rozpoznat text z png** souborů, ale nevedeli jste, kterou knihovnu zvolit? Nejste sami; mnoho vývojářů narazí na tuto překážku, když poprvé řeší extrakci dat z obrázků. Dobrá zpráva? S Aspose OCR můžete v C# načíst obrázek, extrahovat text a dokonce spustit vestavěnou kontrolu pravopisu – vše během několika řádků kódu. + +V tomto průvodci projdeme celý proces: načtení PNG, volání OCR enginu a nakonec kontrolu pravopisu. Na konci budete schopni **extrahovat text z obrázku C#** projektech bez zbytečného hledání v roztroušené dokumentaci. Předchozí zkušenost s OCR není nutná, stačí .NET vývojové prostředí. + +## Co budete potřebovat + +- **.NET 6.0** (nebo jakákoli novější verze .NET) – API funguje stejně na .NET Core i Framework. +- **Aspose.OCR for .NET** NuGet balíček – nainstalujte jej pomocí `dotnet add package Aspose.OCR`. +- **PNG obrázek**, který obsahuje čitelný text (např. `letter.png` umístěný ve složce, kterou ovládáte). +- Editor kódu nebo IDE (Visual Studio, VS Code, Rider – co vám vyhovuje). + +A to je vše. Žádné další OCR enginy, žádné nativní DLL, jen čistý spravovaný balíček. + +--- + +## Krok 1: Načtení PNG souboru v C# + +Než OCR engine může něco udělat, potřebuje stream, který ukazuje na obrázek. Aspose poskytuje `ImageStream.FromFile`, který abstrahuje detaily souborového systému. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Tip:** Pokud je váš obrázek vložený jako zdroj nebo přichází z webového požadavku, můžete použít `ImageStream.FromBytes(byte[])` – není potřeba se dotýkat souborového systému. + +### Proč načítání záleží + +Správné načtení obrázku zajišťuje, že OCR engine dostane přesná pixelová data, která očekává. Poškozený stream způsobí výjimku v `Recognize` a budete ztrácet čas laděním později. + +--- + +## Krok 2: Inicializace OCR enginu + +Vytvoření instance `OcrEngine` je levné, ale můžete chtít upravit jazyk nebo nastavení přesnosti pro konkrétní případy (např. vícejazyčné dokumenty). Výchozí konstruktor funguje dobře pro anglický text. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Proč instance enginu? + +Engine uchovává konfiguraci (jazyk, předzpracování, filtry atd.). Oddělením konfigurace od obrázku můžete stejný engine použít pro mnoho souborů – ideální pro dávkové zpracování. + +--- + +## Krok 3: Rozpoznání textu z PNG + +Teď se děje kouzlo. `Recognize` vrací objekt `OcrResult`, který obsahuje surový řetězec, skóre důvěry a další informace. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Očekávaný výstup** (předpokládáme, že `letter.png` říká „Hello World!“): + +``` +=== OCR Output === +Hello World! +``` + +Pokud obrázek obsahuje více řádků, výsledek zachová zalomení řádků, což usnadňuje další zpracování. + +### Okrajový případ: nízké rozlišení PNG + +Pokud výsledek OCR vypadá poškozeně, zvažte zvětšení obrázku nebo úpravu `ocrEngine.PreprocessingOptions`. Obrázky s nízkým DPI často ztrácejí detaily, na které engine spoléhá. + +--- + +## Krok 4: Spuštění vestavěné kontroly pravopisu + +Aspose OCR obsahuje lehký modul pro kontrolu pravopisu, který pracuje přímo na výsledku OCR. Tento krok vám pomůže zachytit špatně rozpoznané slovo jako „H3llo“ místo „Hello“. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Ukázkový výstup** (pokud OCR špatně přečetlo „World“ jako „W0rld“): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Proč kontrola pravopisu? + +OCR nikdy není 100 % dokonalé, zejména u špinavých pozadí. Rychlá kontrola pravopisu může odfiltrovat zjevné chyby, než text předáte dalším analytickým nástrojům nebo databázím. + +--- + +## Krok 5: Vše dohromady – kompletní funkční příklad + +Níže je kompletní, připravený program. Zkopírujte jej do nového konzolového projektu, upravte cestu k obrázku a stiskněte **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Spuštění demonstrace** vypíše OCR text následovaný případnými návrhy na opravu pravopisu. Funguje na jakémkoli PNG, který obsahuje jasný, tištěný anglický text. Pro jiné jazyky jednoduše nastavte `ocrEngine.Language` podle potřeby. + +--- + +## Často kladené otázky a úskalí + +| Otázka | Odpověď | +|----------|--------| +| *Mohu zpracovávat JPEG nebo BMP soubory?* | Samozřejmě – `ImageStream.FromFile` přijímá libovolný formát podporovaný Aspose (PNG, JPEG, BMP, TIFF). | +| *Co když je obrázek v paměťovém streamu?* | Použijte `ImageStream.FromBytes(byteArray)` nebo `ImageStream.FromStream(stream)`. | +| *Je kontrola pravopisu jazykově citlivá?* | Ano, respektuje jazyk nastavený na OCR engine. | +| *Jak zlepšit přesnost u nakloněných obrázků?* | Před voláním `Recognize` povolte `ocrEngine.PreprocessingOptions.Deskew = true;`. | +| *Potřebuji licenci pro Aspose.OCR?* | Bezplatná zkušební verze funguje až na 100 stránek. Pro produkci pořiďte licenci, aby se odstranily vodoznaky. | + +--- + +## Další kroky – rozšíření základního OCR + +Nyní, když umíte **rozpoznat text z png** a **extrahovat text z obrázku C#**, můžete zvážit následující rozšíření: + +1. **Dávkové zpracování** – Procházet složku s PNG a zapisovat každý OCR výsledek do samostatného `.txt` souboru. +2. **Integrace s Azure Cognitive Services** – Kombinovat Aspose OCR s cloudovými překladovými API pro vícejazyčné pipeline. +3. **Extrahování strukturovaných dat** – Použít regulární výrazy na `recognizedText` k získání dat, jako jsou data, čísla faktur nebo adresy. +4. **Ladění výkonu** – Pro velké objemy znovu použít jedinou instanci `OcrEngine` a povolit vícevláknové zpracování. + +Každý z těchto kroků staví na základních krocích, které jsme probírali, a umožní vám proměnit jednoduchý obrázek v použitelné údaje. + +--- + +## Závěr + +Prošli jsme kompletním, end‑to‑end příkladem, který ukazuje, jak **rozpoznat text z png** v C#, **načíst soubor obrázku C#** správně a následně **extrahovat text z obrázku C#** s kontrolou pravopisu. Kód je samostatný, vysvětlení pokrývají jak „jak“, tak „proč“, a nyní máte solidní základ pro jakoukoli OCR‑řízenou funkci, kterou budete potřebovat. + +Vyzkoušejte to, upravte předzpracování a uvidíte, jak čistý může být váš extrahovaný text. Pokud narazíte na nějaké problémy, 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/dutch/net/ocr-configuration/_index.md b/ocr/dutch/net/ocr-configuration/_index.md index 4eb8a034a..a06202f05 100644 --- a/ocr/dutch/net/ocr-configuration/_index.md +++ b/ocr/dutch/net/ocr-configuration/_index.md @@ -61,6 +61,8 @@ Ontgrendel de kracht van OCR‑beeldherkenning in .NET met Aspose.OCR. Extraheer Ontgrendel krachtige OCR‑mogelijkheden met Aspose.OCR voor .NET. Extraheer naadloze tekst uit afbeeldingen. ### [OCRO-bewerking met lijst in OCR-beeldherkenning](./ocr-operation-with-list/) Ontgrendel het potentieel van Aspose.OCR voor .NET. Voer eenvoudig OCR‑beeldherkenning uit met lijsten. Verhoog de productiviteit en data‑extractie in je applicaties. +### [Hoe OCR uitschakelen in C# – Offline Aspose OCR-gids](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Leer hoe je OCR-functionaliteit in C# kunt uitschakelen voor offline verwerking met Aspose OCR. ### Veelvoorkomende gebruiksscenario's - **Tekstafbeeldingen extraheren** uit gescande facturen voor praktische boekhouding. @@ -101,4 +103,4 @@ A: Ja, het `OcrResult`‑object levert vertrouwenswaarden die je programmatisch {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/dutch/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..244c61dc2 --- /dev/null +++ b/ocr/dutch/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Leer hoe je OCR in Aspose OCR voor C# kunt uitschakelen om offline te + werken, tekst uit een afbeelding kunt extraheren zonder internet, en de afbeelding + correct kunt laden voor OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: nl +og_description: Hoe OCR in Aspose OCR voor C# uit te schakelen en offline uit te voeren, + tekst uit een afbeelding te extraheren zonder internet, en afbeelding gemakkelijk + voor OCR te laden. +og_title: Hoe OCR uitschakelen in C# – Offline Aspose OCR-gids +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Hoe OCR uitschakelen in C# – Offline Aspose OCR-gids +url: /nl/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe OCR uit te schakelen in C# – Offline Aspose OCR-gids + +Heb je je ooit afgevraagd **hoe je OCR kunt uitschakelen** wanneer je een echt offline oplossing nodig hebt? Misschien bouw je een beveiligde desktopapp die niet op een netwerkverbinding kan vertrouwen, of wil je gewoon onverwachte downloads vermijden. Hoe dan ook, het goede nieuws is dat Aspose OCR je toestaat om het automatische ophalen van bronnen uit te schakelen, het naar een lokale map te wijzen, en alles on‑premises te houden. In deze tutorial zie je ook hoe je **tekst uit afbeelding kunt extraheren** en correct **afbeelding voor OCR laden** zonder problemen. + +We lopen een compleet, kant‑klaar voorbeeld door dat elke stap toont — van het initialiseren van de engine tot het afdrukken van de herkende Japanse tekst. Geen externe documentatie, geen verborgen magie; gewoon platte C# code die je vandaag in je project kunt plaatsen. Aan het einde weet je waarom het uitschakelen van de auto‑downloadfunctie belangrijk is, hoe je het resources‑pad instelt, en op welke valkuilen je moet letten. + +## Vereisten + +- .NET 6.0 (of een recente .NET‑versie) geïnstalleerd op je machine. +- Aspose.OCR for .NET NuGet‑pakket (`Install-Package Aspose.OCR`). +- Een map die al de taalresources bevat die je nodig hebt (bijv. het Japanse model). +- Een afbeeldingsbestand (`japan_doc.png`) waar je OCR op wilt uitvoeren. + +Als je de taalpakketten mist, haal ze dan één keer op van het Aspose‑portaal, pak ze uit in een map zoals `AsposeOCRResources`, en je bent klaar. Er zullen geen verdere downloads plaatsvinden zodra je de auto‑downloadfunctie hebt uitgeschakeld. + +![How to disable OCR offline](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## Stap 1 – Maak een OCR‑engine‑instantie + +Het eerste wat je doet is `OcrEngine` instantieren. Beschouw dit object als het brein dat je afbeelding zal lezen. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Waarom dit belangrijk is:** Zonder een engine kun je niets configureren. Het object bevat alle instellingen, inclusief de cruciale vlag die de bibliotheek vertelt of hij contact met het internet mag opnemen. + +## Stap 2 – Schakel automatisch resource‑download uit + +Standaard probeert Aspose OCR ontbrekende taalbestaanden on‑the‑fly op te halen. Om alles offline te houden, zet je de `AutoDownloadResources`‑schakelaar op `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro‑tip:** Dit uitschakelen garandeert niet alleen privacy, maar versnelt ook de eerste herkenningsrun omdat de engine geen tijd meer verspilt aan het controleren op updates. + +## Stap 3 – Verwijs naar je lokale resources‑map + +Vertel nu de engine waar de vooraf‑gedownloade taalpakketten zich bevinden. Dit is het pad dat je in de vereisten hebt opgezet. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Wat kan er misgaan?** Als het pad onjuist is of het vereiste taalb bestand ontbreekt, zal de engine een `ResourceNotFoundException` werpen. Controleer de mapnaam zorgvuldig en zorg dat het Japanse model (`jpn.traineddata`) aanwezig is. + +## Stap 4 – Selecteer het lokale taalmodel + +Kies de taal die je daadwerkelijk op schijf hebt. In ons voorbeeld gebruiken we Japans, maar je kunt `Language.Japanese` vervangen door elke andere taal die je hebt gedownload. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Randgeval:** Sommige talen vereisen extra woordenboeken (bijv. Chinees). Zorg ervoor dat die aanvullende bestanden ook in dezelfde resources‑map staan. + +## Stap 5 – Laad de afbeelding voor OCR + +Hier **laden we de afbeelding voor OCR**. De `ImageStream.FromFile`‑methode leest het bestand in een stream die Aspose kan verwerken. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tip:** Ondersteunde formaten zijn PNG, JPEG, BMP en TIFF. Als je PDF’s moet verwerken, converteer je elke pagina eerst naar een afbeelding. + +## Stap 6 – Voer het herkenningsproces uit + +Nu leest de engine daadwerkelijk de pixels en probeert ze om te zetten in tekst. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Waarom deze stap traag kan zijn:** OCR is CPU‑intensief, vooral voor hoge‑resolutie‑afbeeldingen. Als prestaties een zorg zijn, overweeg dan de afbeelding te verkleinen vóór herkenning. + +## Stap 7 – Geef de geëxtraheerde tekst weer + +Tot slot **extraheren we tekst uit afbeelding** en printen we deze naar de console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Het uitvoeren van het programma moet de Japanse tekens weergeven die in `japan_doc.png` stonden. Als alles correct is ingesteld, zie je een nette blok Unicode‑tekst in je console. + +### Verwachte uitvoer + +``` +これはサンプルの日本語テキストです。 +``` + +(De daadwerkelijke uitvoer hangt af van de inhoud van de afbeelding.) + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Ontbrekend taalbestand** | `AutoDownloadResources` is false, dus kan de engine het niet ophalen. | Controleer of `ResourcesPath` naar de map wijst die `jpn.traineddata` bevat. | +| **Onjuist afbeeldingspad** | `ImageStream.FromFile` werpt een `FileNotFoundException`. | Gebruik absolute paden of zorg dat de werkmap correct is ingesteld. | +| **Niet‑ondersteund afbeeldingsformaat** | Aspose leest alleen bepaalde formaten. | Converteer je afbeelding naar PNG of JPEG voordat je `FromFile` aanroept. | +| **Onvoldoende geheugen bij grote afbeeldingen** | OCR laadt de volledige afbeelding in het geheugen. | Verklein of deel de afbeelding op, of vergroot de geheugengrens van het proces. | + +## Voorbeeld uitbreiden + +- **Batchverwerking:** Loop over een map met afbeeldingen, roep dezelfde herkenningscode aan, en schrijf elk resultaat naar een apart `.txt`‑bestand. +- **Verschillende talen:** Vervang `Language.Japanese` door `Language.English` (of een andere) nadat je de bijbehorende resource‑bestanden hebt geplaatst. +- **Aangepaste preprocessing:** Gebruik Aspose.Imaging om te deskewen of het contrast te verbeteren vóór OCR voor betere nauwkeurigheid. + +## Conclusie + +Je weet nu **hoe je OCR kunt uitschakelen** in Aspose OCR voor C# en het volledig offline kunt uitvoeren. Door `AutoDownloadResources` op `false` te zetten, de engine naar een lokale resources‑map te wijzen, en correct **afbeelding voor OCR laden**, kun je betrouwbaar **tekst uit afbeelding extraheren** zonder ooit het internet aan te raken. Deze aanpak is ideaal voor beveiligde omgevingen, CI‑pipelines, of elke situatie waarin netwerktoegang beperkt is. + +Klaar voor de volgende stap? Probeer een volledige map met gescande PDF’s te verwerken, experimenteer met verschillende taalpakketten, of integreer het OCR‑resultaat in een doorzoekbare database. De offline configuratie die je vandaag hebt gebouwd, vormt een solide basis voor elke on‑premises document‑verwerkingsworkflow. + +Veel plezier met coderen, en voel je vrij om een reactie achter te laten als je ergens tegenaan loopt! + +{{< /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 b95973f36..e095cb402 100644 --- a/ocr/dutch/net/ocr-optimization/_index.md +++ b/ocr/dutch/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Verken Aspose.OCR voor .NET. Verhoog OCR‑nauwkeurigheid met preprocessing‑fi Verbeter OCR‑nauwkeurigheid met Aspose.OCR voor .NET. Corrigeer spellingen, pas woordenboeken aan en bereik moeiteloos foutloze teksterkenning. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Ontgrendel het potentieel van Aspose.OCR voor .NET. Sla moeiteloos multipagina‑OCR‑resultaten op als documenten met deze uitgebreide stap‑voor‑stap gids. +### [Hoe OCR-nauwkeurigheid te verbeteren in C# met Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Leer technieken om OCR‑nauwkeurigheid in C# te verhogen met Aspose OCR, inclusief preprocessing en configuratie‑tips. ## Veelgestelde vragen diff --git a/ocr/dutch/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/dutch/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..1924c13ed --- /dev/null +++ b/ocr/dutch/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: Leer hoe je OCR in C# kunt verbeteren door tekst uit JPG's te herkennen, + afbeeldingen recht te zetten en ruis te verwijderen met Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: nl +og_description: Ontdek hoe je OCR kunt verbeteren door tekst uit JPG's te herkennen, + afbeeldingen recht te zetten en ruis te verwijderen—volledige C#-gids. +og_title: Hoe OCR-nauwkeurigheid in C# te verbeteren met Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Hoe de OCR‑nauwkeurigheid te verbeteren in C# met Aspose OCR +url: /nl/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe de OCR‑nauwkeurigheid te verbeteren in C# met Aspose OCR + +Ever wondered **how to improve OCR** results when your scans look more like abstract art than readable text? You're not the only one. In many real‑world projects—think invoices, receipts, or handwritten notes—the source images are often skewed, grainy, or just plain noisy. The good news? Aspose OCR gives you a handful of preprocessing knobs that can turn that mess into clean, machine‑readable characters. In this tutorial we’ll walk through a complete, runnable example that shows **how to improve OCR** by **recognizing text from JPG**, deskewing the picture, and stripping out unwanted noise. + +> *Pro tip:* If you skip preprocessing, you’ll likely end up with garbled output that looks like a cryptic crossword puzzle. Let’s avoid that. + +![Hoe OCR te verbeteren met Aspose OCR preprocessing](https://example.com/ocr-preprocess.png "hoe OCR te verbeteren met Aspose OCR") + +## Wat je zult leren + +1. Hoe de Aspose OCR-engine in te stellen voor optimale nauwkeurigheid. +2. De exacte code die nodig is om **recognize text from JPG** bestanden te herkennen. +3. Waarom het inschakelen van *AutoDeskew* en *RemoveNoise* belangrijk is en hoe je ze afstemt. +4. Hoe je **extract text from image** bestanden kunt extraheren zonder een aangepaste filter te schrijven. +5. Veelvoorkomende valkuilen (ontbrekend bestand, niet‑ondersteund formaat) en snelle oplossingen. + +By the end you’ll have a single C# console app that can take any JPG, clean it up, and spit out the extracted string—ready for downstream processing or storage. + +## Vereisten + +- .NET 6.0 SDK of later (het voorbeeld gebruikt top‑level statements voor beknoptheid). +- Aspose.OCR NuGet‑pakket (`dotnet add package Aspose.OCR`). +- Een voorbeeld‑JPG‑afbeelding (genaamd `input.jpg`) geplaatst in dezelfde map als het uitvoerbare bestand. +- Basiskennis van C#—geen geavanceerde concepten vereist. + +If you already have a project, just drop the code in; otherwise create a new console app: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Now let’s dive into the code. + +## Hoe OCR te verbeteren: Overzicht van Preprocess Settings + +The heart of **how to improve OCR** lies in the `PreprocessSettings` object. Think of it as a mini‑image‑editor that runs *before* the actual character recognition engine fires. Below is a quick rundown of the most impactful flags: + +| Instelling | Wat het doet | Typisch gebruiksscenario | +|-----------------------|---------------------------------------------------------|--------------------------| +| `AutoDeskew` | Past een deep‑learning de‑skew algoritme toe. | Gescannde pagina's die licht gekanteld zijn. | +| `AdaptiveThreshold` | Verhoogt het contrast in slecht verlichte of vervaagde afbeeldingen. | Oude bonnen met uitgewasende inkt. | +| `RemoveNoise` | Voert een Gaussian‑blur filter uit om vlekjes te onderdrukken. | Foto's genomen met een smartphone‑flits. | +| `NoiseRemovalStrength`| Regelt de agressiviteit (1 = laag, 3 = hoog). | Fijn afstemmen op basis van hoe korrelig de bron is. | + +Enabling these options is essentially the “secret sauce” for **how to improve OCR** on imperfect inputs. + +## Tekst herkennen uit JPG met Aspose OCR + +Below is the full, ready‑to‑run program. Every line is annotated so you can see *why* each piece exists, not just *what* it does. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Verwachte output + +If `input.jpg` contains the phrase “Invoice #12345 – Total: $256.78”, the console will print: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Notice how the output is clean, with the dash and dollar sign preserved—exactly what you’d expect when **extracting text from image** files. + +## Hoe een afbeelding te deskewen met Preprocess Settings + +Why does deskewing matter? Even a 2‑degree tilt can confuse the character segmentation stage, leading to mis‑identified letters. The `AutoDeskew` flag runs a convolutional neural network under the hood that detects the dominant angle and rotates the image back to baseline. + +If you need more control, you can manually set the angle: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **When to use manual deskew:** If you know the camera consistently tilts images by a fixed amount (e.g., a mounted scanner), hard‑coding the angle saves a tiny bit of processing time. + +## Hoe ruis te verwijderen voor schonere extractie + +Noise shows up as random speckles or grain, especially on low‑light photos. The `RemoveNoise` flag applies a bilateral filter that smooths the background while preserving edges (the actual characters). The `NoiseRemovalStrength` property lets you dial the aggressiveness: + +| Sterkte | Effect | +|----------|--------| +| 1 | Lichte smoothing—goed voor licht korrelige afbeeldingen. | +| 2 | Gebalanceerd—werkt voor de meeste smartphone‑opnames. | +| 3 | Zware smoothing—gebruik wanneer de afbeelding extreem ruisig is, maar pas op dat dunne strepen vervagen. | + +If you encounter a scenario where small fonts become unreadable after heavy smoothing, simply lower the strength or disable the filter altogether. + +## Tekst extraheren uit afbeelding: buiten JPG + +While our demo focuses on a JPG, Aspose OCR supports PNG, BMP, TIFF, and even PDF pages. To **extract text from image** formats other than JPG, just change the file extension in `ImageStream.FromFile`. For multi‑page TIFFs you can loop through each page: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +That snippet shows how you could scale the same **how to improve OCR** workflow to batch‑process a whole stack of scanned documents. + +## Veelvoorkomende valkuilen & hoe ze op te lossen + +| Symptoom | Waarschijnlijke oorzaak | Snelle oplossing | +|------------------------|----------------------------------------------------------|-------------------| +| Blank output | Afbeelding is volledig wit na preprocessing (over‑agressieve drempel) | Verlaag `NoiseRemovalStrength` of stel `AdaptiveThreshold = false` in. | +| Garbled characters | Verkeerd taalmodel (standaard is Engels) | Stel `ocrEngine.Settings.Language = Language.English;` in of laad een aangepast taalpakket. | +| Crash on large files | Out‑of‑memory door hoge‑resolutie afbeelding | Verklein met `ocrEngine.Settings.ImageResizeFactor = 0.5;` vóór herkenning. | +| No output for rotated scans | `AutoDeskew` per ongeluk uitgeschakeld | Schakel `AutoDeskew = true` in of lever de juiste `DeskewAngle`. | + +Keeping these in mind will save you hours of debugging when you’re trying to **how to improve OCR** in production pipelines. + +## Bonus: Afstemmen voor snelheid vs. nauwkeurigheid + +If you’re processing thousands of receipts per day, you might prioritize speed. Turn off `AdaptiveThreshold` and set `NoiseRemovalStrength = 1`. Conversely, for legal documents where a single missed character could be costly, keep all flags on and consider increasing `NoiseRemovalStrength` to 3. + +## Samenvatting + +We’ve covered the entire journey of **how to improve OCR** in C# using Aspose OCR: from creating the engine, configuring preprocessing (the cornerstone of *how to deskew image* and *how to remove noise*), loading a JPG, recognizing text, and handling edge cases. The code is self‑contained, runs out of the box, and demonstrates the exact steps you need to **recognize text from jpg** and **extract text from image** files. + +### Wat is het volgende? + +- Experimenteer met andere afbeeldingsformaten (PNG, TIFF) om te zien hoe dezelfde instellingen zich gedragen. +- Integreer de OCR-uitvoer in een database of + +{{< /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 e39716b53..4f269eee4 100644 --- a/ocr/dutch/net/text-recognition/_index.md +++ b/ocr/dutch/net/text-recognition/_index.md @@ -55,9 +55,18 @@ 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. +### [Tekst extraheren uit afbeelding in C# – Complete OCR-gids](./extract-text-from-image-in-c-complete-ocr-guide/) +Leer hoe u met Aspose.OCR in C# tekst uit afbeeldingen haalt met een volledige stap‑voor‑stap OCR‑handleiding. +### [Tekst extraheren uit TIFF met batch-OCR in C# – Complete gids](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Leer hoe u met Aspose.OCR in C# tekst uit TIFF-bestanden haalt via batch‑OCR in deze volledige stap‑voor‑stap gids. +### [Maak doorzoekbare PDF in C# – Complete gids](./create-searchable-pdf-in-c-complete-guide/) +Leer hoe u met Aspose.OCR in C# doorzoekbare PDF's maakt met een volledige stap‑voor‑stap handleiding. +### [Tekst herkennen uit PNG in C# – Complete OCR‑ en spellingscontrole‑gids](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +### [Afbeelding naar JSON converteren – C# OCR-tutorial voor bonnen](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Leer hoe u met Aspose.OCR in C# afbeeldingen van bonnen omzet naar JSON voor eenvoudige verwerking. {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/dutch/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..b9acfcf2c --- /dev/null +++ b/ocr/dutch/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Converteer afbeelding naar JSON met Aspose OCR Cloud in C#. Leer hoe + je tekst herkent, tekst uit een afbeelding haalt en een bon verwerkt met OCR in + enkele minuten. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: nl +og_description: Converteer afbeelding naar JSON met Aspose OCR Cloud in C#. Deze gids + laat zien hoe je tekst herkent, tekst uit een afbeelding haalt en een bon verwerkt + met OCR. +og_title: Afbeelding naar JSON converteren – C# OCR‑tutorial voor bonnen +tags: +- OCR +- C# +- Aspose +- JSON +title: Afbeelding naar JSON converteren – C# OCR-tutorial voor kassabonnen +url: /nl/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Afbeelding naar JSON converteren – C# OCR‑tutorial voor bonnetjes + +Heb je ooit **een afbeelding naar JSON moeten converteren** maar wist je niet waar te beginnen? In deze gids lopen we stap voor stap door een volledige C# OCR‑tutorial die een foto van een bon neemt, de tekst herkent en een nette JSON‑payload oplevert. + +Als je je ooit hebt afgevraagd *hoe je tekst kunt herkennen* in een gescand document, of je zoekt een snelle manier om **tekst uit afbeelding**‑bestanden te **extraheren**, dan ben je hier aan het juiste adres. Aan het einde van dit artikel kun je **bonnetjes verwerken met OCR** en het resultaat direct doorsturen naar je downstream‑API’s. + +## Wat je nodig hebt + +- .NET 6 SDK of later (de code werkt ook met .NET Core) +- Een Aspose Cloud API‑sleutel – je kunt een gratis proefversie halen via het Aspose‑portaal +- Een voorbeeld‑bonafbeelding (`receipt.jpg`) die lokaal is opgeslagen +- Je favoriete IDE (Visual Studio, VS Code, Rider – alles kan) + +Er zijn geen extra NuGet‑pakketten nodig buiten de officiële `Aspose.OCR.Cloud`‑client. Als je de SDK al geïnstalleerd hebt, ben je klaar om te beginnen. + +## Stap 1 – Afbeelding naar JSON converteren: OCR‑client instellen + +Allereerst hebben we een instantie van `CloudOcrClient` nodig. Dit object regelt alle communicatie met de OCR‑service van Aspose en levert het resultaat in JSON‑formaat terug. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Waarom dit belangrijk is:** Het initialiseren van de client vormt de brug tussen je C#‑code en de cloud‑OCR‑engine. De `RecognizeAsync`‑methode doet het zware werk – hij uploadt de afbeelding, draait de OCR‑engine en geeft een JSON‑string terug die de herkende tekst, confidence‑scores en bounding‑box‑coördinaten bevat. + +> **Pro‑tip:** Sla de API‑sleutel op in een omgevingsvariabele of een secret manager in plaats van deze hard‑coded in je code te plaatsen. Zo voorkom je onbedoelde lekken. + +## Stap 2 – Hoe tekst van de bon te herkennen + +Nu de client klaar is, duiken we in het *hoe* van teksterkenning. Aspose OCR ondersteunt veel talen, maar voor de meeste bonnetjes werkt Engels prima. Als je een andere taal nodig hebt, vervang je `Language.English` door de juiste enum‑waarde. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Wat er onder de motorkap gebeurt:** De service draait een deep‑learning‑model dat tekens detecteert, ze groepeert tot woorden en vervolgens regels samenstelt. De geretourneerde JSON ziet er ongeveer zo uit: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Je kunt deze JSON parsen met `System.Text.Json` of `Newtonsoft.Json` om de velden eruit te halen die je nodig hebt. + +## Stap 3 – Tekst uit afbeelding extraheren en JSON handmatig opbouwen (optioneel) + +Soms wil je de ruwe JSON die Aspose teruggeeft niet; misschien heb je een eigen structuur nodig voor je downstream‑service. Hieronder vind je een kort voorbeeld dat de respons deserialiseert en herpakt tot een netter object. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Waarom herformatteren?** Veel API’s verwachten een specifiek schema (bijv. `{ "total": "12.34", "date": "2026-04-10" }`). Door alleen de velden te extraheren die je nodig hebt, houd je de payload lichtgewicht en voorkom je onnodige OCR‑metadata. + +## Stap 4 – De C# OCR‑tutorial testen met een voorbeeldbon + +Voer het programma uit vanuit je terminal: + +```bash +dotnet run +``` + +Je zou twee blokken output moeten zien: + +1. De ruwe JSON die door Aspose wordt teruggegeven (het **convert image to json**‑resultaat rechtstreeks vanuit de cloud). +2. De aangepaste JSON die je in de vorige stap hebt opgebouwd. + +Typische output ziet er als volgt uit: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Als je een fout krijgt zoals *401 Unauthorized*, controleer dan of je API‑sleutel geldig is en of het pad naar de afbeelding klopt. + +## Randgevallen & Veelvoorkomende valkuilen + +| Situatie | Waar je op moet letten | Aanbevolen oplossing | +|-----------|------------------------|----------------------| +| **Bon met lage resolutie** | OCR‑confidence daalt onder 0.8 | Pre‑process de afbeelding (verhoog DPI, verscherp) vóór verzending | +| **Niet‑Engelse tekens** | Verkeerde taal‑enum | Gebruik `Language.AutoDetect` of specificeer de juiste taal | +| **Grote batch bonnetjes** | Rate‑limit‑fouten | Implementeer exponential back‑off of vraag een hogere quota aan bij Aspose | +| **Ontbrekende velden** | Aangepaste parser geeft `null` terug | Voeg fallback‑logica of regex‑patronen toe voor robuustere extractie | + +## Visueel overzicht + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt‑tekst:* *convert image to json‑stroomdiagram dat de stappen in deze tutorial illustreert.* + +## Samenvatting + +We hebben je laten zien hoe je **afbeelding naar JSON kunt converteren** met Aspose OCR Cloud, uitgelegd *hoe je tekst herkent* in een bon, laten zien hoe je **tekst uit afbeelding kunt extraheren**, en alles verpakt in een nette **C# OCR‑tutorial** die je in elk .NET‑project kunt gebruiken. + +De belangrijkste punten zijn: + +- Stel `CloudOcrClient` in met je API‑sleutel. +- Roep `RecognizeAsync` aan om een JSON‑payload rechtstreeks van de service te krijgen. +- Vorm die payload eventueel opnieuw om zodat hij past bij je eigen datacontract. + +## Wat is het vervolg? + +- **Batchverwerking:** Loop door een map met bonnetjes en aggregeer de resultaten in één JSON‑array. +- **Geavanceerde parsing:** Gebruik reguliere expressies of een klein NLP‑model om regelitems, belastingen en kortingen te extraheren. +- **Integratie:** Stuur de uiteindelijke JSON naar een database, een message queue, of een Azure Function voor verdere automatisering. + +Voel je vrij om te experimenteren met verschillende afbeeldingsformaten (PNG, TIFF) of probeer de **process receipt with OCR**‑stroom op mobiel gemaakte foto’s. De mogelijkheden zijn eindeloos zodra je een betrouwbare manier hebt om **afbeelding naar JSON te converteren**. + +Heb je vragen of loop je ergens vast? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/dutch/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..089054784 --- /dev/null +++ b/ocr/dutch/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Maak snel een doorzoekbare PDF van een afbeelding. Leer hoe je een PDF + van een afbeelding genereert, een afbeelding in een PDF insluit, TIF naar PDF converteert + en OCR naar PDF gebruikt in C# met Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: nl +og_description: Maak direct doorzoekbare PDF's. Deze tutorial laat zien hoe je PDF + genereert vanuit een afbeelding, een afbeelding in PDF embedde, TIF naar PDF converteert + en OCR naar PDF gebruikt in C#. +og_title: Maak een doorzoekbare PDF in C# – Stapsgewijze handleiding +tags: +- C# +- OCR +- PDF generation +title: Maak een doorzoekbare PDF in C# – Complete gids +url: /nl/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zoekbare PDF maken in C# – Complete gids + +Heb je ooit een **zoekbare PDF** moeten maken van een gescand document, maar wist je niet waar je moest beginnen? Je bent niet de enige; veel ontwikkelaars lopen tegen dezelfde muur aan bij het werken met TIFF‑bestanden en OCR. In deze tutorial lopen we stap voor stap door een praktische oplossing die je in staat stelt om **PDF uit afbeelding te genereren**, de originele afbeelding in te sluiten voor perfecte doorzoekbaarheid, en af te sluiten met een nette **OCR naar PDF C#** workflow. + +We behandelen alles, van het installeren van de Aspose.OCR‑bibliotheek tot het afhandelen van randgevallen zoals multi‑page TIFF‑bestanden. Aan het einde heb je een kant‑klaar programma dat `input.tif` omzet in een volledig doorzoekbare `output.pdf`. Geen externe services, geen verborgen magie—gewoon platte C#‑code die je in elk .NET‑project kunt plaatsen. + +## Wat je nodig hebt + +- .NET 6.0 of later (de code werkt ook op .NET Framework 4.7+) +- Visual Studio 2022 (of een andere editor naar keuze) +- Een actieve Aspose.OCR‑licentie of een gratis proeflicentiesleutel (het NuGet‑pakket werkt zonder sleutel voor evaluatie) +- Een voorbeeld‑TIFF‑afbeelding (`input.tif`) geplaatst in een map die je kunt refereren + +> **Pro tip:** Houd je afbeeldingsbestanden onder de 10 MB om geheugenpieken te voorkomen bij het verwerken van grote batches. + +## Stap 1: Installeer Aspose.OCR en zet het project op + +Eerst voeg je het Aspose.OCR NuGet‑pakket toe aan je project. Open de Package Manager Console en voer uit: + +```powershell +Install-Package Aspose.OCR +``` + +Als je de UI verkiest, klik met de rechtermuisknop op **Dependencies → Manage NuGet Packages**, zoek naar *Aspose.OCR* en klik op **Install**. + +Waarom deze stap belangrijk is: Aspose.OCR bevat een high‑performance OCR‑engine en een ingebouwde PDF‑exporteur, zodat je geen aparte bibliotheken voor beeldverwerking of PDF‑creatie nodig hebt. + +### Volledige projectskelet + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Opmerking:** Vervang `YOUR_DIRECTORY` door het daadwerkelijke mappad op jouw machine. + +## Stap 2: Laad de afbeelding – *Generate PDF from Image* basis + +Het laden van het bronbestand is een kleine maar cruciale stap. Aspose.OCR verwacht een `ImageStream`, die bestand‑I/O abstraheert en vele formaten ondersteunt (TIFF, PNG, JPEG, etc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Waarom niet gewoon het pad doorgeven?** +De `ImageStream`‑wrapper behandelt interne buffering en zorgt ervoor dat de OCR‑engine werkt met grote multi‑page TIFF‑bestanden zonder het volledige bestand in één keer in het geheugen te laden. + +## Stap 3: Configureer PDF‑export – *Embed Image PDF* voor perfecte doorzoekbaarheid + +Wanneer je OCR‑resultaten naar PDF exporteert, heb je twee keuzes: alleen de geëxtraheerde tekst insluiten, of de originele afbeelding naast de verborgen tekstlaag insluiten. Het insluiten van de afbeelding behoudt de visuele getrouwheid van de scan en stelt gebruikers in staat later tekst te selecteren of te kopiëren. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Randgeval:** Als je `EmbedOriginalImage` op `false` zet, wordt de resulterende PDF kleiner maar verlies je de originele afbeelding—handig voor pure tekstarchieven. + +## Stap 4: Export – *OCR to PDF C#* in één oproep + +Aspose.OCR maakt het zware werk tot één regel code. De `ExportToPdf`‑methode voert OCR uit, bouwt de verborgen tekstlaag en schrijft het uiteindelijke bestand. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Verwacht resultaat + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Open `output.pdf` in een viewer (Adobe Reader, Edge, etc.) en probeer tekst te selecteren—je ziet de originele afbeelding eronder, wat bevestigt dat de **zoekbare pdf maken**‑operatie geslaagd is. + +## Stap 5: Verifieer de PDF – Snelle controles die je kunt automatiseren + +Hoewel handmatige inspectie prima is voor één bestand, wil je misschien programmatisch controleren of de PDF een tekstlaag bevat. Aspose.PDF (een zusterbibliotheek) kan het document lezen en tekst extraheren: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Voeg een aanroep toe aan `VerifyPdfContainsText(pdfPath);` na de export als je een geautomatiseerde sanity‑check wilt. + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | Het in één keer laden van het volledige bestand overschrijdt het RAM. | Gebruik `ImageStream.FromFile` (zoals getoond) en verwerk pagina's één voor één als je multi‑page bestanden hebt. | +| **Missing license leads to watermarks** | De evaluatiemodus voegt een zichtbaar watermerk toe op elke pagina. | Pas je Aspose.OCR‑licentie vroeg toe: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | Hard‑coded `\` breekt op niet‑Windows OS. | Gebruik `Path.Combine` of raw string literals met `/`. | +| **Text not searchable** | `EmbedOriginalImage` staat op `false` of OCR is uitgeschakeld. | Zorg ervoor dat `PdfExportOptions.EmbedOriginalImage = true` en dat de OCR‑engine correct is geïnitialiseerd. | + +## Bonus: Converteer TIF naar PDF zonder OCR (wanneer tekst niet nodig is) + +Als je alleen **TIF naar PDF** wilt **converteren** zonder de verborgen tekstlaag, kun je de OCR‑stap volledig overslaan: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Deze truc is handig voor het archiveren van gescande documenten waarbij doorzoekbaarheid geen vereiste is. + +## Volledig werkend voorbeeld (klaar om te kopiëren‑plakken) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Voer het programma uit, open `output.pdf`, en je ziet een getrouwe replica van de originele TIFF met een verborgen, selecteerbare tekstlaag—precies wat **zoekbare pdf maken** in de praktijk betekent. + +## Conclusie + +We hebben zojuist een volledige **zoekbare pdf maken** workflow in C# doorlopen. Beginnend met een ruwe TIFF, **genereren we pdf uit afbeelding**, kiezen we ervoor om **image pdf** in te sluiten voor visuele getrouwheid, en demonstreren we de volledige **ocr to pdf c#** pipeline met Aspose.OCR. + +Voel je vrij om de `PdfExportOptions` (compressie, PDF‑versie, etc.) aan te passen of meerdere afbeeldingen te combineren voor batchverwerking. Als volgende stap kun je wachtwoordbeveiliging, digitale handtekeningen, of zelfs het samenvoegen van meerdere doorzoekbare PDF's tot één master‑document verkennen. + +Heb je vragen over het schalen naar duizenden bestanden of het integreren in een ASP.NET API? Laat een reactie achter hieronder of ping me op GitHub—veel plezier met coderen! + +![Voorbeeld van zoekbare PDF](/images/searchable-pdf.png "Voorbeeld van zoekbare PDF") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/dutch/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..2ece94483 --- /dev/null +++ b/ocr/dutch/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: Tekst extraheren uit een afbeelding met Aspose OCR in C#. Leer hoe je + een afbeelding laadt voor OCR en tekst herkent uit TIFF‑bestanden met GPU‑ondersteuning. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: nl +og_description: Tekst extraheren uit afbeelding met Aspose OCR in C#. Deze tutorial + laat zien hoe je een afbeelding laadt voor OCR en tekst herkent uit TIFF met GPU-versnelling. +og_title: Tekst uit afbeelding halen in C# – Complete OCR‑gids +tags: +- OCR +- C# +- Aspose +- GPU +title: Tekst extraheren uit afbeelding in C# – Complete OCR-gids +url: /nl/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tekst extraheren uit afbeelding in C# – Complete OCR-gids + +Heb je ooit **tekst uit een afbeelding moeten extraheren** maar wist je niet welke bibliotheek een gigantische TIFF aankan zonder te haperen? Je bent niet de enige. In veel real‑world projecten—denk aan factuurdigitalisatie of archivering van gescande boeken—wordt het kunnen laden van een afbeelding voor OCR en vervolgens tekst herkennen uit een TIFF snel een cruciale functie. + +In deze gids lopen we stap voor stap door een praktische oplossing die precies dat doet met Aspose OCR voor .NET. Aan het einde heb je een uitvoerbare C# console‑applicatie die een hoge‑resolutie scan laadt, GPU‑versnelde verwerking start (met een nette fallback), en de platte‑tekst uitvoert. Geen ontbrekende onderdelen, geen “zie de docs” doodlopende paden. + +## Wat je nodig hebt + +- **.NET 6 of later** (de code compileert met elke recente SDK) +- **Aspose.OCR for .NET** NuGet‑pakket + `dotnet add package Aspose.OCR` +- Een **grote TIFF** of elk ander afbeeldingsformaat dat je wilt OCR‑en + (het voorbeeld gebruikt `large_scan.tif`) +- (Optioneel) Een GPU die CUDA 11+ ondersteunt – als je er geen hebt, schakelt de bibliotheek automatisch over naar CPU‑modus. + +Dat is alles. Laten we beginnen. + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## Stap 1: Tekst extraheren uit afbeelding – Initialiseert de OCR‑engine + +Voordat een afbeelding kan worden verwerkt, heb je een `OcrEngine`‑instantie nodig. De engine bevat alle instellingen die bepalen hoe de herkenning wordt uitgevoerd. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Waarom dit belangrijk is:** +`ProcessingMode.Gpu` kan seconden schelen bij de herkenningstijd op een moderne kaart, maar het instellen van `ProcessingMode.Auto` (of de standaard laten) is veiliger voor omgevingen waar een GPU mogelijk ontbreekt. De `GpuMemoryLimit`‑bewaking is een praktische tip—zonder deze kan een enorme afbeelding al het VRAM monopoliseren en andere apps laten crashen. + +## Stap 2: Afbeelding laden voor OCR – Breng de TIFF in het geheugen + +Nu de engine klaar is, moeten we hem de afbeelding geven die we willen analyseren. Aspose biedt `ImageStream.FromFile` dat de formatafhandeling abstraheert. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Wat gebeurt er onder de motorkap?** +`ImageStream.FromFile` leest het bestand in een stream en detecteert automatisch het afbeeldingsformaat (TIFF, PNG, JPEG, enz.). Als je met multi‑page TIFFs werkt, behandelt Aspose elke pagina als een afzonderlijk frame; je kunt later over hen itereren indien nodig. + +## Stap 3: Tekst herkennen uit TIFF – Voer de OCR‑engine uit + +Met de afbeelding geladen begint het zware werk. De `Recognize`‑methode retourneert een `OcrResult`‑object dat de geëxtraheerde tekst en enkele handige metagegevensvelden bevat. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Waarom `Recognize` slechts één keer aanroepen?** +Omdat de engine interne structuren cachet na de eerste uitvoering, is één enkele aanroep voldoende voor de meeste scenario's. Als je veel pagina's moet verwerken, hergebruik dan dezelfde `OcrEngine`‑instantie—dit voorkomt de overhead van het opnieuw initialiseren van GPU‑contexten. + +## Stap 4: Resultaat weergeven – Toon de geëxtraheerde tekst + +Tot slot geven we de herkende string weer in de console. In een echte applicatie zou je deze waarschijnlijk naar een database of een bestand schrijven. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Verwachte output:** +Als `large_scan.tif` een afgedrukte factuur bevat, zie je iets als: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +De exacte lay-out hangt af van de bronafbeelding, maar het belangrijkste is dat je nu **tekst uit afbeelding extraheren** resultaten hebt die klaar zijn voor verdere verwerking. + +## Stap 5: Problemen oplossen & randgevallen + +### GPU niet gedetecteerd? + +Als je het voorbeeld uitvoert op een machine zonder compatibele GPU, valt de engine stilletjes terug op CPU wanneer je `ProcessingMode.Auto` gebruikt. Om expliciet CPU‑modus af te dwingen, vervang je de eerdere regel door: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Geheugenvretende TIFFs + +Zeer grote scans (bijv. 10 000 × 10 000 px) kunnen nog steeds de 1 GB GPU‑limiet die we hebben ingesteld overschrijden. In dat geval kun je `GpuMemoryLimit` verhogen (als je extra VRAM hebt) of de afbeelding verkleinen voordat je deze aan de engine geeft: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Multi‑page documenten + +Als je TIFF meerdere pagina's bevat, loop er dan over: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Taal‑ en lettertype‑ondersteuning + +Aspose OCR detecteert automatisch Latijnse scripts, maar voor Cyrillisch, Arabisch of aangepaste lettertypen moet je mogelijk een taalpakket leveren: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Pro‑tips & best practices + +- **Herbruik de engine**: Het aanmaken van een nieuwe `OcrEngine` per afbeelding voegt merkbare latentie toe. +- **Batchverwerking**: Bij het verwerken van tientallen TIFFs, plaats ze in een wachtrij en verwerk ze in parallelle threads—let wel op GPU‑geheugenkwesties. +- **Output valideren**: OCR is niet perfect; voer een eenvoudige spell‑check of regex‑validatie uit op `ocrResult.Text` om duidelijke fouten te vangen. +- **Prestaties loggen**: Meet de verstreken tijd van `Stopwatch` vóór en na `Recognize` om te bepalen of GPU‑versnelling de extra setup waard is in jouw omgeving. + +## Conclusie + +Je hebt nu een compleet, end‑to‑end voorbeeld dat **tekst uit afbeelding** bestanden extraheert met Aspose OCR in C#. Door de afbeelding voor OCR te laden, de engine aan te roepen om tekst uit een TIFF te herkennen, en GPU‑ versus CPU‑scenario's af te handelen, biedt deze tutorial je een productie‑klare basis die je kunt aanpassen voor facturen, paspoorten of elk gescand document. + +Wat nu? Probeer de TIFF te vervangen door een multi‑page PDF, experimenteer met aangepaste taalpakketten, of stuur de output door naar een natural‑language processing‑pipeline voor geautomatiseerde data‑extractie. De mogelijkheden zijn eindeloos—veel plezier met coderen! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/dutch/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..77f7ab579 --- /dev/null +++ b/ocr/dutch/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-04-11 +description: Haal tekst uit TIFF‑bestanden met Aspose OCR batchverwerking in C#. Leer + hoe je batch‑OCR efficiënt verwerkt en realtime voortgangsfeedback krijgt. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: nl +og_description: Tekst extraheren uit TIFF‑bestanden met Aspose OCR batchverwerking + in C#. Deze tutorial laat stap voor stap zien hoe je batch‑OCR verwerkt en de voortgang + leest. +og_title: Tekst uit TIFF extraheren met batch‑OCR in C# – Complete gids +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Tekst extraheren uit TIFF met batch‑OCR in C# – Complete gids +url: /nl/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tekst extraheren uit TIFF – Complete gids voor batch-OCR + +Heb je ooit **tekst uit TIFF**-bestanden moeten extraheren maar zat je vast bij het batch‑verwerkingsgedeelte? Je bent niet de enige. In veel document‑automatiseringsprojecten kan het verwerken van tientallen high‑resolution TIF-afbeeldingen snel een knelpunt worden—vooral wanneer je realtime feedback over de voortgang wilt. + +Het goede nieuws? Met Aspose OCR kun je **batch OCR verwerken** in een handvol regels, realtime voortgangs‑events ontvangen en de herkende tekst voor elke afbeelding outputten. In deze tutorial lopen we een kant‑klaar C# console‑applicatie door die precies dat doet. + +We behandelen alles wat je moet weten: vereiste pakketten, waarom elke regel belangrijk is, randgevallen zoals ontbrekende bestanden, en hoe je de resultaten kunt verifiëren. Aan het einde kun je het voorbeeld in je eigen oplossing plaatsen en direct tekst uit TIFF‑afbeeldingen extraheren. + +## Wat je nodig hebt + +- **.NET 6 of later** (de code compileert ook met .NET Core) +- **Aspose.OCR for .NET** NuGet‑pakket – `Install-Package Aspose.OCR` +- Een map met een paar **TIFF**‑afbeeldingen die je wilt lezen (de demo gebruikt `img1.tif`, `img2.tif`, `img3.tif`) +- Elke IDE die je wilt – Visual Studio, Rider, of VS Code volstaat + +Er is geen extra configuratie vereist; de bibliotheek wordt geleverd met een eigen OCR‑engine, zodat je geen externe native binaries hoeft te installeren. + +--- + +## Stap 1 – Maak een OCR‑engine‑instantie + +Het eerste wat je doet is een `OcrEngine` opstarten. Beschouw het als het brein dat elke pixel analyseert en omzet in tekens. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Waarom dit belangrijk is:** +> De engine bevat interne taalmodellen en instellingen (bijv. DPI, taal). Het één keer aanmaken en hergebruiken voor een batch is veel efficiënter dan voor elke afbeelding een nieuwe engine te instantieren. + +--- + +## Stap 2 – Koppel realtime voortgangs‑events + +Als je tientallen TIFF‑bestanden verwerkt, kan een voortgangsindicator je redden van de vraag of de app vastloopt. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Het `ProgressChanged`‑event wordt getriggerd nadat elke afbeelding is voltooid, en geeft je `Current`, `Total` en `Percentage`. Dit is de **process batch OCR**‑feedbacklus die de meeste ontwikkelaars vergeten te implementeren. + +--- + +## Stap 3 – Bouw een lijst met image‑streams + +Aspose.OCR werkt met `ImageStream`‑objecten. De eenvoudigste manier is om elke TIFF van de schijf te laden. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tip:** +> Als je een dynamische map hebt, vervang dan de hard‑gecodeerde lijst door `Directory.GetFiles(path, "*.tif")` en `Select(ImageStream.FromFile)` – zo kun je echt **process batch OCR** uitvoeren zonder handmatige updates. + +--- + +## Stap 4 – Voer het batch‑OCR‑proces uit + +Nu gebeurt het zware werk. `ProcessBatch` retourneert een alleen‑lezen lijst van `OcrResult`‑objecten, elk met de geëxtraheerde tekst en vertrouwensscores. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Waarom dit efficiënt is:** +> De engine hergebruikt hetzelfde taalmodel voor alle afbeeldingen, waardoor het geheugenverbruik aanzienlijk wordt verminderd vergeleken met afzonderlijke aanroepen per afbeelding. + +--- + +## Stap 5 – Toon of sla de herkende tekst op + +Itereer tenslotte over de resultaten. In een echt project zou je ze naar een database of een JSON‑bestand kunnen schrijven, maar voor deze demo printen we ze gewoon naar de console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Verwachte console‑output** (afgekapt voor beknoptheid): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Als een afbeelding mislukt, zal `result.Text` een lege string zijn, en zal het `ProgressChanged`‑event het item nog steeds als verwerkt rapporteren—zodat je fouten apart kunt loggen. + +--- + +## De voortgangs‑event‑handler (volledige code) + +Plaats deze methode ergens binnen de `BatchDemo`‑klasse—bij voorkeur na `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Leid deze output om naar een UI‑voortgangsbalk als je een desktop‑app bouwt; hetzelfde event werkt voor WinForms, WPF, of zelfs ASP.NET Core SignalR‑meldingen. + +--- + +## Volledig, kant‑klaar voorbeeld + +Alles samenvoegend, hier is het volledige programma dat je kunt kopiëren‑en‑plakken in een nieuw console‑project. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Sla het bestand op als `Program.cs`, voer `dotnet add package Aspose.OCR` uit, vervang `YOUR_DIRECTORY` door het daadwerkelijke pad, en druk op **Ctrl+F5**. Je zou voortgangsnummers moeten zien, gevolgd door de geëxtraheerde tekst voor elke TIFF. + +--- + +## Veelvoorkomende randgevallen afhandelen + +| Situatie | Waar je op moet letten | Snelle oplossing | +|-----------|-------------------|-----------| +| **Ontbrekende of corrupte TIFF** | `ImageStream.FromFile` gooit `FileNotFoundException` of `ArgumentException`. | Plaats de lijstcreatie in een `try/catch` en sla ongeldige bestanden over, log het probleem. | +| **Zeer grote afbeeldingen ( >10 MP )** | OCR kan veel RAM verbruiken en vertragen. | Verlaag DPI vóór verwerking: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Niet‑Engelse tekst** | Standaard taalmodel is Engels. | Stel `ocrEngine.Language = Language.Spanish;` in (of een andere ondersteunde taal). | +| **Resultaten moeten opslaan** | Console‑output is niet persistent. | Schrijf `result.Text` naar een `.txt`‑bestand met `File.WriteAllText`. | + +Het aanpakken van deze scenario's maakt je oplossing robuust en laat zien dat je verder hebt gedacht dan het gelukkige pad. + +--- + +## Volgende stappen & gerelateerde onderwerpen + +- **Tekst extraheren uit PDF** – vergelijkbare API, vervang gewoon `ImageStream` door `PdfDocument`. +- **Parallel batch OCR** – voor enorme workloads, start meerdere `OcrEngine`‑instanties op aparte threads; houd rekening met licentie‑limieten. +- **Post‑processing** – voer de OCR‑output door een spell‑checker of regex om veelvoorkomende OCR‑artefacten op te schonen. + +Al deze uitbreidingen blijven steunen op het kernidee van **process batch OCR** en kunnen geleidelijk worden toegevoegd. + +--- + +## Conclusie + +We hebben zojuist laten zien hoe je efficiënt **tekst uit TIFF**‑bestanden kunt **process batch OCR** met Aspose OCR in C#. Het voorbeeld maakt één engine aan, abonneert zich op voortgangs‑events, laadt een lijst met image‑streams, voert de batch uit en print elk resultaat. + +Vanaf hier kun je de output integreren in databases, doorzoekbare PDF’s genereren, of de tekst doorsturen naar downstream NLP‑pijplijnen. De mogelijkheden zijn eindeloos—experimenteer met taalinstellingen, DPI‑aanpassingen en parallelle uitvoering om aan je specifieke werklast te voldoen. + +Heb je vragen of wil je delen hoe je de batch hebt aangepast? Laat een reactie achter hieronder, 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/dutch/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..b58922101 --- /dev/null +++ b/ocr/dutch/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Leer hoe je tekst uit een PNG herkent en tekst uit een afbeelding haalt + met C# en Aspose OCR. Inclusief stappen voor het laden van een afbeeldingsbestand + in C#, spellingscontrole en volledige code. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: nl +og_description: Herken tekst uit PNG eenvoudig met C#. Volg deze stapsgewijze gids + om een afbeeldingsbestand te laden in C#, tekst uit een afbeelding te extraheren + en een spellingscontrole uit te voeren. +og_title: tekst herkennen uit PNG in C# – Complete OCR‑tutorial +tags: +- OCR +- C# +- Aspose +title: tekst herkennen uit png in C# – Complete OCR‑ en spellingscontrolegids +url: /nl/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# tekst herkennen uit png – Complete C# OCR & Spell‑Check Tutorial + +Heb je ooit **tekst uit png**‑bestanden moeten herkennen maar wist je niet welke bibliotheek je moest kiezen? Je bent niet de enige; veel ontwikkelaars lopen tegen die muur aan wanneer ze voor het eerst beeld‑gebaseerde data‑extractie aanpakken. Het goede nieuws? Met Aspose OCR kun je een afbeeldingsbestand in C# laden, de tekst extraheren en zelfs een ingebouwde spellingscontrole uitvoeren — allemaal in een handvol regels. + +In deze gids lopen we het volledige proces door: het laden van de PNG, het aanroepen van de OCR‑engine en tenslotte het controleren op spelfouten. Aan het einde kun je **tekst uit afbeelding C#**‑projecten extraheren zonder door verspreide documentatie te hoeven zoeken. Ervaring met OCR is niet vereist, alleen een .NET‑ontwikkelomgeving. + +## Wat je nodig hebt + +- **.NET 6.0** (of een recente .NET‑versie) – de API werkt hetzelfde op .NET Core en Framework. +- **Aspose.OCR for .NET** NuGet‑pakket – installeer het via `dotnet add package Aspose.OCR`. +- Een **PNG‑afbeelding** die leesbare tekst bevat (bijv. `letter.png` geplaatst in een map die jij beheert). +- Een code‑editor of IDE (Visual Studio, VS Code, Rider — kies wat je wilt). + +Dat is alles. Geen extra OCR‑engines, geen native DLL’s, alleen een schoon beheerd pakket. + +--- + +## Stap 1: Laad het PNG‑afbeeldingsbestand in C# + +Voordat de OCR‑engine iets kan doen, heeft hij een stream nodig die naar de afbeelding wijst. Aspose biedt `ImageStream.FromFile`, dat de details van het bestandssysteem abstraheert. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** Als je afbeelding is ingebed als resource of afkomstig is van een web‑request, kun je `ImageStream.FromBytes(byte[])` gebruiken — zonder het bestandssysteem aan te raken. + +### Waarom laden belangrijk is + +Het correct laden van de afbeelding zorgt ervoor dat de OCR‑engine de exacte pixeldata ontvangt die hij verwacht. Een corrupte stream zorgt ervoor dat `Recognize` een uitzondering gooit, en je verspilt later tijd met debuggen. + +--- + +## Stap 2: Initialiseert de OCR‑engine + +Het aanmaken van een `OcrEngine`‑instantie is goedkoop, maar je wilt misschien taal‑ of nauwkeurigheidsinstellingen aanpassen voor specifieke use‑cases (bijv. meertalige documenten). De standaardconstructor werkt prima voor Engelse tekst. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Waarom een engine‑instantie? + +De engine bevat configuratie (taal, preprocessing‑filters, enz.). Door configuratie te scheiden van de afbeelding kun je dezelfde engine hergebruiken voor veel bestanden — ideaal voor batch‑verwerking. + +--- + +## Stap 3: Herken tekst uit de PNG + +Nu gebeurt de magie. `Recognize` retourneert een `OcrResult`‑object dat de ruwe string, confidence‑scores en meer bevat. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Verwachte output** (ervan uitgaande dat `letter.png` “Hello World!” zegt): + +``` +=== OCR Output === +Hello World! +``` + +Als de afbeelding meerdere regels bevat, behoudt het resultaat de regeleinden, waardoor verdere verwerking eenvoudig wordt. + +### Randgeval: PNG’s met lage resolutie + +Als de OCR‑output er onleesbaar uitziet, overweeg dan de afbeelding op te schalen of `ocrEngine.PreprocessingOptions` aan te passen. Afbeeldingen met lage DPI verliezen vaak details die de engine nodig heeft. + +--- + +## Stap 4: Voer de ingebouwde spellingscontrole uit + +Aspose OCR wordt geleverd met een lichtgewicht spellingscontrole‑module die direct op het OCR‑resultaat werkt. Deze stap helpt je mis‑herkenningen zoals “H3llo” in plaats van “Hello” te vangen. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Voorbeeldoutput** (als de OCR “World” verkeerd leest als “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Waarom spellingscontrole? + +OCR is nooit 100 % perfect, vooral niet bij ruisende achtergronden. Een snelle spellingscontrole kan duidelijke fouten filteren voordat je de tekst naar downstream‑analytics of databases stuurt. + +--- + +## Stap 5: Alles samenvoegen – Volledig werkend voorbeeld + +Hieronder vind je het complete, kant‑en‑klaar programma. Kopieer‑en‑plak het in een nieuw console‑project, pas het afbeeldingspad aan en druk op **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Het uitvoeren van de demo** print de OCR‑tekst gevolgd door eventuele spellingssuggesties. Het werkt op elke PNG die duidelijke, afgedrukte Engelse tekst bevat. Voor andere talen stel je eenvoudig `ocrEngine.Language` in. + +--- + +## Veelgestelde vragen & valkuilen + +| Vraag | Antwoord | +|----------|--------| +| *Kan ik JPEG‑ of BMP‑bestanden verwerken?* | Absoluut — `ImageStream.FromFile` accepteert elk formaat dat Aspose ondersteunt (PNG, JPEG, BMP, TIFF). | +| *Wat als de afbeelding in een memory‑stream zit?* | Gebruik `ImageStream.FromBytes(byteArray)` of `ImageStream.FromStream(stream)`. | +| *Is de spellingscontrole taal‑bewust?* | Ja, hij houdt rekening met de taal die op de OCR‑engine is ingesteld. | +| *Hoe verbeter ik de nauwkeurigheid bij scheve afbeeldingen?* | Schakel `ocrEngine.PreprocessingOptions.Deskew = true;` in vóór het aanroepen van `Recognize`. | +| *Heb ik een licentie nodig voor Aspose.OCR?* | Een gratis trial werkt voor maximaal 100 pagina’s. Voor productie moet je een licentie aanschaffen om watermerken te verwijderen. | + +--- + +## Volgende stappen – Verder gaan dan basis‑OCR + +Nu je **tekst uit png** kunt **herkennen** en **tekst uit afbeelding C#** kunt **extraheren**, overweeg deze uitbreidingen: + +1. **Batchverwerking** – Loop door een map met PNG’s en schrijf elk OCR‑resultaat naar een apart `.txt`‑bestand. +2. **Integratie met Azure Cognitive Services** – Combineer Aspose OCR met cloud‑gebaseerde vertaal‑API’s voor meertalige pipelines. +3. **Gestructureerde data‑extractie** – Gebruik reguliere expressies op `recognizedText` om data zoals datums, factuurnummers of adressen te halen. +4. **Prestatie‑optimalisatie** – Voor grote volumes hergebruik je één `OcrEngine`‑instantie en schakel je multi‑threading in. + +Elk van deze punten bouwt voort op de kernstappen die we hebben behandeld, zodat je een eenvoudige afbeelding kunt omzetten in bruikbare data. + +--- + +## Conclusie + +We hebben een compleet, end‑to‑end voorbeeld doorlopen dat laat zien hoe je **tekst uit png** in C# kunt **herkennen**, **afbeeldingsbestand C#** correct kunt **laden**, en vervolgens **tekst uit afbeelding C#** kunt **extraheren** terwijl je spelfouten opvangt. De code is zelf‑voorzienend, de uitleg behandelt zowel het “hoe” als het “waarom”, en je hebt nu een solide basis voor elke OCR‑gedreven functionaliteit die je nodig hebt. + +Probeer het, pas de preprocessing‑opties aan, en zie hoe schoon je geëxtraheerde tekst kan worden. Als je tegen vreemde gedragingen aanloopt, laat dan 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/english/net/ocr-configuration/_index.md b/ocr/english/net/ocr-configuration/_index.md index 32e2ef7e1..36a5286cd 100644 --- a/ocr/english/net/ocr-configuration/_index.md +++ b/ocr/english/net/ocr-configuration/_index.md @@ -60,6 +60,8 @@ 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 Disable OCR in C# – Offline Aspose OCR Guide](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Step-by-step guide to turn off OCR in C# apps using offline Aspose OCR configuration. ### Common Use Cases - **Extract text images** from scanned invoices for automated accounting. @@ -100,4 +102,4 @@ A: Yes, the `OcrResult` object provides confidence values you can inspect progra {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/english/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..0a4c58640 --- /dev/null +++ b/ocr/english/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: Learn how to disable OCR in Aspose OCR for C# to run offline, extract + text from image without internet, and correctly load image for OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: en +og_description: How to disable OCR in Aspose OCR for C# and run offline, extract text + from image without needing internet, and load image for OCR easily. +og_title: How to Disable OCR in C# – Offline Aspose OCR Guide +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: How to Disable OCR in C# – Offline Aspose OCR Guide +url: /net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Disable OCR in C# – Offline Aspose OCR Guide + +Ever wondered **how to disable OCR** when you need a truly offline solution? Maybe you’re building a secure desktop app that can’t rely on a network connection, or you just want to avoid unexpected downloads. Either way, the good news is that Aspose OCR lets you turn off its automatic resource fetching, point it at a local folder, and keep everything on‑premises. In this tutorial you’ll also see how to **extract text from image** files and correctly **load image for OCR** without any hiccups. + +We’ll walk through a complete, ready‑to‑run example that shows every step—from initializing the engine to printing the recognized Japanese text. No external docs, no hidden magic; just plain C# code you can drop into your project today. By the end you’ll know why disabling the auto‑download feature matters, how to set the resources path, and what pitfalls to watch out for. + +## Prerequisites + +- .NET 6.0 (or any recent .NET version) installed on your machine. +- Aspose.OCR for .NET NuGet package (`Install-Package Aspose.OCR`). +- A folder that already contains the language resources you need (e.g., the Japanese model). +- An image file (`japan_doc.png`) you want to run OCR against. + +If you’re missing the language packs, grab them from the Aspose portal once, unzip them into a folder like `AsposeOCRResources`, and you’re set. No further downloads will happen once you’ve disabled the auto‑download feature. + +![How to disable OCR offline](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## Step 1 – Create the OCR Engine Instance + +The first thing you do is instantiate `OcrEngine`. Think of this object as the brain that will read your image. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** Without an engine you can’t configure anything. The object holds all settings, including the crucial flag that tells the library whether it may reach out to the internet. + +## Step 2 – Disable Automatic Resource Download + +By default Aspose OCR will try to fetch missing language files on the fly. To keep everything offline, flip the `AutoDownloadResources` switch to `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro tip:** Turning this off not only guarantees privacy but also speeds up the first recognition run because the engine won’t waste time checking for updates. + +## Step 3 – Point to Your Local Resources Folder + +Now tell the engine where the pre‑downloaded language packs live. This is the path you set up in the prerequisites. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **What could go wrong?** If the path is wrong or the required language file is missing, the engine will throw a `ResourceNotFoundException`. Double‑check the folder spelling and that the Japanese model (`jpn.traineddata`) is present. + +## Step 4 – Select the Local Language Model + +Choose the language you actually have on disk. In our example we use Japanese, but you can swap `Language.Japanese` for any other language you’ve downloaded. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Edge case:** Some languages require additional dictionaries (e.g., Chinese). Make sure those auxiliary files are also in the same resources folder. + +## Step 5 – Load the Image for OCR + +Here’s where we **load image for OCR**. The `ImageStream.FromFile` method reads the file into a stream that Aspose can process. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tip:** Supported formats include PNG, JPEG, BMP, and TIFF. If you need to handle PDFs, convert each page to an image first. + +## Step 6 – Run the Recognition Process + +Now the engine actually reads the pixels and tries to turn them into text. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Why this step can be slow:** OCR is CPU‑intensive, especially for high‑resolution images. If performance is a concern, consider down‑scaling the image before recognition. + +## Step 7 – Output the Extracted Text + +Finally, we **extract text from image** and print it to the console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Running the program should display the Japanese characters that were in `japan_doc.png`. If everything is set up correctly, you’ll see a clean block of Unicode text on your console. + +### Expected Output + +``` +これはサンプルの日本語テキストです。 +``` + +(Your actual output will depend on the content of the image.) + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Missing language file** | `AutoDownloadResources` is false, so the engine can’t fetch it. | Verify `ResourcesPath` points to the folder containing `jpn.traineddata`. | +| **Incorrect image path** | `ImageStream.FromFile` throws `FileNotFoundException`. | Use absolute paths or ensure the working directory is set correctly. | +| **Unsupported image format** | Aspose only reads certain formats. | Convert your image to PNG or JPEG before calling `FromFile`. | +| **Out‑of‑memory on large images** | OCR loads the whole image into memory. | Resize or tile the image, or increase the process’s memory limit. | + +## Extending the Example + +- **Batch processing:** Loop over a directory of images, call the same recognition code, and write each result to a separate `.txt` file. +- **Different languages:** Replace `Language.Japanese` with `Language.English` (or any other) after placing the corresponding resource files. +- **Custom preprocessing:** Use Aspose.Imaging to deskew or improve contrast before OCR for better accuracy. + +## Conclusion + +You now know **how to disable OCR** in Aspose OCR for C# and run it completely offline. By setting `AutoDownloadResources` to `false`, pointing the engine at a local resources folder, and correctly **load image for OCR**, you can reliably **extract text from image** without ever touching the internet. This approach is ideal for secure environments, CI pipelines, or any scenario where network access is limited. + +Ready for the next step? Try processing a whole folder of scanned PDFs, experiment with different language packs, or integrate the OCR result into a searchable database. The offline setup you’ve built today is a solid foundation for any on‑premises document‑processing workflow. + +Happy coding, and feel free to drop a comment if you hit any snags! + +{{< /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 ff28e4eeb..672e625f5 100644 --- a/ocr/english/net/ocr-optimization/_index.md +++ b/ocr/english/net/ocr-optimization/_index.md @@ -72,6 +72,8 @@ 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 Improve OCR Accuracy in C# with Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Boost OCR precision in C# by applying advanced preprocessing, language models, and custom dictionaries with Aspose OCR. ## Frequently Asked Questions diff --git a/ocr/english/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/english/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..605743068 --- /dev/null +++ b/ocr/english/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Learn how to improve OCR in C# by recognizing text from JPG, deskewing + images, and removing noise using Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: en +og_description: Discover how to improve OCR by recognizing text from JPG, deskewing + images, and removing noise—complete C# guide. +og_title: How to Improve OCR Accuracy in C# with Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: How to Improve OCR Accuracy in C# with Aspose OCR +url: /net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Improve OCR Accuracy in C# with Aspose OCR + +Ever wondered **how to improve OCR** results when your scans look more like abstract art than readable text? You're not the only one. In many real‑world projects—think invoices, receipts, or handwritten notes—the source images are often skewed, grainy, or just plain noisy. The good news? Aspose OCR gives you a handful of preprocessing knobs that can turn that mess into clean, machine‑readable characters. In this tutorial we’ll walk through a complete, runnable example that shows **how to improve OCR** by **recognizing text from JPG**, deskewing the picture, and stripping out unwanted noise. + +> *Pro tip:* If you skip preprocessing, you’ll likely end up with garbled output that looks like a cryptic crossword puzzle. Let’s avoid that. + +![How to improve OCR with Aspose OCR preprocessing](https://example.com/ocr-preprocess.png "how to improve OCR with Aspose OCR") + +## What You’ll Learn + +In the next few minutes you’ll see: + +1. How to set up the Aspose OCR engine for optimal accuracy. +2. The exact code needed to **recognize text from JPG** files. +3. Why enabling *AutoDeskew* and *RemoveNoise* matters and how to tune them. +4. How to **extract text from image** files without writing a custom filter. +5. Common pitfalls (missing file, unsupported format) and quick fixes. + +By the end you’ll have a single C# console app that can take any JPG, clean it up, and spit out the extracted string—ready for downstream processing or storage. + +## Prerequisites + +- .NET 6.0 SDK or later (the example uses top‑level statements for brevity). +- Aspose.OCR NuGet package (`dotnet add package Aspose.OCR`). +- A sample JPG image (named `input.jpg`) placed in the same folder as the executable. +- Basic familiarity with C#—no advanced concepts required. + +If you already have a project, just drop the code in; otherwise create a new console app: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Now let’s dive into the code. + +## How to Improve OCR: Preprocess Settings Overview + +The heart of **how to improve OCR** lies in the `PreprocessSettings` object. Think of it as a mini‑image‑editor that runs *before* the actual character recognition engine fires. Below is a quick rundown of the most impactful flags: + +| Setting | What it does | Typical use case | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | Applies a deep‑learning de‑skew algorithm. | Scanned pages that are slightly tilted. | +| `AdaptiveThreshold` | Boosts contrast in low‑light or faded images. | Old receipts with washed‑out ink. | +| `RemoveNoise` | Runs a Gaussian‑blur filter to suppress speckles. | Photos taken with a smartphone flash. | +| `NoiseRemovalStrength`| Controls aggressiveness (1 = low, 3 = high). | Fine‑tune based on how grainy the source is. | + +Enabling these options is essentially the “secret sauce” for **how to improve OCR** on imperfect inputs. + +## Recognize Text from JPG with Aspose OCR + +Below is the full, ready‑to‑run program. Every line is annotated so you can see *why* each piece exists, not just *what* it does. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Expected Output + +If `input.jpg` contains the phrase “Invoice #12345 – Total: $256.78”, the console will print: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Notice how the output is clean, with the dash and dollar sign preserved—exactly what you’d expect when **extracting text from image** files. + +## How to Deskew Image Using Preprocess Settings + +Why does deskewing matter? Even a 2‑degree tilt can confuse the character segmentation stage, leading to mis‑identified letters. The `AutoDeskew` flag runs a convolutional neural network under the hood that detects the dominant angle and rotates the image back to baseline. + +If you need more control, you can manually set the angle: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **When to use manual deskew:** If you know the camera consistently tilts images by a fixed amount (e.g., a mounted scanner), hard‑coding the angle saves a tiny bit of processing time. + +## How to Remove Noise for Cleaner Extraction + +Noise shows up as random speckles or grain, especially on low‑light photos. The `RemoveNoise` flag applies a bilateral filter that smooths the background while preserving edges (the actual characters). The `NoiseRemovalStrength` property lets you dial the aggressiveness: + +| Strength | Effect | +|----------|--------| +| 1 | Light smoothing—good for mildly grainy pictures. | +| 2 | Balanced—works for most smartphone captures. | +| 3 | Heavy smoothing—use when the image is extremely noisy, but beware of blurring thin strokes. | + +If you encounter a scenario where small fonts become unreadable after heavy smoothing, simply lower the strength or disable the filter altogether. + +## Extract Text from Image: Beyond JPG + +While our demo focuses on a JPG, Aspose OCR supports PNG, BMP, TIFF, and even PDF pages. To **extract text from image** formats other than JPG, just change the file extension in `ImageStream.FromFile`. For multi‑page TIFFs you can loop through each page: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +That snippet shows how you could scale the same **how to improve OCR** workflow to batch‑process a whole stack of scanned documents. + +## Common Pitfalls & How to Fix Them + +| Symptom | Likely Cause | Quick Fix | +|---------|--------------|-----------| +| Blank output | Image is completely white after preprocessing (over‑aggressive threshold) | Reduce `NoiseRemovalStrength` or set `AdaptiveThreshold = false`. | +| Garbled characters | Wrong language model (default is English) | Set `ocrEngine.Settings.Language = Language.English;` or load a custom language pack. | +| Crash on large files | Out‑of‑memory due to high‑resolution image | Downscale with `ocrEngine.Settings.ImageResizeFactor = 0.5;` before recognition. | +| No output for rotated scans | `AutoDeskew` disabled inadvertently | Enable `AutoDeskew = true` or supply correct `DeskewAngle`. | + +Keeping these in mind will save you hours of debugging when you’re trying to **how to improve OCR** in production pipelines. + +## Bonus: Tweaking for Speed vs. Accuracy + +If you’re processing thousands of receipts per day, you might prioritize speed. Turn off `AdaptiveThreshold` and set `NoiseRemovalStrength = 1`. Conversely, for legal documents where a single missed character could be costly, keep all flags on and consider increasing `NoiseRemovalStrength` to 3. + +## Wrap‑Up + +We’ve covered the entire journey of **how to improve OCR** in C# using Aspose OCR: from creating the engine, configuring preprocessing (the cornerstone of *how to deskew image* and *how to remove noise*), loading a JPG, recognizing text, and handling edge cases. The code is self‑contained, runs out of the box, and demonstrates the exact steps you need to **recognize text from jpg** and **extract text from image** files. + +### What’s Next? + +- Experiment with other image formats (PNG, TIFF) to see how the same settings behave. +- Integrate the OCR output into a database or + +{{< /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 b3bb5f052..78cd19602 100644 --- a/ocr/english/net/text-recognition/_index.md +++ b/ocr/english/net/text-recognition/_index.md @@ -19,7 +19,7 @@ Are you ready to take your .NET applications to the next level? Dive into the wo ## Get Choices for Recognized Characters in OCR Image Recognition -In this tutorial, we'll guide you through leveraging the power of Aspose.OCR for .NET to enhance your image recognition capabilities. Learn step-by-step how to retrieve choices for recognized characters, ensuring accuracy and efficiency in your applications. Elevate your OCR experience with Aspose.OCR's cutting-edge features. +In this tutorial, we'll guide you through leveraging the power of Aspose.OCR for .NET to enhance your image recognition capabilities. Learn step-by-step how to retrieve choices for recognized characters, ensuring accuracy and efficiency in your applications. Elevate your OCR experience with Aspose.OCR's cutting‑edge features. ## Get Recognition Result in OCR Image Recognition @@ -27,7 +27,7 @@ Explore the capabilities of Aspose.OCR for .NET and transform the way you handle ## Get Result as JSON in OCR Image Recognition -Unleash the full potential of Aspose.OCR for .NET by learning how to obtain OCR results in JSON format effortlessly. This step-by-step guide ensures a smooth journey towards enhancing your image recognition capabilities. Elevate your application's efficiency with Aspose.OCR's robust features and industry-leading technology. +Unleash the full potential of Aspose.OCR for .NET by learning how to obtain OCR results in JSON format effortlessly. This step‑by‑step guide ensures a smooth journey towards enhancing your image recognition capabilities. Elevate your application's efficiency with Aspose.OCR's robust features and industry‑leading technology. ## OCR Detect Areas Mode in OCR Image Recognition @@ -39,25 +39,36 @@ Unlock the potential of OCR in .NET with Aspose.OCR. Extract text from PDFs effo ## Recognize Table in OCR Image Recognition -Navigate the complexities of recognizing tables in OCR image recognition with Aspose.OCR for .NET. Our comprehensive guide empowers you to unlock the full potential of Aspose.OCR, ensuring accurate and efficient table recognition in your applications. Elevate your projects with the industry-leading OCR solution. +Navigate the complexities of recognizing tables in OCR image recognition with Aspose.OCR for .NET. Our comprehensive guide empowers you to unlock the full potential of Aspose.OCR, ensuring accurate and efficient table recognition in your applications. Elevate your projects with the industry‑leading OCR solution. Ready to revolutionize your .NET applications? Dive into our Text Recognition Tutorials and harness the power of Aspose.OCR for accurate and efficient text recognition in images. Download now and embark on a journey of enhanced OCR capabilities. ## Text Recognition Tutorials ### [Get Choices for Recognized Characters in OCR Image Recognition](./get-choices-for-recognized-characters/) -Enhance your .NET applications with Aspose.OCR for accurate character recognition. Follow our step-by-step guide to retrieve choices for recognized characters in image recognition. +Enhance your .NET applications with Aspose.OCR for accurate character recognition. Follow our step‑by‑step guide to retrieve choices for recognized characters in image recognition. ### [Get Recognition Result in OCR Image Recognition](./get-recognition-result/) Explore Aspose.OCR for .NET, a powerful OCR solution for seamless text recognition in images. ### [Get Result as JSON in OCR Image Recognition](./get-result-as-json/) -Unleash the power of Aspose.OCR for .NET. Learn to obtain OCR results in JSON format effortlessly. Enhance your image recognition with this step-by-step guide. +Unleash the power of Aspose.OCR for .NET. Learn to obtain OCR results in JSON format effortlessly. Enhance your image recognition with this step‑by‑step guide. ### [OCR Detect Areas Mode in OCR Image Recognition](./ocr-detect-areas-mode/) Enhance your .NET applications with Aspose.OCR for efficient image text recognition. Explore OCR Detect Areas Mode for precise results. ### [Recognize PDF in OCR Image Recognition](./recognize-pdf/) 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. +### [Recognize Text from PNG in C# – Full OCR & Spell‑Check Guide](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Learn how to recognize text from PNG images in C# with Aspose.OCR, including full OCR processing and spell‑check integration. +### [Extract Text from Image in C# – Complete OCR Guide](./extract-text-from-image-in-c-complete-ocr-guide/) +Learn how to extract text from images using Aspose.OCR in C#. Follow our comprehensive guide for accurate OCR results. +### [Extract Text from TIFF with Batch OCR in C# – Complete Guide](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Learn how to batch process TIFF files and extract text using Aspose.OCR in C#. Follow our step‑by‑step guide for efficient OCR handling. +### [Create Searchable PDF in C# – Complete Guide](./create-searchable-pdf-in-c-complete-guide/) +Learn how to generate searchable PDFs from images using Aspose.OCR in C#. Follow our comprehensive step‑by‑step guide. +### [Convert Image to JSON – C# OCR Tutorial for Receipts](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Learn how to convert receipt images to JSON using Aspose.OCR in C#, enabling easy data extraction and processing. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/english/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..af83f7d66 --- /dev/null +++ b/ocr/english/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: Convert image to JSON using Aspose OCR Cloud in C#. Learn how to recognize + text, extract text from image, and process receipt with OCR in minutes. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: en +og_description: Convert image to JSON with Aspose OCR Cloud in C#. This guide shows + how to recognize text, extract text from image, and process receipt with OCR. +og_title: Convert Image to JSON – C# OCR Tutorial for Receipts +tags: +- OCR +- C# +- Aspose +- JSON +title: Convert Image to JSON – C# OCR Tutorial for Receipts +url: /net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert Image to JSON – C# OCR Tutorial for Receipts + +Ever needed to **convert image to JSON** but weren't sure where to start? In this guide we’ll walk you through a complete, end‑to‑end C# OCR tutorial that takes a photo of a receipt, recognizes the text, and spits out a tidy JSON payload. + +If you’ve ever wondered *how to recognize text* in a scanned document, or you’re looking for a quick way to **extract text from image** files, you’re in the right place. By the end of this article you’ll be able to **process receipt with OCR** and feed the result straight into your downstream APIs. + +## What You’ll Need + +- .NET 6 SDK or later (the code works with .NET Core as well) +- An Aspose Cloud API key – you can grab a free trial from the Aspose portal +- A sample receipt image (`receipt.jpg`) stored locally +- Your favorite IDE (Visual Studio, VS Code, Rider – any will do) + +No extra NuGet packages beyond the official `Aspose.OCR.Cloud` client are required. If you already have the SDK installed, you’re good to go. + +## Step 1 – Convert Image to JSON: Set Up the OCR Client + +First things first, we need an instance of `CloudOcrClient`. This object handles all communication with Aspose’s OCR service and will return the result in JSON format. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Initializing the client is the bridge between your C# code and the cloud OCR engine. The `RecognizeAsync` method does the heavy lifting – it uploads the image, runs the OCR engine, and returns a JSON string that contains the recognized text, confidence scores, and bounding‑box coordinates. + +> **Pro tip:** Store the API key in an environment variable or a secret manager instead of hard‑coding it. That way you avoid accidental leaks. + +## Step 2 – How to Recognize Text from the Receipt + +Now that the client is ready, let’s dig into the *how* behind text recognition. Aspose OCR supports many languages, but for most receipts English works fine. If you need another language, just swap `Language.English` for the appropriate enum value. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** The service runs a deep‑learning model that detects characters, groups them into words, and then assembles lines. The returned JSON looks roughly like this: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +You can parse this JSON with `System.Text.Json` or `Newtonsoft.Json` to pull out the fields you care about. + +## Step 3 – Extract Text from Image and Build JSON Manually (Optional) + +Sometimes you don’t want the raw JSON Aspose gives you; maybe you need a custom structure for your downstream service. Below is a quick example that deserializes the response and re‑packages it into a cleaner object. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Many APIs expect a specific schema (e.g., `{ "total": "12.34", "date": "2026-04-10" }`). By extracting only the fields you need, you keep the payload lightweight and avoid leaking unnecessary OCR metadata. + +## Step 4 – Test the C# OCR Tutorial with a Sample Receipt + +Run the program from your terminal: + +```bash +dotnet run +``` + +You should see two blocks of output: + +1. The raw JSON returned by Aspose (the **convert image to json** result straight from the cloud). +2. The custom JSON you built in the previous step. + +Typical output looks like: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +If you get an error like *401 Unauthorized*, double‑check that your API key is valid and that the image path is correct. + +## Edge Cases & Common Pitfalls + +| Situation | What to Watch For | Suggested Fix | +|-----------|------------------|---------------| +| **Low‑resolution receipt** | OCR confidence drops below 0.8 | Pre‑process the image (increase DPI, sharpen) before sending | +| **Non‑English characters** | Wrong language enum | Use `Language.AutoDetect` or specify the correct language | +| **Large batch of receipts** | Rate‑limit errors | Implement exponential back‑off or request a higher quota from Aspose | +| **Missing fields** | Custom parser returns `null` | Add fallback logic or regex patterns for more robust extraction | + +## Visual Overview + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *convert image to json flow diagram illustrating the steps covered in this tutorial.* + +## Recap + +We’ve shown you how to **convert image to JSON** with Aspose OCR Cloud, explained *how to recognize text* in a receipt, demonstrated ways to **extract text from image**, and wrapped everything in a clean **C# OCR tutorial** that you can drop into any .NET project. + +The key takeaways are: + +- Set up `CloudOcrClient` with your API key. +- Call `RecognizeAsync` to get a JSON payload straight from the service. +- Optionally reshape that payload to fit your own data contract. + +## What’s Next? + +- **Batch processing:** Loop over a folder of receipts and aggregate the results into a single JSON array. +- **Advanced parsing:** Use regular expressions or a small NLP model to pull out line items, taxes, and discounts. +- **Integration:** Push the final JSON into a database, a message queue, or an Azure Function for further automation. + +Feel free to experiment with different image formats (PNG, TIFF) or try the **process receipt with OCR** flow on mobile‑captured photos. The sky’s the limit once you have a reliable way to **convert image to JSON**. + +Got questions or hit a snag? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/english/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..b42fa5bf5 --- /dev/null +++ b/ocr/english/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Create searchable PDF from an image quickly. Learn to generate PDF from + image, embed image PDF, convert TIF to PDF, and use OCR to PDF C# with Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: en +og_description: Create searchable PDF instantly. This tutorial shows how to generate + PDF from image, embed image PDF, convert TIF to PDF, and use OCR to PDF C#. +og_title: Create Searchable PDF in C# – Step‑by‑Step Guide +tags: +- C# +- OCR +- PDF generation +title: Create Searchable PDF in C# – Complete Guide +url: /net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Searchable PDF in C# – Complete Guide + +Ever needed to **create searchable PDF** from a scanned document but weren't sure where to start? You're not alone; many devs hit the same wall when dealing with TIFF files and OCR. In this tutorial we'll walk through a hands‑on solution that lets you **generate PDF from image**, embed the original picture for perfect searchability, and finish with a clean **OCR to PDF C#** workflow. + +We'll cover everything from installing the Aspose.OCR library to handling edge cases like multi‑page TIFFs. By the end you’ll have a ready‑to‑run program that turns `input.tif` into a fully searchable `output.pdf`. No external services, no hidden magic—just plain C# code you can drop into any .NET project. + +## What You’ll Need + +- .NET 6.0 or later (the code works on .NET Framework 4.7+ as well) +- Visual Studio 2022 (or any editor you prefer) +- An active Aspose.OCR license or a free trial key (the NuGet package works without a key for evaluation) +- A sample TIFF image (`input.tif`) placed in a folder you can reference + +> **Pro tip:** Keep your image files under 10 MB to avoid memory spikes when processing large batches. + +## Step 1: Install Aspose.OCR and Set Up the Project + +First, add the Aspose.OCR NuGet package to your project. Open the Package Manager Console and run: + +```powershell +Install-Package Aspose.OCR +``` + +If you prefer the UI, right‑click **Dependencies → Manage NuGet Packages**, search for *Aspose.OCR*, and click **Install**. + +Why this step matters: Aspose.OCR bundles a high‑performance OCR engine and a built‑in PDF exporter, so you don’t need separate libraries for image handling or PDF creation. + +### Full Project Skeleton + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note:** Replace `YOUR_DIRECTORY` with the actual folder path on your machine. + +## Step 2: Load the Image – *Generate PDF from Image* Foundation + +Loading the source file is a tiny but critical step. Aspose.OCR expects an `ImageStream`, which abstracts file I/O and supports many formats (TIFF, PNG, JPEG, etc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Why not just pass the path?** +The `ImageStream` wrapper handles internal buffering and ensures the OCR engine works with large multi‑page TIFFs without loading the whole file into memory at once. + +## Step 3: Configure PDF Export – *Embed Image PDF* for Perfect Searchability + +When you export OCR results to PDF, you have two choices: embed the extracted text only, or embed the original image alongside the hidden text layer. Embedding the image keeps the visual fidelity of the scan and lets users select or copy text later. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** If you set `EmbedOriginalImage` to `false`, the resulting PDF will be smaller but will lose the original picture—useful for pure text archives. + +## Step 4: Export – *OCR to PDF C#* in One Call + +Aspose.OCR makes the heavy lifting a one‑liner. The `ExportToPdf` method runs OCR, builds the hidden text layer, and writes the final file. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Expected Result + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Open `output.pdf` in any viewer (Adobe Reader, Edge, etc.) and try selecting text—you’ll see the original image underneath, confirming the **create searchable pdf** operation succeeded. + +## Step 5: Verify the PDF – Quick Checks You Can Automate + +While manual inspection is fine for a single file, you might want to assert the PDF contains a text layer programmatically. Aspose.PDF (a sister library) can read the document and extract text: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Add a call to `VerifyPdfContainsText(pdfPath);` after the export if you want an automated sanity check. + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | Loading the whole file at once exceeds RAM. | Use `ImageStream.FromFile` (as shown) and process pages one‑by‑one if you have multi‑page files. | +| **Missing license leads to watermarks** | Evaluation mode adds a visible watermark on each page. | Apply your Aspose.OCR license early: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | Hard‑coded `\` breaks on non‑Windows OS. | Use `Path.Combine` or raw string literals with `/`. | +| **Text not searchable** | `EmbedOriginalImage` set to `false` or OCR disabled. | Ensure `PdfExportOptions.EmbedOriginalImage = true` and that the OCR engine is correctly initialized. | + +## Bonus: Convert TIF to PDF Without OCR (When Text Isn't Needed) + +If you only need to **convert TIF to PDF** without the hidden text layer, you can skip the OCR step entirely: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +This trick is handy for archiving scanned documents where searchability isn’t a requirement. + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Run the program, open `output.pdf`, and you’ll see a faithful replica of the original TIFF with a hidden, selectable text layer—exactly what **create searchable pdf** means in practice. + +## Conclusion + +We’ve just walked through a complete **create searchable pdf** workflow in C#. Starting from a raw TIFF, we **generate pdf from image**, chose to **embed image pdf** for visual fidelity, and demonstrated the full **ocr to pdf c#** pipeline using Aspose.OCR. + +Feel free to tweak the `PdfExportOptions` (compression, PDF version, etc.) or chain multiple images together for batch processing. Next up you might explore adding password protection, digital signatures, or even merging several searchable PDFs into one master document. + +Got questions about scaling this to thousands of files or integrating it into an ASP.NET API? Drop a comment below or ping me on GitHub—happy coding! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/english/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..15ef0559d --- /dev/null +++ b/ocr/english/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: Extract text from image using Aspose OCR in C#. Learn how to load image + for OCR and recognize text from TIFF files with GPU support. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: en +og_description: Extract text from image with Aspose OCR in C#. This tutorial shows + how to load image for OCR and recognize text from TIFF using GPU acceleration. +og_title: Extract Text from Image in C# – Complete OCR Guide +tags: +- OCR +- C# +- Aspose +- GPU +title: Extract Text from Image in C# – Complete OCR Guide +url: /net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image in C# – Complete OCR Guide + +Ever needed to **extract text from image** but weren’t sure which library would handle a gigantic TIFF without choking? You’re not alone. In many real‑world projects—think invoice digitization or archival of scanned books—the ability to load image for OCR and then recognize text from TIFF quickly becomes a make‑or‑break feature. + +In this guide we’ll walk through a hands‑on solution that does exactly that using Aspose OCR for .NET. By the end you’ll have a runnable C# console app that loads a high‑resolution scan, fires up GPU‑accelerated processing (with a graceful fallback), and spits out the plain‑text result. No missing pieces, no “see the docs” dead‑ends. + +## What You’ll Need + +- **.NET 6 or later** (the code compiles with any recent SDK) +- **Aspose.OCR for .NET** NuGet package + `dotnet add package Aspose.OCR` +- A **large TIFF** or any other image format you want to OCR + (the example uses `large_scan.tif`) +- (Optional) A GPU that supports CUDA 11+ – if you don’t have one, the library will auto‑switch to CPU mode. + +That’s it. Let’s dive in. + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## Step 1: Extract Text from Image – Initialise the OCR Engine + +Before any image can be processed, you need an `OcrEngine` instance. The engine holds all the settings that control how the recognition runs. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Why this matters:** +`ProcessingMode.Gpu` can shave seconds off recognition time on a modern card, but setting `ProcessingMode.Auto` (or leaving the default) is safer for environments where a GPU might be missing. The `GpuMemoryLimit` guard is a practical tip—without it, a huge image could monopolise all VRAM and crash other apps. + +## Step 2: Load Image for OCR – Bring the TIFF Into Memory + +Now that the engine is ready, we need to feed it the picture we want to analyse. Aspose provides `ImageStream.FromFile` which abstracts away format handling. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**What’s happening under the hood?** +`ImageStream.FromFile` reads the file into a stream and automatically detects the image format (TIFF, PNG, JPEG, etc.). If you’re dealing with multi‑page TIFFs, Aspose will treat each page as a separate frame; you can iterate over them later if needed. + +## Step 3: Recognize Text from TIFF – Run the OCR Engine + +With the image loaded, the heavy lifting begins. The `Recognize` method returns an `OcrResult` object that contains the extracted text and a few handy metadata fields. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Why call `Recognize` only once?** +Because the engine caches internal structures after the first run, a single call is enough for most scenarios. If you need to process many pages, reuse the same `OcrEngine` instance—this avoids the overhead of re‑initialising GPU contexts. + +## Step 4: Display the Result – Show the Extracted Text + +Finally, we output the recognized string to the console. In a real application you’d probably write it to a database or a file. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Expected output:** +If `large_scan.tif` contains a printed invoice, you’ll see something like: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +The exact layout depends on the source image, but the key point is that you now have **extract text from image** results ready for downstream processing. + +## Step 5: Troubleshooting & Edge Cases + +### GPU Not Detected? + +If you run the sample on a machine without a compatible GPU, the engine silently falls back to CPU when you use `ProcessingMode.Auto`. To force CPU mode explicitly, replace the earlier line with: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Memory‑Hungry TIFFs + +Very large scans (e.g., 10 000 × 10 000 px) may still exceed the 1 GB GPU cap we set. In that case, either raise `GpuMemoryLimit` (if you have spare VRAM) or downscale the image before feeding it to the engine: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Multi‑Page Documents + +If your TIFF contains multiple pages, loop over them: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Language & Font Support + +Aspose OCR auto‑detects Latin‑based scripts, but for Cyrillic, Arabic, or custom fonts you may need to supply a language pack: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Pro Tips & Best Practices + +- **Reuse the engine**: Creating a new `OcrEngine` per image adds noticeable latency. +- **Batch processing**: When handling dozens of TIFFs, queue them and process in parallel threads—just be mindful of GPU memory contention. +- **Validate output**: OCR isn’t perfect; run a simple spell‑check or regex validation on `ocrResult.Text` to catch obvious mis‑recognitions. +- **Log performance**: Measure `Stopwatch` elapsed time before and after `Recognize` to decide whether GPU acceleration is worth the extra setup in your environment. + +## Conclusion + +You now have a complete, end‑to‑end example that **extracts text from image** files using Aspose OCR in C#. By loading the image for OCR, invoking the engine to recognize text from TIFF, and handling GPU vs. CPU scenarios, this tutorial gives you a production‑ready foundation you can adapt to invoices, passports, or any scanned document. + +What’s next? Try swapping the TIFF for a multi‑page PDF, experiment with custom language packs, or pipe the output into a natural‑language processing pipeline for automated data extraction. The sky’s the limit—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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/english/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..6f07b02d8 --- /dev/null +++ b/ocr/english/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-04-11 +description: Extract text from TIFF files using Aspose OCR batch processing in C#. + Learn how to process batch OCR efficiently and get real‑time progress feedback. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: en +og_description: Extract text from TIFF files using Aspose OCR batch processing in + C#. This tutorial shows step‑by‑step how to process batch OCR and read progress. +og_title: Extract Text from TIFF with Batch OCR in C# – Complete Guide +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extract Text from TIFF with Batch OCR in C# – Complete Guide +url: /net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from TIFF – Batch OCR Complete Guide + +Ever needed to **extract text from TIFF** files but felt stuck at the batch‑processing part? You're not the only one. In many document‑automation projects, handling dozens of high‑resolution TIF images can quickly become a bottleneck—especially when you want live feedback on progress. + +The good news? With Aspose OCR you can **process batch OCR** in a handful of lines, get real‑time progress events, and output the recognized text for each image. In this tutorial we’ll walk through a ready‑to‑run C# console app that does exactly that. + +We'll cover everything you need to know: required packages, why each line matters, edge‑cases like missing files, and how to verify the results. By the end you’ll be able to drop the sample into your own solution and start extracting text from TIFF images right away. + +## What You’ll Need + +- **.NET 6 or later** (the code compiles with .NET Core as well) +- **Aspose.OCR for .NET** NuGet package – `Install-Package Aspose.OCR` +- A folder containing a few **TIFF** images you want to read (the demo uses `img1.tif`, `img2.tif`, `img3.tif`) +- Any IDE you like – Visual Studio, Rider, or VS Code will do + +No extra configuration is required; the library ships with its own OCR engine, so you won’t have to install external native binaries. + +--- + +## Step 1 – Create the OCR Engine Instance + +The first thing you do is spin up an `OcrEngine`. Think of it as the brain that will analyse each pixel and turn it into characters. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> The engine holds internal language models and settings (e.g., DPI, language). Creating it once and re‑using it for a batch is far more efficient than instantiating a new engine per image. + +--- + +## Step 2 – Hook Up Real‑Time Progress Events + +If you’re processing dozens of TIFF files, a progress indicator can save you from wondering whether the app is stuck. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +The `ProgressChanged` event fires after each image finishes, giving you `Current`, `Total`, and `Percentage`. This is the **process batch OCR** feedback loop that most developers forget to implement. + +--- + +## Step 3 – Build a List of Image Streams + +Aspose.OCR works with `ImageStream` objects. The easiest way is to load each TIFF from disk. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tip:** +> If you have a dynamic folder, replace the hard‑coded list with `Directory.GetFiles(path, "*.tif")` and `Select(ImageStream.FromFile)` – that way you truly **process batch OCR** without manual updates. + +--- + +## Step 4 – Run the Batch OCR Process + +Now the heavy lifting happens. `ProcessBatch` returns a read‑only list of `OcrResult` objects, each containing the extracted text and confidence scores. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Why this is efficient:** +> The engine re‑uses the same language model across all images, dramatically reducing memory churn compared to single‑image calls. + +--- + +## Step 5 – Display or Store the Recognised Text + +Finally, iterate over the results. In a real project you might write them to a database or a JSON file, but for this demo we’ll just print to the console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Expected console output** (truncated for brevity): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +If any image fails, `result.Text` will be an empty string, and the `ProgressChanged` event will still report the item as processed—so you can log failures separately. + +--- + +## The Progress Event Handler (Full Code) + +Place this method anywhere inside the `BatchDemo` class—preferably after `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Redirect this output to a UI progress bar if you’re building a desktop app; the same event works for WinForms, WPF, or even ASP.NET Core SignalR notifications. + +--- + +## Full, Ready‑to‑Run Sample + +Putting everything together, here’s the complete program you can copy‑paste into a new console project. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Save the file as `Program.cs`, run `dotnet add package Aspose.OCR`, replace `YOUR_DIRECTORY` with the actual path, and hit **Ctrl+F5**. You should see progress numbers followed by the extracted text for each TIFF. + +--- + +## Handling Common Edge Cases + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **Missing or corrupted TIFF** | `ImageStream.FromFile` throws `FileNotFoundException` or `ArgumentException`. | Wrap the list creation in a `try/catch` and skip invalid files, logging the issue. | +| **Very large images ( >10 MP )** | OCR may consume a lot of RAM and slow down. | Reduce DPI before processing: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Non‑English text** | Default language model is English. | Set `ocrEngine.Language = Language.Spanish;` (or any supported language). | +| **Need to save results** | Console output isn’t persistent. | Write `result.Text` to a `.txt` file using `File.WriteAllText`. | + +Addressing these scenarios makes your solution robust and shows the AI that you’ve thought beyond the happy path. + +--- + +## Next Steps & Related Topics + +- **Extract text from PDF** – similar API, just replace `ImageStream` with `PdfDocument`. +- **Parallel batch OCR** – for massive workloads, spin up multiple `OcrEngine` instances on separate threads; remember to respect licensing limits. +- **Post‑processing** – run the OCR output through a spell‑checker or regex to clean up common OCR artefacts. + +All of these extensions still rely on the core idea of **process batch OCR** and can be added incrementally. + +--- + +## Conclusion + +We’ve just demonstrated how to **extract text from TIFF** files efficiently by **process batch OCR** with Aspose OCR in C#. The sample creates a single engine, subscribes to progress events, loads a list of image streams, runs the batch, and prints each result. + +From here you can integrate the output into databases, generate searchable PDFs, or feed the text into downstream NLP pipelines. The sky’s the limit—experiment with language settings, DPI tweaks, and parallel execution to suit your specific workload. + +Got questions or want to share how you customized the batch? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/english/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..696a37e67 --- /dev/null +++ b/ocr/english/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-04-11 +description: Learn how to recognize text from png and extract text from image C# using + Aspose OCR. Includes load image file C# steps, spell checking and full code. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: en +og_description: recognize text from png easily with C#. Follow this step‑by‑step guide + to load image file C#, extract text from image C#, and run spell check. +og_title: recognize text from png in C# – Complete OCR Tutorial +tags: +- OCR +- C# +- Aspose +title: recognize text from png in C# – Full OCR & Spell‑Check Guide +url: /net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# recognize text from png – Complete C# OCR & Spell‑Check Tutorial + +Ever needed to **recognize text from png** files but weren’t sure which library to pick? You’re not alone; many developers hit that wall when they first tackle image‑based data extraction. The good news? With Aspose OCR you can load an image file in C#, extract the text, and even run a built‑in spell checker—all in a handful of lines. + +In this guide we’ll walk through the whole process: loading the PNG, calling the OCR engine, and finally checking for misspelled words. By the end you’ll be able to **extract text from image C#** projects without hunting through scattered docs. No prior OCR experience is required, just a .NET development environment. + +## What You’ll Need + +- **.NET 6.0** (or any recent .NET version) – the API works the same across .NET Core and Framework. +- **Aspose.OCR for .NET** NuGet package – install it via `dotnet add package Aspose.OCR`. +- A **PNG image** that contains readable text (e.g., `letter.png` placed in a folder you control). +- A code editor or IDE (Visual Studio, VS Code, Rider—pick what you like). + +That’s it. No extra OCR engines, no native DLLs, just a clean managed package. + +--- + +## Step 1: Load the PNG Image File in C# + +Before the OCR engine can do anything, it needs a stream that points to the image. Aspose provides `ImageStream.FromFile`, which abstracts away the file‑system details. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** If your image is embedded as a resource or comes from a web request, you can use `ImageStream.FromBytes(byte[])` instead—no need to touch the file system. + +### Why loading matters + +Loading the image correctly ensures the OCR engine receives the exact pixel data it expects. A corrupted stream will cause `Recognize` to throw, and you’ll waste time debugging later. + +--- + +## Step 2: Initialize the OCR Engine + +Creating an `OcrEngine` instance is cheap, but you might want to tweak language or accuracy settings for specific use‑cases (e.g., multi‑language documents). The default constructor works fine for English text. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Why an engine instance? + +The engine holds configuration (language, preprocessing filters, etc.). By separating configuration from the image, you can reuse the same engine for many files—great for batch processing. + +--- + +## Step 3: Recognize Text from the PNG + +Now the magic happens. `Recognize` returns an `OcrResult` object that contains the raw string, confidence scores, and more. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Expected output** (assuming `letter.png` says “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +If the image contains multiple lines, the result preserves line breaks, making downstream processing straightforward. + +### Edge case: low‑resolution PNGs + +If the OCR result looks garbled, consider up‑scaling the image or adjusting `ocrEngine.PreprocessingOptions`. Low DPI images often lose detail that the engine relies on. + +--- + +## Step 4: Run the Built‑In Spell Checker + +Aspose OCR ships with a lightweight spell‑checking module that works directly on the OCR result. This step helps you catch mis‑recognitions like “H3llo” instead of “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Sample output** (if the OCR misread “World” as “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Why spell checking? + +OCR is never 100 % perfect, especially with noisy backgrounds. A quick spell‑check can filter out obvious errors before you feed the text into downstream analytics or databases. + +--- + +## Step 5: Put It All Together – Full Working Example + +Below is the complete, ready‑to‑run program. Copy‑paste it into a new console project, adjust the image path, and hit **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Running the demo** prints the OCR text followed by any spelling suggestions. It works on any PNG that contains clear, printed English text. For other languages, simply set `ocrEngine.Language` accordingly. + +--- + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| *Can I process JPEG or BMP files?* | Absolutely—`ImageStream.FromFile` accepts any format supported by Aspose (PNG, JPEG, BMP, TIFF). | +| *What if the image is in a memory stream?* | Use `ImageStream.FromBytes(byteArray)` or `ImageStream.FromStream(stream)`. | +| *Is the spell checker language‑aware?* | Yes, it respects the language set on the OCR engine. | +| *How do I improve accuracy on skewed images?* | Enable `ocrEngine.PreprocessingOptions.Deskew = true;` before calling `Recognize`. | +| *Do I need a license for Aspose.OCR?* | A free trial works for up to 100 pages. For production, obtain a license to remove watermarks. | + +--- + +## Next Steps – Going Beyond Basic OCR + +Now that you can **recognize text from png** and **extract text from image C#**, consider these extensions: + +1. **Batch processing** – Loop over a directory of PNGs and write each OCR result to a separate `.txt` file. +2. **Integration with Azure Cognitive Services** – Combine Aspose OCR with cloud‑based translation APIs for multilingual pipelines. +3. **Structured data extraction** – Use regular expressions on `recognizedText` to pull out dates, invoice numbers, or addresses. +4. **Performance tuning** – For large volumes, reuse a single `OcrEngine` instance and enable multi‑threading. + +Each of these builds on the core steps we covered, letting you turn a simple image into actionable data. + +--- + +## Conclusion + +We’ve walked through a complete, end‑to‑end example that shows how to **recognize text from png** in C#, **load image file C#** correctly, and then **extract text from image C#** while catching spelling errors. The code is self‑contained, the explanations cover both the “how” and the “why”, and you now have a solid foundation for any OCR‑driven feature you might need. + +Give it a spin, tweak the preprocessing options, and see how clean your extracted text can become. If you run into any quirks, 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/french/net/ocr-configuration/_index.md b/ocr/french/net/ocr-configuration/_index.md index d06fa9627..758214356 100644 --- a/ocr/french/net/ocr-configuration/_index.md +++ b/ocr/french/net/ocr-configuration/_index.md @@ -69,6 +69,9 @@ Débloquez de puissantes capacités OCR avec Aspose.OCR pour .NET. Extrayez le t Exploitez pleinement le potentiel d'Aspose.OCR pour .NET. Réalisez facilement la reconnaissance d'images OCR avec des listes. Optimisez la productivité et l'extraction de données dans vos applications. +### [Comment désactiver l'OCR en C# – Guide hors ligne Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Apprenez à désactiver la reconnaissance OCR dans vos applications C# en mode hors ligne avec Aspose OCR. + ### Cas d'utilisation courants - **Extraire les images de texte** à partir de factures numérisées pour la comptabilité automatisée. @@ -115,4 +118,4 @@ R : Oui, l’objet `OcrResult` fournit des valeurs de confiance que vous pouvez {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/french/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..f0b9bd09f --- /dev/null +++ b/ocr/french/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Apprenez comment désactiver l'OCR dans Aspose OCR pour C# afin de le + faire fonctionner hors ligne, extraire du texte d'une image sans connexion Internet + et charger correctement l'image pour l'OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: fr +og_description: Comment désactiver l’OCR dans Aspose OCR pour C#, l’exécuter hors + ligne, extraire le texte d’une image sans connexion Internet et charger facilement + une image pour l’OCR. +og_title: Comment désactiver l’OCR en C# – Guide hors ligne Aspose OCR +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Comment désactiver l’OCR en C# – Guide hors ligne d’Aspose OCR +url: /fr/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment désactiver l'OCR en C# – Guide hors ligne Aspose OCR + +Vous vous êtes déjà demandé **comment désactiver l'OCR** lorsque vous avez besoin d'une solution réellement hors ligne ? Peut‑être que vous créez une application de bureau sécurisée qui ne peut pas dépendre d'une connexion réseau, ou que vous voulez simplement éviter les téléchargements inattendus. Quoi qu'il en soit, la bonne nouvelle est qu'Aspose OCR vous permet de désactiver la récupération automatique des ressources, de la pointer vers un dossier local, et de tout garder sur site. Dans ce tutoriel, vous verrez également comment **extraire du texte d'une image** et correctement **charger l'image pour l'OCR** sans aucun problème. + +Nous parcourrons un exemple complet, prêt à l'exécution, qui montre chaque étape — de l'initialisation du moteur à l'affichage du texte japonais reconnu. Aucun document externe, aucune magie cachée ; juste du code C# simple que vous pouvez intégrer à votre projet dès aujourd'hui. À la fin, vous comprendrez pourquoi désactiver la fonction de téléchargement automatique est important, comment définir le chemin des ressources, et quels pièges éviter. + +## Prérequis + +- .NET 6.0 (ou toute version récente de .NET) installé sur votre machine. +- Package NuGet Aspose.OCR pour .NET (`Install-Package Aspose.OCR`). +- Un dossier contenant déjà les ressources linguistiques dont vous avez besoin (par ex., le modèle japonais). +- Un fichier image (`japan_doc.png`) sur lequel vous souhaitez exécuter l'OCR. + +Si vous ne disposez pas des packs de langues, récupérez‑les depuis le portail Aspose une fois, décompressez‑les dans un dossier comme `AsposeOCRResources`, et le tour est joué. Aucun téléchargement supplémentaire ne sera effectué une fois que vous avez désactivé la fonction de téléchargement automatique. + +![Comment désactiver l'OCR hors ligne](/images/how-to-disable-ocr.png "illustration de la désactivation de l'OCR") + +## Étape 1 – Créer l'instance du moteur OCR + +La première chose à faire est d'instancier `OcrEngine`. Considérez cet objet comme le cerveau qui lira votre image. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Pourquoi c'est important :** Sans moteur, vous ne pouvez rien configurer. L'objet contient tous les paramètres, y compris le drapeau crucial qui indique à la bibliothèque si elle peut se connecter à Internet. + +## Étape 2 – Désactiver le téléchargement automatique des ressources + +Par défaut, Aspose OCR tentera de récupérer les fichiers de langue manquants à la volée. Pour tout garder hors ligne, basculez le commutateur `AutoDownloadResources` sur `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Astuce :** Désactiver cela garantit non seulement la confidentialité, mais accélère également la première exécution de reconnaissance car le moteur ne perdra pas de temps à vérifier les mises à jour. + +## Étape 3 – Pointer vers votre dossier de ressources local + +Indiquez maintenant au moteur où se trouvent les packs de langues pré‑téléchargés. C’est le chemin que vous avez configuré dans les prérequis. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Qu'est‑ce qui pourrait mal se passer ?** Si le chemin est incorrect ou que le fichier de langue requis est manquant, le moteur lèvera une `ResourceNotFoundException`. Vérifiez l'orthographe du dossier et que le modèle japonais (`jpn.traineddata`) est présent. + +## Étape 4 – Sélectionner le modèle de langue local + +Choisissez la langue que vous avez réellement sur le disque. Dans notre exemple, nous utilisons le japonais, mais vous pouvez remplacer `Language.Japanese` par n'importe quelle autre langue que vous avez téléchargée. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Cas particulier :** Certaines langues nécessitent des dictionnaires supplémentaires (par ex., le chinois). Assurez‑vous que ces fichiers auxiliaires se trouvent également dans le même dossier de ressources. + +## Étape 5 – Charger l'image pour l'OCR + +C’est ici que nous **chargeons l'image pour l'OCR**. La méthode `ImageStream.FromFile` lit le fichier dans un flux que Aspose peut traiter. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Conseil :** Les formats pris en charge incluent PNG, JPEG, BMP et TIFF. Si vous devez gérer des PDF, convertissez chaque page en image d'abord. + +## Étape 6 – Exécuter le processus de reconnaissance + +Le moteur lit maintenant réellement les pixels et tente de les transformer en texte. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Pourquoi cette étape peut être lente :** L'OCR est gourmand en CPU, surtout pour les images haute résolution. Si les performances sont un problème, envisagez de réduire la taille de l'image avant la reconnaissance. + +## Étape 7 – Afficher le texte extrait + +Enfin, nous **extrayons du texte d'une image** et l'affichons dans la console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +L'exécution du programme devrait afficher les caractères japonais présents dans `japan_doc.png`. Si tout est correctement configuré, vous verrez un bloc propre de texte Unicode dans votre console. + +### Sortie attendue + +``` +これはサンプルの日本語テキストです。 +``` + +(Votre sortie réelle dépendra du contenu de l'image.) + +## Problèmes courants & comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **Fichier de langue manquant** | `AutoDownloadResources` est false, donc le moteur ne peut pas le récupérer. | Vérifiez que `ResourcesPath` pointe vers le dossier contenant `jpn.traineddata`. | +| **Chemin d'image incorrect** | `ImageStream.FromFile` lève `FileNotFoundException`. | Utilisez des chemins absolus ou assurez‑vous que le répertoire de travail est correctement défini. | +| **Format d'image non pris en charge** | Aspose ne lit que certains formats. | Convertissez votre image en PNG ou JPEG avant d'appeler `FromFile`. | +| **Manque de mémoire sur les grandes images** | L'OCR charge l'image entière en mémoire. | Redimensionnez ou découpez l'image, ou augmentez la limite de mémoire du processus. | + +## Étendre l'exemple + +- **Traitement par lots :** Parcourez un répertoire d'images, appelez le même code de reconnaissance, et écrivez chaque résultat dans un fichier `.txt` séparé. +- **Langues différentes :** Remplacez `Language.Japanese` par `Language.English` (ou toute autre) après avoir placé les fichiers de ressources correspondants. +- **Prétraitement personnalisé :** Utilisez Aspose.Imaging pour redresser ou améliorer le contraste avant l'OCR afin d'obtenir une meilleure précision. + +## Conclusion + +Vous savez maintenant **comment désactiver l'OCR** dans Aspose OCR pour C# et l'exécuter complètement hors ligne. En définissant `AutoDownloadResources` sur `false`, en pointant le moteur vers un dossier de ressources local, et en **chargeant correctement l'image pour l'OCR**, vous pouvez **extraire du texte d'une image** de manière fiable sans jamais toucher à Internet. Cette approche est idéale pour les environnements sécurisés, les pipelines CI, ou tout scénario où l'accès réseau est limité. + +Prêt pour l'étape suivante ? Essayez de traiter un dossier complet de PDF numérisés, expérimentez avec différents packs de langues, ou intégrez le résultat OCR dans une base de données consultable. La configuration hors ligne que vous avez créée aujourd'hui constitue une base solide pour tout flux de travail de traitement de documents sur site. + +Bon codage, et n'hésitez pas à laisser un commentaire si vous rencontrez des problèmes ! + +{{< /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 8d188ea7d..81354a5d1 100644 --- a/ocr/french/net/ocr-optimization/_index.md +++ b/ocr/french/net/ocr-optimization/_index.md @@ -75,6 +75,8 @@ Explorez Aspose.OCR pour .NET. Boostez la précision de l’OCR avec des filtres Améliorez la précision de l’OCR avec Aspose.OCR pour .NET. Corrigez les fautes, personnalisez les dictionnaires et obtenez une reconnaissance de texte sans erreur en toute simplicité. ### [Enregistrer le résultat multipage en tant que document dans la reconnaissance d'image OCR](./save-multipage-result-as-document/) Débloquez le potentiel d’Aspose.OCR pour .NET. Enregistrez sans effort les résultats OCR multipages sous forme de documents grâce à ce guide complet étape par étape. +### [Comment améliorer la précision OCR en C# avec Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Découvrez des techniques pour augmenter la précision de l’OCR en C# avec Aspose OCR, incluant le prétraitement et la configuration avancée. ## Questions fréquemment posées diff --git a/ocr/french/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/french/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..77c313fbb --- /dev/null +++ b/ocr/french/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-11 +description: Apprenez à améliorer l'OCR en C# en reconnaissant le texte à partir de + fichiers JPG, en redressant les images et en éliminant le bruit à l'aide d'Aspose + OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: fr +og_description: Découvrez comment améliorer l'OCR en reconnaissant le texte à partir + de JPG, en redressant les images et en supprimant le bruit — guide complet C#. +og_title: Comment améliorer la précision de l'OCR en C# avec Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Comment améliorer la précision de l’OCR en C# avec Aspose OCR +url: /fr/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment améliorer la précision de l’OCR en C# avec Aspose OCR + +Vous êtes-vous déjà demandé **comment améliorer l’OCR** lorsque vos numérisations ressemblent plus à de l’art abstrait qu’à du texte lisible ? Vous n’êtes pas seul. Dans de nombreux projets réels—factures, reçus ou notes manuscrites—les images sources sont souvent inclinées, granuleuses ou simplement bruyantes. Bonne nouvelle ? Aspose OCR vous propose plusieurs réglages de prétraitement qui peuvent transformer ce chaos en caractères propres et lisibles par machine. Dans ce tutoriel, nous parcourrons un exemple complet et exécutable qui montre **comment améliorer l’OCR** en **reconnaissant du texte depuis un JPG**, en redressant l’image et en éliminant le bruit indésirable. + +> *Astuce :* Si vous sautez le prétraitement, vous obtiendrez probablement un résultat illisible qui ressemble à une grille de mots croisés cryptique. Évitons cela. + +![Comment améliorer l’OCR avec le prétraitement Aspose OCR](https://example.com/ocr-preprocess.png "comment améliorer l’OCR avec le prétraitement Aspose OCR") + +## Ce que vous allez apprendre + +Dans les prochaines minutes, vous verrez : + +1. Comment configurer le moteur Aspose OCR pour une précision optimale. +2. Le code exact nécessaire pour **reconnaître du texte depuis un JPG**. +3. Pourquoi activer *AutoDeskew* et *RemoveNoise* est important et comment les ajuster. +4. Comment **extraire du texte depuis une image** sans écrire de filtre personnalisé. +5. Les pièges courants (fichier manquant, format non pris en charge) et leurs solutions rapides. + +À la fin, vous disposerez d’une simple application console C# capable de prendre n’importe quel JPG, le nettoyer et afficher la chaîne extraite—prête pour un traitement ou un stockage en aval. + +## Prérequis + +- SDK .NET 6.0 ou ultérieur (l’exemple utilise des instructions de haut niveau pour plus de concision). +- Package NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Une image JPG d’exemple (nommée `input.jpg`) placée dans le même dossier que l’exécutable. +- Une connaissance de base du C#—aucun concept avancé requis. + +Si vous avez déjà un projet, il suffit d’y coller le code ; sinon créez une nouvelle application console : + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Passons maintenant au code. + +## Comment améliorer l’OCR : aperçu des paramètres de prétraitement + +Le cœur de **comment améliorer l’OCR** réside dans l’objet `PreprocessSettings`. Pensez‑y comme à un mini‑éditeur d’image qui s’exécute *avant* que le moteur de reconnaissance de caractères ne démarre. Voici un rapide tour d’horizon des drapeaux les plus impactants : + +| Paramètre | Ce qu’il fait | Cas d’utilisation typique | +|------------------------|----------------------------------------------------------|----------------------------| +| `AutoDeskew` | Applique un algorithme de désinclinaison basé sur le deep‑learning. | Pages numérisées légèrement inclinées. | +| `AdaptiveThreshold` | Augmente le contraste dans les images sous‑exposées ou fanées. | Anciennes factures avec encre délavée. | +| `RemoveNoise` | Applique un filtre de flou gaussien pour supprimer les taches. | Photos prises avec le flash du smartphone. | +| `NoiseRemovalStrength`| Contrôle l’agressivité (1 = faible, 3 = élevée). | Ajuster selon le grain de la source. | + +Activer ces options constitue essentiellement la « sauce secrète » pour **comment améliorer l’OCR** sur des entrées imparfaites. + +## Reconnaître du texte depuis un JPG avec Aspose OCR + +Voici le programme complet, prêt à être exécuté. Chaque ligne est commentée afin que vous puissiez comprendre *pourquoi* chaque partie existe, pas seulement *ce que* cela fait. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Résultat attendu + +Si `input.jpg` contient la phrase « Invoice #12345 – Total: $256.78 », la console affichera : + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Remarquez que la sortie est propre, le tiret et le signe dollar étant conservés—exactement ce à quoi vous vous attendez en **extrait du texte depuis une image**. + +## Comment redresser une image avec les paramètres de prétraitement + +Pourquoi le redressement est‑il important ? Même une inclinaison de 2 degrés peut perturber l’étape de segmentation des caractères, entraînant des lettres mal identifiées. Le drapeau `AutoDeskew` exécute un réseau de neurones convolutionnel en arrière‑plan qui détecte l’angle dominant et fait pivoter l’image jusqu’à l’horizontale. + +Si vous avez besoin de plus de contrôle, vous pouvez définir manuellement l’angle : + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Quand utiliser le redressement manuel :** Si vous savez que la caméra incline systématiquement les images d’une valeur fixe (par ex., un scanner monté), coder l’angle en dur permet d’économiser un peu de temps de traitement. + +## Comment supprimer le bruit pour une extraction plus propre + +Le bruit apparaît sous forme de taches aléatoires ou de grain, surtout sur les photos prises en faible luminosité. Le drapeau `RemoveNoise` applique un filtre bilatéral qui lisse l’arrière‑plan tout en préservant les contours (les caractères réels). La propriété `NoiseRemovalStrength` vous permet de régler l’agressivité : + +| Force | Effet | +|-------|-------| +| 1 | Lissage léger—idéal pour les images légèrement granuleuses. | +| 2 | Équilibré—convient à la plupart des captures smartphone. | +| 3 | Lissage intensif—à utiliser quand l’image est très bruyante, mais attention à ne pas flouter les traits fins. | + +Si vous rencontrez un scénario où les petites polices deviennent illisibles après un lissage intensif, réduisez simplement la force ou désactivez le filtre. + +## Extraire du texte depuis une image : au‑delà du JPG + +Bien que notre démonstration se concentre sur un JPG, Aspose OCR prend en charge PNG, BMP, TIFF et même les pages PDF. Pour **extraire du texte depuis une image** dans d’autres formats que le JPG, il suffit de changer l’extension du fichier dans `ImageStream.FromFile`. Pour les TIFF multi‑pages, vous pouvez itérer sur chaque page : + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Ce fragment montre comment vous pourriez étendre le même workflow **comment améliorer l’OCR** pour traiter par lots une pile de documents numérisés. + +## Pièges courants & solutions rapides + +| Symptom | Cause probable | Solution rapide | +|-----------------------|---------------------------------------------|-----------------| +| Sortie vide | Image complètement blanche après prétraitement (seuil trop agressif) | Réduire `NoiseRemovalStrength` ou désactiver `AdaptiveThreshold`. | +| Caractères illisibles| Modèle de langue incorrect (par défaut l’anglais) | Définir `ocrEngine.Settings.Language = Language.English;` ou charger un pack de langue personnalisé. | +| Crash sur gros fichiers| Out‑of‑memory dû à une image haute résolution | Redimensionner avec `ocrEngine.Settings.ImageResizeFactor = 0.5;` avant la reconnaissance. | +| Aucun résultat pour des scans inclinés | `AutoDeskew` désactivé par inadvertance | Activer `AutoDeskew = true` ou fournir le bon `DeskewAngle`. | + +Gardez ces points en tête pour éviter des heures de débogage lorsque vous cherchez à **comment améliorer l’OCR** dans des pipelines de production. + +## Bonus : ajuster vitesse vs. précision + +Si vous traitez des milliers de reçus par jour, vous pourriez privilégier la vitesse. Désactivez `AdaptiveThreshold` et réglez `NoiseRemovalStrength = 1`. À l’inverse, pour des documents juridiques où un seul caractère manquant peut coûter cher, conservez tous les drapeaux activés et envisagez d’augmenter `NoiseRemovalStrength` à 3. + +## Conclusion + +Nous avons parcouru l’ensemble du processus **comment améliorer l’OCR** en C# avec Aspose OCR : création du moteur, configuration du prétraitement (le pilier de *comment redresser une image* et *comment supprimer le bruit*), chargement d’un JPG, reconnaissance du texte et gestion des cas limites. Le code est autonome, fonctionne immédiatement et montre les étapes exactes pour **reconnaître du texte depuis un jpg** et **extraire du texte depuis une image**. + +### Et après ? + +- Expérimentez avec d’autres formats d’image (PNG, TIFF) pour voir comment les mêmes réglages se comportent. +- Intégrez la sortie OCR dans une base de données ou + +{{< /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 1b27348f2..e41d468a4 100644 --- a/ocr/french/net/text-recognition/_index.md +++ b/ocr/french/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Reconnaître du texte à partir d'un PNG en C# – Guide complet OCR et vérification orthographique](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Apprenez à extraire et corriger le texte d'images PNG en C# avec Aspose.OCR grâce à ce guide complet étape par étape. +### [Extraire du texte à partir d'une image en C# – Guide complet d'OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Apprenez à extraire du texte d'une image en C# avec Aspose.OCR grâce à ce guide complet étape par étape. +### [Extraire du texte d'un TIFF avec OCR par lots en C# – Guide complet](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Apprenez à extraire du texte d'images TIFF en utilisant l'OCR par lots avec C#. Suivez notre guide complet étape par étape. +### [Créer un PDF consultable en C# – Guide complet](./create-searchable-pdf-in-c-complete-guide/) +Apprenez à créer un PDF consultable en C# avec Aspose.OCR grâce à ce guide complet étape par étape. +### [Convertir une image en JSON – Tutoriel OCR C# pour les reçus](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Apprenez à convertir des images de reçus en JSON avec Aspose.OCR en 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/french/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..a7bf196f9 --- /dev/null +++ b/ocr/french/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Convertir une image en JSON avec Aspose OCR Cloud en C#. Apprenez à reconnaître + le texte, extraire le texte d’une image et traiter un reçu avec l’OCR en quelques + minutes. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: fr +og_description: Convertir une image en JSON avec Aspose OCR Cloud en C#. Ce guide + montre comment reconnaître le texte, extraire le texte d’une image et traiter un + reçu avec l’OCR. +og_title: Convertir une image en JSON – Tutoriel OCR C# pour les reçus +tags: +- OCR +- C# +- Aspose +- JSON +title: Convertir une image en JSON – Tutoriel OCR en C# pour les reçus +url: /fr/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir une image en JSON – Tutoriel OCR C# pour les reçus + +Vous avez déjà eu besoin de **convertir une image en JSON** sans savoir par où commencer ? Dans ce guide, nous vous accompagnons pas à pas à travers un tutoriel complet OCR en C# qui prend une photo d’un reçu, reconnaît le texte et génère un payload JSON propre. + +Si vous vous êtes déjà demandé *comment reconnaître du texte* dans un document numérisé, ou si vous cherchez un moyen rapide d’**extraire du texte d’une image**, vous êtes au bon endroit. À la fin de cet article, vous pourrez **traiter un reçu avec OCR** et alimenter directement le résultat dans vos API en aval. + +## Ce dont vous avez besoin + +- SDK .NET 6 ou ultérieur (le code fonctionne également avec .NET Core) +- Une clé d’API Aspose Cloud – vous pouvez obtenir un essai gratuit depuis le portail Aspose +- Une image de reçu d’exemple (`receipt.jpg`) stockée localement +- Votre IDE préféré (Visual Studio, VS Code, Rider – peu importe) + +Aucun package NuGet supplémentaire n’est requis au‑delà du client officiel `Aspose.OCR.Cloud`. Si le SDK est déjà installé, vous êtes prêt. + +## Étape 1 – Convertir l’image en JSON : configurer le client OCR + +Tout d’abord, nous avons besoin d’une instance de `CloudOcrClient`. Cet objet gère toute la communication avec le service OCR d’Aspose et renverra le résultat au format JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Pourquoi c’est important :** L’initialisation du client constitue le pont entre votre code C# et le moteur OCR cloud. La méthode `RecognizeAsync` fait le gros du travail – elle téléverse l’image, exécute le moteur OCR et renvoie une chaîne JSON contenant le texte reconnu, les scores de confiance et les coordonnées des boîtes englobantes. + +> **Astuce pro :** Stockez la clé d’API dans une variable d’environnement ou un gestionnaire de secrets plutôt que de l’inscrire en dur. Ainsi, vous évitez les fuites accidentelles. + +## Étape 2 – Comment reconnaître le texte du reçu + +Maintenant que le client est prêt, examinons le *comment* de la reconnaissance de texte. Aspose OCR prend en charge de nombreuses langues, mais pour la plupart des reçus l’anglais suffit. Si vous avez besoin d’une autre langue, remplacez simplement `Language.English` par la valeur d’énumération appropriée. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Que se passe-t‑il en coulisses ?** Le service exécute un modèle d’apprentissage profond qui détecte les caractères, les regroupe en mots, puis assemble les lignes. Le JSON retourné ressemble approximativement à ceci : + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Vous pouvez analyser ce JSON avec `System.Text.Json` ou `Newtonsoft.Json` pour extraire les champs qui vous intéressent. + +## Étape 3 – Extraire le texte de l’image et créer le JSON manuellement (optionnel) + +Parfois, le JSON brut fourni par Aspose ne convient pas ; vous avez peut‑être besoin d’une structure personnalisée pour votre service en aval. Voici un exemple rapide qui désérialise la réponse et la reconditionne dans un objet plus propre. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Pourquoi reformater ?** De nombreuses API attendent un schéma spécifique (par ex. `{ "total": "12.34", "date": "2026-04-10" }`). En extrayant uniquement les champs nécessaires, vous gardez le payload léger et évitez de divulguer des métadonnées OCR inutiles. + +## Étape 4 – Tester le tutoriel OCR C# avec un reçu d’exemple + +Exécutez le programme depuis votre terminal : + +```bash +dotnet run +``` + +Vous devriez voir deux blocs de sortie : + +1. Le JSON brut renvoyé par Aspose (le résultat **convertir image en json** directement depuis le cloud). +2. Le JSON personnalisé que vous avez construit à l’étape précédente. + +Un exemple de sortie typique ressemble à : + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Si vous obtenez une erreur du type *401 Unauthorized*, vérifiez que votre clé d’API est valide et que le chemin de l’image est correct. + +## Cas limites & pièges courants + +| Situation | Points de vigilance | Solution proposée | +|-----------|----------------------|-------------------| +| **Reçu à basse résolution** | La confiance OCR chute sous 0,8 | Pré‑traitez l’image (augmentez le DPI, affinez) avant l’envoi | +| **Caractères non anglais** | Enum de langue incorrecte | Utilisez `Language.AutoDetect` ou spécifiez la bonne langue | +| **Grand lot de reçus** | Erreurs de limitation de débit | Implémentez un back‑off exponentiel ou demandez un quota plus élevé à Aspose | +| **Champs manquants** | Le parseur personnalisé renvoie `null` | Ajoutez une logique de secours ou des expressions régulières pour une extraction plus robuste | + +## Vue d’ensemble visuelle + +![Diagramme montrant le flux du fichier image → client OCR → réponse JSON → parsing personnalisé → sortie JSON finale](https://example.com/ocr-flow-diagram.png "convertir image en json") + +*Texte alternatif :* *diagramme du flux convertir image en json illustrant les étapes couvertes dans ce tutoriel.* + +## Récapitulatif + +Nous vous avons montré comment **convertir une image en JSON** avec Aspose OCR Cloud, expliqué *comment reconnaître du texte* dans un reçu, démontré des façons d’**extraire du texte d’une image**, et emballé le tout dans un **tutoriel OCR C#** propre que vous pouvez intégrer à n’importe quel projet .NET. + +Les points clés sont : + +- Configurer `CloudOcrClient` avec votre clé d’API. +- Appeler `RecognizeAsync` pour obtenir un payload JSON directement depuis le service. +- Optionnellement remodeler ce payload pour qu’il corresponde à votre propre contrat de données. + +## Et après ? + +- **Traitement par lots :** Parcourez un dossier de reçus et agrégerez les résultats dans un tableau JSON unique. +- **Parsing avancé :** Utilisez des expressions régulières ou un petit modèle NLP pour extraire les lignes d’articles, taxes et remises. +- **Intégration :** Poussez le JSON final dans une base de données, une file de messages ou une Azure Function pour automatiser davantage. + +N’hésitez pas à expérimenter avec différents formats d’image (PNG, TIFF) ou à tester le flux **traiter un reçu avec OCR** sur des photos prises avec un mobile. Le ciel est la limite une fois que vous disposez d’une méthode fiable pour **convertir une image en JSON**. + +Des questions ou un problème ? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/french/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..92bb29b91 --- /dev/null +++ b/ocr/french/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Créez rapidement un PDF consultable à partir d’une image. Apprenez à + générer un PDF à partir d’une image, à intégrer une image dans le PDF, à convertir + un TIF en PDF, et à utiliser l’OCR pour créer un PDF en C# avec Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: fr +og_description: Créez instantanément un PDF consultable. Ce tutoriel montre comment + générer un PDF à partir d’une image, intégrer une image dans le PDF, convertir un + TIF en PDF et utiliser l’OCR pour créer un PDF en C#. +og_title: Créer un PDF interrogeable en C# – Guide étape par étape +tags: +- C# +- OCR +- PDF generation +title: Créer un PDF recherchable en C# – Guide complet +url: /fr/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un PDF consultable en C# – Guide complet + +Vous avez déjà eu besoin de **créer un PDF consultable** à partir d'un document numérisé mais vous ne saviez pas par où commencer ? Vous n'êtes pas seul ; de nombreux développeurs rencontrent le même problème lorsqu'ils travaillent avec des fichiers TIFF et l'OCR. Dans ce tutoriel, nous allons parcourir une solution pratique qui vous permet de **générer un PDF à partir d'une image**, d'intégrer l'image originale pour une recherche parfaite, et de terminer avec un flux de travail propre **OCR to PDF C#**. + +Nous couvrirons tout, de l'installation de la bibliothèque Aspose.OCR à la gestion des cas particuliers comme les TIFF multi‑pages. À la fin, vous disposerez d'un programme prêt à l'emploi qui transforme `input.tif` en un `output.pdf` entièrement consultable. Aucun service externe, aucune magie cachée — juste du code C# simple que vous pouvez intégrer à n'importe quel projet .NET. + +## Ce dont vous aurez besoin + +- .NET 6.0 ou version ultérieure (le code fonctionne également sur .NET Framework 4.7+) +- Visual Studio 2022 (ou tout éditeur de votre choix) +- Une licence active Aspose.OCR ou une clé d'essai gratuite (le package NuGet fonctionne sans clé pour l'évaluation) +- Une image TIFF d'exemple (`input.tif`) placée dans un dossier que vous pouvez référencer + +> **Astuce :** Gardez vos fichiers image en dessous de 10 Mo pour éviter les pics de mémoire lors du traitement de gros lots. + +## Étape 1 : Installer Aspose.OCR et configurer le projet + +Tout d'abord, ajoutez le package NuGet Aspose.OCR à votre projet. Ouvrez la console du gestionnaire de packages et exécutez : + +```powershell +Install-Package Aspose.OCR +``` + +Si vous préférez l'interface graphique, faites un clic droit sur **Dependencies → Manage NuGet Packages**, recherchez *Aspose.OCR*, puis cliquez sur **Install**. + +Pourquoi cette étape est importante : Aspose.OCR regroupe un moteur OCR haute performance et un exportateur PDF intégré, vous n'avez donc pas besoin de bibliothèques séparées pour la gestion d'images ou la création de PDF. + +### Structure complète du projet + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note :** Remplacez `YOUR_DIRECTORY` par le chemin réel du dossier sur votre machine. + +## Étape 2 : Charger l'image – Fondation *Generate PDF from Image* + +Charger le fichier source est une étape petite mais cruciale. Aspose.OCR attend un `ImageStream`, qui abstrait les entrées/sorties de fichiers et prend en charge de nombreux formats (TIFF, PNG, JPEG, etc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Pourquoi ne pas simplement passer le chemin ?** +Le wrapper `ImageStream` gère le tampon interne et garantit que le moteur OCR fonctionne avec de gros TIFF multi‑pages sans charger le fichier complet en mémoire d'un coup. + +## Étape 3 : Configurer l'export PDF – *Embed Image PDF* pour une recherche parfaite + +Lorsque vous exportez les résultats OCR vers PDF, vous avez deux options : n'intégrer que le texte extrait, ou intégrer l'image originale avec la couche de texte cachée. L'intégration de l'image conserve la fidélité visuelle du scan et permet aux utilisateurs de sélectionner ou copier le texte ultérieurement. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Cas particulier :** Si vous définissez `EmbedOriginalImage` à `false`, le PDF résultant sera plus petit mais perdra l'image originale — utile pour les archives purement textuelles. + +## Étape 4 : Exporter – *OCR to PDF C#* en un seul appel + +Aspose.OCR simplifie le travail lourd en une seule ligne. La méthode `ExportToPdf` exécute l'OCR, crée la couche de texte cachée et écrit le fichier final. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Résultat attendu + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Ouvrez `output.pdf` dans n'importe quel lecteur (Adobe Reader, Edge, etc.) et essayez de sélectionner du texte — vous verrez l'image originale en dessous, confirmant que l'opération **create searchable pdf** a réussi. + +## Étape 5 : Vérifier le PDF – Contrôles rapides que vous pouvez automatiser + +Bien que l'inspection manuelle convienne pour un seul fichier, vous pourriez vouloir vérifier que le PDF contient une couche de texte de façon programmatique. Aspose.PDF (une bibliothèque sœur) peut lire le document et extraire le texte : + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Ajoutez un appel à `VerifyPdfContainsText(pdfPath);` après l'export si vous souhaitez un contrôle de cohérence automatisé. + +## Pièges courants et comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | Charger le fichier complet d'un coup dépasse la RAM. | Utilisez `ImageStream.FromFile` (comme montré) et traitez les pages une par une si vous avez des fichiers multi‑pages. | +| **Missing license leads to watermarks** | Le mode d'évaluation ajoute un filigrane visible sur chaque page. | Appliquez votre licence Aspose.OCR tôt : `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | Un séparateur `\` codé en dur ne fonctionne pas sur les OS non Windows. | Utilisez `Path.Combine` ou des littéraux de chaîne brute avec `/`. | +| **Text not searchable** | `EmbedOriginalImage` défini sur `false` ou OCR désactivé. | Assurez‑vous que `PdfExportOptions.EmbedOriginalImage = true` et que le moteur OCR est correctement initialisé. | + +## Bonus : Convertir TIF en PDF sans OCR (Quand le texte n'est pas nécessaire) + +Si vous avez seulement besoin de **convertir TIF en PDF** sans la couche de texte cachée, vous pouvez ignorer complètement l'étape OCR : + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Cette astuce est pratique pour archiver des documents numérisés où la recherche n'est pas requise. + +## Exemple complet fonctionnel (prêt à copier‑coller) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Exécutez le programme, ouvrez `output.pdf`, et vous verrez une réplique fidèle du TIFF original avec une couche de texte cachée et sélectionnable — exactement ce que **create searchable pdf** signifie en pratique. + +## Conclusion + +Nous venons de parcourir un flux de travail complet **create searchable pdf** en C#. En partant d'un TIFF brut, nous **générons pdf from image**, avons choisi d'**embed image pdf** pour la fidélité visuelle, et avons démontré le pipeline complet **ocr to pdf c#** avec Aspose.OCR. + +N'hésitez pas à ajuster les `PdfExportOptions` (compression, version PDF, etc.) ou à chaîner plusieurs images pour un traitement par lots. Vous pourriez ensuite explorer l'ajout de protection par mot de passe, de signatures numériques, ou même la fusion de plusieurs PDF consultables en un document maître. + +Des questions sur le passage à des milliers de fichiers ou l'intégration dans une API ASP.NET ? Laissez un commentaire ci‑dessous ou contactez‑moi sur GitHub — bon codage ! + +![Exemple de PDF consultable](/images/searchable-pdf.png "Exemple de PDF consultable") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/french/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..bef90b723 --- /dev/null +++ b/ocr/french/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-04-11 +description: Extraire du texte d’une image avec Aspose OCR en C#. Apprenez à charger + une image pour l’OCR et à reconnaître le texte des fichiers TIFF avec le support + GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: fr +og_description: Extraire du texte d’une image avec Aspose OCR en C#. Ce tutoriel montre + comment charger une image pour l’OCR et reconnaître le texte d’un TIFF en utilisant + l’accélération GPU. +og_title: Extraire du texte d’une image en C# – Guide complet d’OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Extraire du texte d’une image en C# – Guide complet d’OCR +url: /fr/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraire du texte d'une image en C# – Guide complet OCR + +Vous avez déjà eu besoin d'**extraire du texte d'une image** mais vous ne saviez pas quelle bibliothèque pouvait gérer un TIFF gigantesque sans planter ? Vous n'êtes pas seul. Dans de nombreux projets réels — pensez à la numérisation de factures ou à l'archivage de livres numérisés — la capacité de charger une image pour l'OCR puis de reconnaître le texte d'un TIFF devient rapidement une fonctionnalité décisive. + +Dans ce guide, nous allons parcourir une solution pratique qui fait exactement cela en utilisant Aspose OCR pour .NET. À la fin, vous disposerez d’une application console C# exécutable qui charge un scan haute résolution, lance un traitement accéléré par GPU (avec un repli élégant), et génère le résultat en texte brut. Aucun morceau manquant, aucune impasse du type « voir la documentation ». + +## Ce dont vous avez besoin + +- **.NET 6 ou version ultérieure** (le code se compile avec n'importe quel SDK récent) +- **Aspose.OCR for .NET** package NuGet + `dotnet add package Aspose.OCR` +- Un **grand TIFF** ou tout autre format d'image que vous souhaitez OCRiser + (l'exemple utilise `large_scan.tif`) +- (Optionnel) Un GPU qui supporte CUDA 11+ – si vous n'en avez pas, la bibliothèque passera automatiquement en mode CPU. + +C’est tout. Plongeons‑y. + +![Extraire du texte d'une image avec Aspose OCR en C#](image-placeholder.png "Extraire du texte d'une image avec Aspose OCR en C#") + +## Étape 1 : Extraire du texte d'une image – Initialiser le moteur OCR + +Avant que toute image puisse être traitée, vous avez besoin d’une instance `OcrEngine`. Le moteur contient tous les paramètres qui contrôlent le déroulement de la reconnaissance. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Pourquoi c’est important :** +`ProcessingMode.Gpu` peut gagner quelques secondes sur le temps de reconnaissance avec une carte moderne, mais définir `ProcessingMode.Auto` (ou laisser la valeur par défaut) est plus sûr pour les environnements où un GPU pourrait être absent. La garde `GpuMemoryLimit` est un conseil pratique — sans elle, une image énorme pourrait monopoliser toute la VRAM et faire planter d’autres applications. + +## Étape 2 : Charger l'image pour l'OCR – Importer le TIFF en mémoire + +Maintenant que le moteur est prêt, nous devons lui fournir l'image que nous voulons analyser. Aspose propose `ImageStream.FromFile` qui abstrait la gestion du format. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Que se passe-t-il en coulisses ?** +`ImageStream.FromFile` lit le fichier dans un flux et détecte automatiquement le format de l'image (TIFF, PNG, JPEG, etc.). Si vous travaillez avec des TIFF multi‑pages, Aspose traitera chaque page comme une trame distincte ; vous pourrez les parcourir plus tard si besoin. + +## Étape 3 : Reconnaître le texte du TIFF – Exécuter le moteur OCR + +Avec l'image chargée, le travail lourd commence. La méthode `Recognize` renvoie un objet `OcrResult` qui contient le texte extrait ainsi que quelques champs de métadonnées utiles. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Pourquoi appeler `Recognize` une seule fois ?** +Parce que le moteur met en cache les structures internes après la première exécution, un appel unique suffit pour la plupart des scénarios. Si vous devez traiter de nombreuses pages, réutilisez la même instance `OcrEngine` — cela évite le surcoût de ré‑initialisation des contextes GPU. + +## Étape 4 : Afficher le résultat – Montrer le texte extrait + +Enfin, nous affichons la chaîne reconnue dans la console. Dans une application réelle, vous l'écririez probablement dans une base de données ou dans un fichier. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Sortie attendue :** +Si `large_scan.tif` contient une facture imprimée, vous verrez quelque chose comme : + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +La mise en page exacte dépend de l'image source, mais l'essentiel est que vous disposez maintenant de résultats d'**extraction de texte d'image** prêts pour le traitement en aval. + +## Étape 5 : Dépannage & cas limites + +### GPU non détecté ? + +Si vous exécutez l'exemple sur une machine sans GPU compatible, le moteur revient silencieusement au CPU lorsque vous utilisez `ProcessingMode.Auto`. Pour forcer explicitement le mode CPU, remplacez la ligne précédente par : + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF gourmands en mémoire + +Des scans très grands (par ex., 10 000 × 10 000 px) peuvent encore dépasser la limite de 1 Go de GPU que nous avons définie. Dans ce cas, augmentez `GpuMemoryLimit` (si vous avez de la VRAM disponible) ou réduisez la taille de l'image avant de la fournir au moteur : + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Documents multi‑pages + +Si votre TIFF contient plusieurs pages, parcourez-les : + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Prise en charge des langues et des polices + +Aspose OCR détecte automatiquement les scripts basés sur le latin, mais pour le cyrillique, l'arabe ou des polices personnalisées, il peut être nécessaire de fournir un pack de langue : + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Astuces pro & bonnes pratiques + +- **Réutiliser le moteur** : Créer un nouveau `OcrEngine` par image ajoute une latence perceptible. +- **Traitement par lots** : Lors du traitement de dizaines de TIFF, mettez‑les en file d’attente et traitez‑les dans des threads parallèles — en restant attentif à la contention de la mémoire GPU. +- **Valider la sortie** : L'OCR n'est pas parfait ; exécutez une simple vérification orthographique ou une validation regex sur `ocrResult.Text` pour détecter les erreurs évidentes. +- **Journaliser les performances** : Mesurez le temps écoulé avec `Stopwatch` avant et après `Recognize` pour décider si l'accélération GPU vaut la configuration supplémentaire dans votre environnement. + +## Conclusion + +Vous disposez maintenant d’un exemple complet, de bout en bout, qui **extrait du texte d'images** en utilisant Aspose OCR en C#. En chargeant l'image pour l'OCR, en invoquant le moteur pour reconnaître le texte d'un TIFF, et en gérant les scénarios GPU vs CPU, ce tutoriel vous fournit une base prête pour la production que vous pouvez adapter aux factures, passeports ou tout document numérisé. + +Et après ? Essayez de remplacer le TIFF par un PDF multi‑pages, expérimentez avec des packs de langue personnalisés, ou canalisez la sortie vers un pipeline de traitement du langage naturel pour une extraction de données automatisée. La seule limite est le ciel — 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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/french/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..d1635c395 --- /dev/null +++ b/ocr/french/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Extrayez du texte à partir de fichiers TIFF en utilisant le traitement + par lots d'Aspose OCR en C#. Apprenez comment traiter le OCR par lots efficacement + et obtenir un retour d'information en temps réel sur la progression. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: fr +og_description: Extraire du texte à partir de fichiers TIFF en utilisant le traitement + par lots OCR d’Aspose en C#. Ce tutoriel montre étape par étape comment traiter + l’OCR par lots et lire la progression. +og_title: Extraire du texte d’un TIFF avec OCR par lots en C# – Guide complet +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extraire du texte d’un TIFF avec OCR par lots en C# – Guide complet +url: /fr/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraire du texte à partir de TIFF – Guide complet du traitement par lots OCR + +Vous avez déjà eu besoin d'**extraire du texte à partir de fichiers TIFF** mais vous êtes resté bloqué au niveau du traitement par lots ? Vous n'êtes pas seul. Dans de nombreux projets d'automatisation de documents, gérer des dizaines d'images TIF haute résolution peut rapidement devenir un goulot d'étranglement—surtout lorsque vous souhaitez un retour en temps réel sur la progression. + +La bonne nouvelle ? Avec Aspose OCR vous pouvez **process batch OCR** en quelques lignes, obtenir des événements de progression en temps réel et obtenir le texte reconnu pour chaque image. Dans ce tutoriel, nous allons parcourir une application console C# prête à l'emploi qui fait exactement cela. + +Nous couvrirons tout ce que vous devez savoir : paquets requis, pourquoi chaque ligne est importante, les cas limites comme les fichiers manquants, et comment vérifier les résultats. À la fin, vous pourrez placer l'exemple dans votre propre solution et commencer à extraire du texte d'images TIFF immédiatement. + +## Ce dont vous aurez besoin + +- **.NET 6 ou version ultérieure** (le code se compile également avec .NET Core) +- **Aspose.OCR for .NET** package NuGet – `Install-Package Aspose.OCR` +- Un dossier contenant quelques images **TIFF** que vous souhaitez lire (la démo utilise `img1.tif`, `img2.tif`, `img3.tif`) +- Un IDE de votre choix – Visual Studio, Rider ou VS Code conviendront + +Aucune configuration supplémentaire n'est requise ; la bibliothèque embarque son propre moteur OCR, vous n’aurez donc pas à installer de binaires natifs externes. + +--- + +## Étape 1 – Créer l'instance du moteur OCR + +La première chose à faire est d’instancier un `OcrEngine`. Pensez‑y comme le cerveau qui analysera chaque pixel et le transformera en caractères. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Pourquoi c’est important :** +> Le moteur conserve des modèles de langue et des paramètres internes (par ex., DPI, langue). Le créer une fois et le réutiliser pour un lot est beaucoup plus efficace que d’instancier un nouveau moteur pour chaque image. + +--- + +## Étape 2 – Brancher les événements de progression en temps réel + +Si vous traitez des dizaines de fichiers TIFF, un indicateur de progression peut vous éviter de vous demander si l'application est bloquée. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +L'événement `ProgressChanged` se déclenche après chaque image terminée, vous donnant `Current`, `Total` et `Percentage`. C’est la boucle de rétroaction **process batch OCR** que la plupart des développeurs oublient d’implémenter. + +--- + +## Étape 3 – Construire une liste de flux d'images + +Aspose.OCR travaille avec des objets `ImageStream`. Le moyen le plus simple est de charger chaque TIFF depuis le disque. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Astuce :** +> Si vous avez un dossier dynamique, remplacez la liste codée en dur par `Directory.GetFiles(path, "*.tif")` et `Select(ImageStream.FromFile)` – ainsi vous **process batch OCR** réellement sans mises à jour manuelles. + +--- + +## Étape 4 – Exécuter le processus OCR par lot + +C’est maintenant que le gros du travail se fait. `ProcessBatch` renvoie une liste en lecture seule d'objets `OcrResult`, chacun contenant le texte extrait et les scores de confiance. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Pourquoi c’est efficace :** +> Le moteur réutilise le même modèle de langue pour toutes les images, réduisant considérablement le turnover mémoire comparé aux appels image par image. + +--- + +## Étape 5 – Afficher ou stocker le texte reconnu + +Enfin, parcourez les résultats. Dans un vrai projet vous pourriez les écrire dans une base de données ou un fichier JSON, mais pour cette démo nous nous contenterons d’afficher dans la console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Sortie console attendue** (truncée pour la brièveté) : + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Si une image échoue, `result.Text` sera une chaîne vide, et l'événement `ProgressChanged` signalera quand même l'élément comme traité—vous pouvez donc consigner les échecs séparément. + +--- + +## Le gestionnaire d'événement de progression (code complet) + +Placez cette méthode n'importe où dans la classe `BatchDemo`—de préférence après `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip :** +> Redirigez cette sortie vers une barre de progression UI si vous créez une application de bureau ; le même événement fonctionne pour WinForms, WPF ou même les notifications ASP.NET Core SignalR. + +--- + +## Exemple complet, prêt à l'exécution + +En rassemblant le tout, voici le programme complet que vous pouvez copier‑coller dans un nouveau projet console. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Enregistrez le fichier sous le nom `Program.cs`, exécutez `dotnet add package Aspose.OCR`, remplacez `YOUR_DIRECTORY` par le chemin réel, puis lancez **Ctrl+F5**. Vous devriez voir les numéros de progression suivis du texte extrait pour chaque TIFF. + +--- + +## Gestion des cas limites courants + +| Situation | Points d’attention | Solution rapide | +|-----------|-------------------|-----------| +| **TIFF manquant ou corrompu** | `ImageStream.FromFile` lève `FileNotFoundException` ou `ArgumentException`. | Enveloppez la création de la liste dans un `try/catch` et ignorez les fichiers invalides, en consignant le problème. | +| **Images très volumineuses ( >10 MP )** | L'OCR peut consommer beaucoup de RAM et ralentir. | Réduisez le DPI avant le traitement : `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Texte non anglais** | Le modèle de langue par défaut est l'anglais. | Définissez `ocrEngine.Language = Language.Spanish;` (ou toute langue prise en charge). | +| **Besoin de sauvegarder les résultats** | La sortie console n’est pas persistante. | Écrivez `result.Text` dans un fichier `.txt` avec `File.WriteAllText`. | + +Traiter ces scénarios rend votre solution robuste et montre que vous avez pensé au-delà du chemin heureux. + +--- + +## Prochaines étapes & sujets connexes + +- **Extraire du texte d'un PDF** – API similaire, il suffit de remplacer `ImageStream` par `PdfDocument`. +- **OCR par lot parallèle** – pour des charges massives, lancez plusieurs instances d'`OcrEngine` sur des threads séparés ; n'oubliez pas de respecter les limites de licence. +- **Post‑traitement** – passez la sortie OCR dans un correcteur orthographique ou utilisez des expressions régulières pour nettoyer les artefacts courants. + +Toutes ces extensions reposent toujours sur l’idée centrale de **process batch OCR** et peuvent être ajoutées progressivement. + +--- + +## Conclusion + +Nous venons de démontrer comment **extraire du texte à partir de fichiers TIFF** de manière efficace en **process batch OCR** avec Aspose OCR en C#. L’exemple crée un seul moteur, s’abonne aux événements de progression, charge une liste de flux d’images, exécute le lot et affiche chaque résultat. + +À partir d’ici, vous pouvez intégrer la sortie dans des bases de données, générer des PDF recherchables, ou alimenter des pipelines NLP en aval. Le ciel est la limite—expérimentez avec les paramètres de langue, les réglages DPI et l’exécution parallèle pour adapter la solution à votre charge de travail spécifique. + +Des questions ou des retours sur votre personnalisation du lot ? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/french/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..c6374c35f --- /dev/null +++ b/ocr/french/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-04-11 +description: Apprenez à reconnaître le texte à partir de PNG et à extraire le texte + d’une image en C# à l’aide d’Aspose OCR. Inclut les étapes de chargement du fichier + image en C#, la vérification orthographique et le code complet. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: fr +og_description: Reconnaissez facilement le texte d’un PNG avec C#. Suivez ce guide + étape par étape pour charger un fichier image en C#, extraire le texte de l’image + en C# et effectuer une vérification orthographique. +og_title: Reconnaître du texte à partir d'un PNG en C# – Tutoriel complet d'OCR +tags: +- OCR +- C# +- Aspose +title: Reconnaître du texte à partir d’un PNG en C# – Guide complet d’OCR et de vérification + orthographique +url: /fr/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Reconnaître du texte à partir de PNG – Tutoriel complet C# OCR & vérification orthographique + +Vous avez déjà eu besoin de **reconnaître du texte à partir de png** mais vous ne saviez pas quelle bibliothèque choisir ? Vous n'êtes pas seul ; de nombreux développeurs rencontrent ce problème lorsqu'ils abordent pour la première fois l'extraction de données à partir d'images. Bonne nouvelle ? Avec Aspose OCR, vous pouvez charger un fichier image en C#, extraire le texte, et même exécuter un correcteur orthographique intégré — le tout en quelques lignes. + +Dans ce guide, nous parcourrons l’ensemble du processus : charger le PNG, appeler le moteur OCR, puis vérifier les mots mal orthographiés. À la fin, vous serez capable de **extraire du texte à partir d’une image C#** dans vos projets sans fouiller des documentations éparses. Aucune expérience préalable en OCR n’est requise, juste un environnement de développement .NET. + +## Ce dont vous aurez besoin + +- **.NET 6.0** (ou toute version récente de .NET) – l’API fonctionne de la même façon sur .NET Core et .NET Framework. +- **Aspose.OCR for .NET** package NuGet – installez-le via `dotnet add package Aspose.OCR`. +- Une **image PNG** contenant du texte lisible (par ex., `letter.png` placé dans un dossier que vous contrôlez). +- Un éditeur de code ou un IDE (Visual Studio, VS Code, Rider — choisissez celui que vous préférez). + +C’est tout. Aucun moteur OCR supplémentaire, aucune DLL native, juste un package géré propre. + +--- + +## Étape 1 : Charger le fichier image PNG en C# + +Avant que le moteur OCR puisse faire quoi que ce soit, il a besoin d’un flux pointant vers l’image. Aspose fournit `ImageStream.FromFile`, qui abstrait les détails du système de fichiers. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Astuce :** Si votre image est intégrée en tant que ressource ou provient d’une requête web, vous pouvez utiliser `ImageStream.FromBytes(byte[])` à la place — aucune nécessité d’accéder au système de fichiers. + +### Pourquoi le chargement est important + +Charger correctement l’image garantit que le moteur OCR reçoit les données de pixels exactes qu’il attend. Un flux corrompu provoquera une exception dans `Recognize`, et vous perdrez du temps à déboguer plus tard. + +--- + +## Étape 2 : Initialiser le moteur OCR + +Créer une instance `OcrEngine` est peu coûteux, mais vous pourriez vouloir ajuster la langue ou les paramètres de précision pour des cas d’utilisation spécifiques (par ex., des documents multilingues). Le constructeur par défaut fonctionne bien pour le texte anglais. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Pourquoi une instance de moteur ? + +Le moteur conserve la configuration (langue, filtres de prétraitement, etc.). En séparant la configuration de l’image, vous pouvez réutiliser le même moteur pour de nombreux fichiers — idéal pour le traitement par lots. + +--- + +## Étape 3 : Reconnaître le texte à partir du PNG + +Maintenant, la magie opère. `Recognize` renvoie un objet `OcrResult` qui contient la chaîne brute, les scores de confiance, et plus encore. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Sortie attendue** (en supposant que `letter.png` contienne « Hello World! ») : + +``` +=== OCR Output === +Hello World! +``` + +Si l’image contient plusieurs lignes, le résultat préserve les sauts de ligne, ce qui rend le traitement en aval simple. + +### Cas particulier : PNG à basse résolution + +Si le résultat OCR apparaît brouillé, envisagez d’agrandir l’image ou d’ajuster `ocrEngine.PreprocessingOptions`. Les images à faible DPI perdent souvent des détails dont le moteur a besoin. + +--- + +## Étape 4 : Exécuter le correcteur orthographique intégré + +Aspose OCR est fourni avec un module de vérification orthographique léger qui fonctionne directement sur le résultat OCR. Cette étape vous aide à détecter les mauvaises reconnaissances comme « H3llo » au lieu de « Hello ». + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Exemple de sortie** (si l’OCR a mal lu « World » comme « W0rld ») : + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Pourquoi la vérification orthographique ? + +L’OCR n’est jamais parfait à 100 %, surtout avec des arrière‑plans bruyants. Une vérification orthographique rapide peut filtrer les erreurs évidentes avant d’alimenter le texte dans des analyses ou bases de données en aval. + +--- + +## Étape 5 : Assembler le tout – Exemple complet fonctionnel + +Ci‑dessous se trouve le programme complet, prêt à être exécuté. Copiez‑collez‑le dans un nouveau projet console, ajustez le chemin de l’image, et appuyez sur **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Exécuter la démo** affiche le texte OCR suivi de toute suggestion orthographique. Cela fonctionne avec n’importe quel PNG contenant du texte anglais clair et imprimé. Pour d’autres langues, il suffit de définir `ocrEngine.Language` en conséquence. + +--- + +## Questions fréquentes & pièges + +| Question | Answer | +|----------|--------| +| *Puis-je traiter des fichiers JPEG ou BMP ?* | Absolument — `ImageStream.FromFile` accepte tout format pris en charge par Aspose (PNG, JPEG, BMP, TIFF). | +| *Et si l’image est dans un flux mémoire ?* | Utilisez `ImageStream.FromBytes(byteArray)` ou `ImageStream.FromStream(stream)`. | +| *Le correcteur orthographique est‑il sensible à la langue ?* | Oui, il respecte la langue définie sur le moteur OCR. | +| *Comment améliorer la précision sur des images inclinées ?* | Activez `ocrEngine.PreprocessingOptions.Deskew = true;` avant d’appeler `Recognize`. | +| *Ai‑je besoin d’une licence pour Aspose.OCR ?* | Un essai gratuit fonctionne jusqu’à 100 pages. En production, obtenez une licence pour supprimer les filigranes. | + +--- + +## Prochaines étapes – Aller au-delà de l’OCR de base + +Maintenant que vous pouvez **reconnaître du texte à partir de png** et **extraire du texte à partir d’une image C#**, envisagez ces extensions : + +1. **Traitement par lots** – Parcourez un répertoire de PNG et écrivez chaque résultat OCR dans un fichier `.txt` séparé. +2. **Intégration avec Azure Cognitive Services** – Combinez Aspose OCR avec des API de traduction cloud pour des pipelines multilingues. +3. **Extraction de données structurées** – Utilisez des expressions régulières sur `recognizedText` pour extraire des dates, numéros de facture ou adresses. +4. **Optimisation des performances** – Pour de gros volumes, réutilisez une seule instance `OcrEngine` et activez le multithreading. + +Chacune de ces options s’appuie sur les étapes de base que nous avons couvertes, vous permettant de transformer une simple image en données exploitables. + +--- + +## Conclusion + +Nous avons parcouru un exemple complet, de bout en bout, qui montre comment **reconnaître du texte à partir de png** en C#, **charger correctement un fichier image C#**, puis **extraire du texte à partir d’une image C#** tout en détectant les fautes d’orthographe. Le code est autonome, les explications couvrent à la fois le « comment » et le « pourquoi », et vous disposez désormais d’une base solide pour toute fonctionnalité basée sur l’OCR dont vous pourriez avoir besoin. + +Essayez-le, ajustez les options de prétraitement, et voyez à quel point votre texte extrait peut devenir propre. Si vous rencontrez des problèmes, 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/german/net/ocr-configuration/_index.md b/ocr/german/net/ocr-configuration/_index.md index 2f940176d..7220c5d23 100644 --- a/ocr/german/net/ocr-configuration/_index.md +++ b/ocr/german/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Entfesseln Sie die Leistungsfähigkeit der OCR-Bilderkennung in .NET mit Aspose. Entfesseln Sie leistungsstarke OCR-Funktionen mit Aspose.OCR für .NET. Extrahieren Sie nahtlos Text aus Bildern. ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Entfesseln Sie das Potenzial von Aspose.OCR für .NET. Führen Sie mühelos OCR-Bilderkennung mit Listen durch. Steigern Sie die Produktivität und Datenerfassung in Ihren Anwendungen. +### [Wie man OCR in C# deaktiviert – Offline‑Anleitung für Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Erfahren Sie, wie Sie die OCR‑Funktion in C# deaktivieren und offline mit Aspose OCR arbeiten. ### Häufige Anwendungsfälle - **Text aus Bildern** von gescannten Rechnungen für die automatisierte Buchhaltung extrahieren. @@ -102,4 +104,4 @@ A: Ja, das `OcrResult`‑Objekt liefert Konfidenzwerte, die Sie programmgesteuer {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/german/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..3f794cc2c --- /dev/null +++ b/ocr/german/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Erfahren Sie, wie Sie OCR in Aspose OCR für C# deaktivieren, um offline + zu arbeiten, Text aus einem Bild ohne Internet zu extrahieren und das Bild für OCR + korrekt zu laden. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: de +og_description: Wie man OCR in Aspose OCR für C# deaktiviert und offline ausführt, + Text aus einem Bild extrahiert, ohne Internet zu benötigen, und das Bild für OCR + einfach lädt. +og_title: Wie man OCR in C# deaktiviert – Offline Aspose OCR Leitfaden +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Wie man OCR in C# deaktiviert – Offline Aspose OCR‑Leitfaden +url: /de/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man OCR in C# deaktiviert – Offline Aspose OCR‑Leitfaden + +Haben Sie sich jemals gefragt, **wie man OCR deaktiviert**, wenn Sie eine wirklich offline Lösung benötigen? Vielleicht bauen Sie eine sichere Desktop‑App, die nicht auf eine Netzwerkverbindung angewiesen sein kann, oder Sie möchten einfach unerwartete Downloads vermeiden. In beiden Fällen gibt es gute Nachrichten: Aspose OCR lässt sich so konfigurieren, dass das automatische Abrufen von Ressourcen ausgeschaltet wird, Sie können einen lokalen Ordner angeben und alles bleibt on‑premises. In diesem Tutorial erfahren Sie außerdem, wie Sie **Text aus Bild**‑Dateien **extrahieren** und **ein Bild für OCR laden** können – ohne Probleme. + +Wir gehen ein komplettes, sofort ausführbares Beispiel durch, das jeden Schritt zeigt – von der Initialisierung der Engine bis zum Ausgeben des erkannten japanischen Textes. Keine externen Dokumente, keine versteckte Magie; nur reiner C#‑Code, den Sie noch heute in Ihr Projekt übernehmen können. Am Ende wissen Sie, warum das Deaktivieren der Auto‑Download‑Funktion wichtig ist, wie Sie den Ressourcen‑Pfad setzen und welche Fallstricke zu beachten sind. + +## Voraussetzungen + +- .NET 6.0 (oder eine aktuelle .NET‑Version) auf Ihrem Rechner installiert. +- Aspose.OCR für .NET NuGet‑Paket (`Install-Package Aspose.OCR`). +- Ein Ordner, der bereits die benötigten Sprachressourcen enthält (z. B. das japanische Modell). +- Eine Bilddatei (`japan_doc.png`), die Sie per OCR verarbeiten möchten. + +Falls Ihnen die Sprachpakete fehlen, holen Sie sie einmalig vom Aspose‑Portal, entpacken Sie sie in einen Ordner wie `AsposeOCRResources` und Sie sind fertig. Sobald Sie die Auto‑Download‑Funktion deaktiviert haben, erfolgen keine weiteren Downloads mehr. + +![Wie man OCR offline deaktiviert](/images/how-to-disable-ocr.png "Illustration zum Deaktivieren von OCR") + +## Schritt 1 – OCR‑Engine‑Instanz erstellen + +Als erstes instanziieren Sie `OcrEngine`. Dieses Objekt ist das „Gehirn“, das Ihr Bild liest. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Warum das wichtig ist:** Ohne eine Engine können Sie nichts konfigurieren. Das Objekt enthält alle Einstellungen, einschließlich des entscheidenden Flags, das der Bibliothek sagt, ob sie das Internet kontaktieren darf. + +## Schritt 2 – Automatisches Herunterladen von Ressourcen deaktivieren + +Standardmäßig versucht Aspose OCR, fehlende Sprachdateien bei Bedarf nachzuladen. Um alles offline zu halten, setzen Sie den Schalter `AutoDownloadResources` auf `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro‑Tipp:** Das Ausschalten spart nicht nur Privatsphäre, sondern beschleunigt auch den ersten Erkennungsdurchlauf, weil die Engine nicht nach Updates sucht. + +## Schritt 3 – Auf Ihren lokalen Ressourcen‑Ordner verweisen + +Jetzt teilen Sie der Engine mit, wo die vorab heruntergeladenen Sprachpakete liegen. Das ist der Pfad, den Sie in den Voraussetzungen eingerichtet haben. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Was schiefgehen kann:** Ist der Pfad falsch oder fehlt die benötigte Sprachdatei, wirft die Engine eine `ResourceNotFoundException`. Prüfen Sie die Ordner‑Schreibweise und ob das japanische Modell (`jpn.traineddata`) vorhanden ist. + +## Schritt 4 – Lokales Sprachmodell auswählen + +Wählen Sie die Sprache, die Sie tatsächlich auf der Festplatte haben. In unserem Beispiel verwenden wir Japanisch, Sie können aber `Language.Japanese` durch jede andere heruntergeladene Sprache ersetzen. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Randfall:** Einige Sprachen benötigen zusätzliche Wörterbücher (z. B. Chinesisch). Stellen Sie sicher, dass diese Hilfsdateien ebenfalls im selben Ressourcen‑Ordner liegen. + +## Schritt 5 – Bild für OCR laden + +Hier **laden wir das Bild für OCR**. Die Methode `ImageStream.FromFile` liest die Datei in einen Stream, den Aspose verarbeiten kann. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tipp:** Unterstützte Formate sind PNG, JPEG, BMP und TIFF. Wenn Sie PDFs verarbeiten müssen, konvertieren Sie jede Seite zuerst in ein Bild. + +## Schritt 6 – Erkennungsprozess starten + +Jetzt liest die Engine die Pixel und versucht, sie in Text umzuwandeln. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Warum dieser Schritt langsam sein kann:** OCR ist CPU‑intensiv, besonders bei hochauflösenden Bildern. Wenn die Performance kritisch ist, skalieren Sie das Bild vor der Erkennung herunter. + +## Schritt 7 – Extrahierten Text ausgeben + +Abschließend **extrahieren wir Text aus dem Bild** und geben ihn in der Konsole aus. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Das Ausführen des Programms sollte die japanischen Zeichen aus `japan_doc.png` anzeigen. Wenn alles korrekt eingerichtet ist, sehen Sie einen sauberen Block Unicode‑Text in Ihrer Konsole. + +### Erwartete Ausgabe + +``` +これはサンプルの日本語テキストです。 +``` + +(Ihre tatsächliche Ausgabe hängt vom Inhalt des Bildes ab.) + +## Häufige Fallstricke & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|-------|----------------|-----| +| **Fehlende Sprachdatei** | `AutoDownloadResources` ist deaktiviert, sodass die Engine sie nicht nachladen kann. | Prüfen Sie, ob `ResourcesPath` auf den Ordner mit `jpn.traineddata` zeigt. | +| **Falscher Bildpfad** | `ImageStream.FromFile` wirft `FileNotFoundException`. | Verwenden Sie absolute Pfade oder stellen Sie sicher, dass das Arbeitsverzeichnis korrekt ist. | +| **Nicht unterstütztes Bildformat** | Aspose liest nur bestimmte Formate. | Konvertieren Sie Ihr Bild vor dem Aufruf von `FromFile` zu PNG oder JPEG. | +| **Speicherüberlauf bei großen Bildern** | OCR lädt das gesamte Bild in den Speicher. | Bildgröße reduzieren oder in Kacheln verarbeiten, bzw. das Speicherlimit des Prozesses erhöhen. | + +## Beispiel erweitern + +- **Batch‑Verarbeitung:** Durchlaufen Sie ein Verzeichnis mit Bildern, rufen Sie denselben Erkennungscode auf und schreiben Sie jedes Ergebnis in eine separate `.txt`‑Datei. +- **Andere Sprachen:** Ersetzen Sie `Language.Japanese` durch `Language.English` (oder eine andere), nachdem Sie die entsprechenden Ressourcendateien bereitgestellt haben. +- **Benutzerdefinierte Vorverarbeitung:** Nutzen Sie Aspose.Imaging, um das Bild zu deskewen oder den Kontrast zu verbessern, bevor Sie OCR ausführen – das erhöht die Genauigkeit. + +## Fazit + +Sie wissen jetzt, **wie man OCR in Aspose OCR für C# deaktiviert** und komplett offline betreibt. Indem Sie `AutoDownloadResources` auf `false` setzen, die Engine auf einen lokalen Ressourcen‑Ordner verweisen und das **Bild für OCR korrekt laden**, können Sie zuverlässig **Text aus Bild** extrahieren, ohne jemals das Internet zu berühren. Dieses Vorgehen ist ideal für sichere Umgebungen, CI‑Pipelines oder jede Situation, in der Netzwerkzugriff eingeschränkt ist. + +Bereit für den nächsten Schritt? Versuchen Sie, einen ganzen Ordner gescannter PDFs zu verarbeiten, experimentieren Sie mit verschiedenen Sprachpaketen oder integrieren Sie das OCR‑Ergebnis in eine durchsuchbare Datenbank. Die heute erstellte Offline‑Konfiguration bildet ein solides Fundament für jede On‑Premises‑Dokumenten‑Verarbeitungs‑Workflow. + +Viel Spaß beim Coden und hinterlassen Sie gern einen Kommentar, falls Sie auf Probleme stoßen! + +{{< /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 c77c30a65..be0df0dcb 100644 --- a/ocr/german/net/ocr-optimization/_index.md +++ b/ocr/german/net/ocr-optimization/_index.md @@ -68,7 +68,9 @@ Entdecken Sie Aspose.OCR für .NET. Steigern Sie die OCR‑Genauigkeit mit Vorve ### [Ergebniskorrektur mit Rechtschreibprüfung in OCR-Bilderkennung](./result-correction-with-spell-checking/) Verbessern Sie die OCR‑Genauigkeit mit Aspose.OCR für .NET. Korrigieren Sie Rechtschreibfehler, passen Sie Wörterbücher an und erreichen Sie mühelos eine fehlerfreie Texterkennung. ### [Mehrseitiges Ergebnis als Dokument speichern in OCR-Bilderkennung](./save-multipage-result-as-document/) -Entfesseln Sie das Potenzial von Aspose.OCR für .NET. Speichern Sie mühelos mehrseitige OCR‑Ergebnisse als Dokumente mit diesem umfassenden Schritt-für-Schritt‑Leitfaden. +Entfesseln Sie das Potenzial von Aspose.OCR für .NET. Speichern Sie mühelos mehrseitige OCR‑Ergebnisse als Dokumente mit diesem umfassenden Schritt‑für‑Schritt‑Leitfaden. +### [Wie man die OCR‑Genauigkeit in C# mit Aspose OCR verbessert](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Optimieren Sie die OCR‑Genauigkeit in C# durch bewährte Methoden und Aspose OCR. ## Häufig gestellte Fragen diff --git a/ocr/german/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/german/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..d02c78ee8 --- /dev/null +++ b/ocr/german/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Erfahren Sie, wie Sie die OCR in C# verbessern können, indem Sie Text + aus JPGs erkennen, Bilder entzerren und Rauschen mit Aspose OCR entfernen. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: de +og_description: Entdecken Sie, wie Sie OCR verbessern können, indem Sie Text aus JPG + erkennen, Bilder entzerren und Rauschen entfernen – vollständiger C#‑Leitfaden. +og_title: Wie man die OCR‑Genauigkeit in C# mit Aspose OCR verbessert +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Wie man die OCR‑Genauigkeit in C# mit Aspose OCR verbessert +url: /de/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man die OCR-Genauigkeit in C# mit Aspose OCR verbessert + +Haben Sie sich jemals gefragt, **wie man OCR** verbessert, wenn Ihre Scans eher wie abstrakte Kunst aussehen als lesbarer Text? Sie sind nicht allein. In vielen realen Projekten – denken Sie an Rechnungen, Quittungen oder handschriftliche Notizen – sind die Quellbilder oft schief, körnig oder einfach nur verrauscht. Die gute Nachricht? Aspose OCR bietet Ihnen eine Reihe von Vorverarbeitungs‑Reglern, die dieses Chaos in saubere, maschinenlesbare Zeichen verwandeln können. In diesem Tutorial führen wir Sie durch ein vollständiges, ausführbares Beispiel, das **wie man OCR** verbessert, indem **Text aus JPG** erkannt, das Bild ent­schrägt und unerwünschtes Rauschen entfernt. + +> *Pro Tipp:* Wenn Sie die Vorverarbeitung überspringen, erhalten Sie wahrscheinlich ein wirres Ergebnis, das wie ein kryptisches Kreuzworträtsel aussieht. Lassen Sie uns das vermeiden. + +![Wie man OCR mit Aspose OCR Vorverarbeitung verbessert](https://example.com/ocr-preprocess.png "wie man OCR mit Aspose OCR verbessert") + +## Was Sie lernen werden + +1. Wie man die Aspose OCR‑Engine für optimale Genauigkeit einrichtet. +2. Der genaue Code, der benötigt wird, um **Text aus JPG**‑Dateien zu erkennen. +3. Warum das Aktivieren von *AutoDeskew* und *RemoveNoise* wichtig ist und wie man sie einstellt. +4. Wie man **Text aus Bild**‑Dateien extrahiert, ohne einen eigenen Filter zu schreiben. +5. Häufige Stolperfallen (fehlende Datei, nicht unterstütztes Format) und schnelle Lösungen. + +Am Ende haben Sie eine einzelne C#‑Konsolen‑App, die jedes JPG aufnehmen, bereinigen und die extrahierte Zeichenkette ausgeben kann – bereit für die nachgelagerte Verarbeitung oder Speicherung. + +## Voraussetzungen + +- .NET 6.0 SDK oder höher (das Beispiel verwendet Top‑Level‑Statements zur Kürze). +- Aspose.OCR NuGet‑Paket (`dotnet add package Aspose.OCR`). +- Ein Beispiel‑JPG‑Bild (namens `input.jpg`) im selben Ordner wie die ausführbare Datei. +- Grundlegende Kenntnisse in C# – keine fortgeschrittenen Konzepte erforderlich. + +Wenn Sie bereits ein Projekt haben, fügen Sie einfach den Code ein; andernfalls erstellen Sie eine neue Konsolen‑App: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +## Wie man OCR verbessert: Überblick über die Preprocess‑Einstellungen + +Das Herzstück von **wie man OCR verbessert** liegt im `PreprocessSettings`‑Objekt. Betrachten Sie es als einen Mini‑Bild‑Editor, der *vor* dem eigentlichen Zeichenerkennungs‑Engine ausgeführt wird. Nachfolgend eine kurze Übersicht der wirkungsvollsten Flags: + +| Einstellung | Was es tut | Typischer Anwendungsfall | +|------------------------|---------------------------------------------------------|--------------------------| +| `AutoDeskew` | Wendet einen Deep‑Learning‑Entschrägungs‑Algorithmus an. | Gescannte Seiten, die leicht geneigt sind. | +| `AdaptiveThreshold` | Erhöht den Kontrast bei schwach beleuchteten oder verblassten Bildern. | Alte Quittungen mit ausgewaschenem Druck. | +| `RemoveNoise` | Führt einen Gauß‑Weichzeichner‑Filter aus, um Sprenkel zu unterdrücken. | Fotos, die mit dem Smartphone‑Blitz aufgenommen wurden. | +| `NoiseRemovalStrength`| Steuert die Aggressivität (1 = niedrig, 3 = hoch). | Feinabstimmung je nach Körnigkeit der Quelle. | + +Das Aktivieren dieser Optionen ist im Wesentlichen die „Geheimzutat“ für **wie man OCR verbessert** bei unperfekten Eingaben. + +## Text aus JPG mit Aspose OCR erkennen + +Unten finden Sie das vollständige, sofort ausführbare Programm. Jede Zeile ist kommentiert, sodass Sie sehen können *warum* jedes Element existiert, nicht nur *was* es tut. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Erwartete Ausgabe + +Wenn `input.jpg` den Satz „Invoice #12345 – Total: $256.78“ enthält, gibt die Konsole aus: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Beachten Sie, dass die Ausgabe sauber ist, mit Bindestrich und Dollarzeichen erhalten – genau das, was Sie erwarten, wenn Sie **Text aus Bild**‑Dateien extrahieren. + +## Wie man ein Bild mit Preprocess‑Einstellungen entschrägt + +Warum ist Entschrägung wichtig? Selbst eine Neigung von 2 Grad kann die Zeichen‑Segmentierungs‑Phase verwirren und zu falsch erkannten Buchstaben führen. Das `AutoDeskew`‑Flag führt im Hintergrund ein Convolutional‑Neural‑Network aus, das den dominanten Winkel erkennt und das Bild wieder in die Grundlage zurückdreht. + +Wenn Sie mehr Kontrolle benötigen, können Sie den Winkel manuell festlegen: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Wann man manuelle Entschrägung verwendet:** Wenn Sie wissen, dass die Kamera Bilder konsequent um einen festen Betrag neigt (z. B. ein fest montierter Scanner), spart das Hard‑Coden des Winkels ein wenig Verarbeitungszeit. + +## Wie man Rauschen entfernt für sauberere Extraktion + +Rauschen erscheint als zufällige Sprenkel oder Körnung, besonders bei Fotos bei wenig Licht. Das `RemoveNoise`‑Flag wendet einen bilateralen Filter an, der den Hintergrund glättet und gleichzeitig Kanten (die eigentlichen Zeichen) erhält. Die Eigenschaft `NoiseRemovalStrength` ermöglicht es, die Aggressivität einzustellen: + +| Stärke | Effekt | +|--------|--------| +| 1 | Leichtes Glätten – gut für leicht körnige Bilder. | +| 2 | Ausgewogen – funktioniert für die meisten Smartphone‑Aufnahmen. | +| 3 | Starkes Glätten – verwenden, wenn das Bild extrem verrauscht ist, aber achten Sie darauf, dünne Striche zu verwischen. | + +Wenn Sie feststellen, dass kleine Schriftarten nach starkem Glätten unlesbar werden, reduzieren Sie einfach die Stärke oder deaktivieren Sie den Filter vollständig. + +## Text aus Bild extrahieren: über JPG hinaus + +Obwohl unser Demo sich auf ein JPG konzentriert, unterstützt Aspose OCR PNG, BMP, TIFF und sogar PDF‑Seiten. Um **Text aus Bild**‑Formaten außer JPG zu extrahieren, ändern Sie einfach die Dateierweiterung in `ImageStream.FromFile`. Für mehrseitige TIFFs können Sie jede Seite durchlaufen: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +## Häufige Fallstricke & wie man sie behebt + +| Symptom | Wahrscheinliche Ursache | Schnelle Lösung | +|-----------------------------|------------------------------------------------------------------|-----------------| +| Leere Ausgabe | Bild ist nach der Vorverarbeitung komplett weiß (zu aggressive Schwelle) | Reduzieren Sie `NoiseRemovalStrength` oder setzen Sie `AdaptiveThreshold = false`. | +| Verzerrte Zeichen | Falsches Sprachmodell (Standard ist Englisch) | Setzen Sie `ocrEngine.Settings.Language = Language.English;` oder laden Sie ein benutzerdefiniertes Sprachpaket. | +| Absturz bei großen Dateien | Speicherüberlauf wegen hochauflösendem Bild | Skalieren Sie mit `ocrEngine.Settings.ImageResizeFactor = 0.5;` vor der Erkennung herunter. | +| Keine Ausgabe bei gedrehten Scans | `AutoDeskew` versehentlich deaktiviert | Aktivieren Sie `AutoDeskew = true` oder geben Sie den korrekten `DeskewAngle` an. | + +Wenn Sie diese im Hinterkopf behalten, sparen Sie Stunden an Fehlersuche, wenn Sie versuchen, **wie man OCR verbessert** in Produktionspipelines. + +## Bonus: Anpassungen für Geschwindigkeit vs. Genauigkeit + +Wenn Sie täglich tausende von Quittungen verarbeiten, könnten Sie die Geschwindigkeit priorisieren. Deaktivieren Sie `AdaptiveThreshold` und setzen Sie `NoiseRemovalStrength = 1`. Umgekehrt, bei juristischen Dokumenten, bei denen ein einzelnes fehlendes Zeichen kostspielig sein kann, lassen Sie alle Flags aktiviert und erwägen Sie, `NoiseRemovalStrength` auf 3 zu erhöhen. + +## Zusammenfassung + +Wir haben die gesamte Reise von **wie man OCR verbessert** in C# mit Aspose OCR abgedeckt: vom Erstellen der Engine, über die Konfiguration der Vorverarbeitung (die Grundlage von *wie man Bild entschärft* und *wie man Rauschen entfernt*), dem Laden eines JPG, der Texterkennung und dem Umgang mit Randfällen. Der Code ist eigenständig, läuft sofort und demonstriert die genauen Schritte, die Sie benötigen, um **Text aus jpg** zu **erkennen** und **Text aus Bild**‑Dateien zu **extrahieren**. + +### Was kommt als Nächstes? + +- Experimentieren Sie mit anderen Bildformaten (PNG, TIFF), um zu sehen, wie sich dieselben Einstellungen verhalten. +- Integrieren Sie die OCR‑Ausgabe in eine Datenbank oder + +{{< /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 164bd821b..3354757ad 100644 --- a/ocr/german/net/text-recognition/_index.md +++ b/ocr/german/net/text-recognition/_index.md @@ -27,7 +27,7 @@ Entdecken Sie die Funktionen von Aspose.OCR für .NET und verändern Sie die Art ## Erhalten Sie das Ergebnis als JSON in der OCR-Bilderkennung -Nutzen Sie das volle Potenzial von Aspose.OCR für .NET, indem Sie lernen, wie Sie mühelos OCR-Ergebnisse im JSON-Format erhalten. Diese Schritt-für-Schritt-Anleitung gewährleistet einen reibungslosen Weg zur Verbesserung Ihrer Bilderkennungsfähigkeiten. Steigern Sie die Effizienz Ihrer Anwendung mit den robusten Funktionen und der branchenführenden Technologie von Aspose.OCR. +Nutzen Sie das volle Potenzial von Aspose.OCR für .NET, indem Sie lernen, wie Sie mühelos OCR-Ergebnisse im JSON-Format erhalten. Diese Schritt‑für‑Schritt‑Anleitung gewährleistet einen reibungslosen Weg zur Verbesserung Ihrer Bilderkennungsfähigkeiten. Steigern Sie die Effizienz Ihrer Anwendung mit den robusten Funktionen und der branchenführenden Technologie von Aspose.OCR. ## Modus „OCR-Erkennungsbereiche“ in der OCR-Bilderkennung @@ -41,23 +41,33 @@ 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. +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. ## 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. +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. ### [Erhalten Sie das Erkennungsergebnis bei der OCR-Bilderkennung](./get-recognition-result/) -Entdecken Sie Aspose.OCR für .NET, eine leistungsstarke OCR-Lösung für die nahtlose Texterkennung in Bildern. +Entdecken Sie Aspose.OCR für .NET, eine leistungsstarke OCR‑Lösung für die nahtlose Texterkennung in Bildern. ### [Erhalten Sie das Ergebnis als JSON in der OCR-Bilderkennung](./get-result-as-json/) -Nutzen Sie die Leistungsfähigkeit von Aspose.OCR für .NET. Erfahren Sie, wie Sie mühelos OCR-Ergebnisse im JSON-Format erhalten. Verbessern Sie Ihre Bilderkennung mit dieser Schritt-für-Schritt-Anleitung. +Nutzen Sie die Leistungsfähigkeit von Aspose.OCR für .NET. Erfahren Sie, wie Sie mühelos OCR‑Ergebnisse im JSON‑Format erhalten. Verbessern Sie Ihre Bilderkennung mit dieser Schritt‑für‑Schritt‑Anleitung. ### [Modus „OCR-Erkennungsbereiche“ in der OCR-Bilderkennung](./ocr-detect-areas-mode/) -Erweitern Sie Ihre .NET-Anwendungen mit Aspose.OCR für eine effiziente Bildtexterkennung. Entdecken Sie den OCR-Erkennungsmodus für präzise Ergebnisse. +Erweitern Sie Ihre .NET-Anwendungen mit Aspose.OCR für eine effiziente Bildtexterkennung. Entdecken Sie den OCR‑Erkennungsmodus für präzise Ergebnisse. ### [Erkennen Sie PDF mit der OCR-Bilderkennung](./recognize-pdf/) 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. +Nutzen Sie das Potenzial von Aspose.OCR für .NET mit unserem umfassenden Leitfaden zum Erkennen von Tabellen in der OCR‑Bilderkennung. +### [Text aus Bild in C# extrahieren – Vollständiger OCR-Leitfaden](./extract-text-from-image-in-c-complete-ocr-guide/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# Text aus Bildern extrahieren und vollständig integrieren. +### [Text aus TIFF mit Batch-OCR in C# extrahieren – Vollständiger Leitfaden](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# Text aus TIFF-Dateien per Batch‑OCR extrahieren und effizient verarbeiten. +### [Durchsuchbares PDF in C# erstellen – Vollständiger Leitfaden](./create-searchable-pdf-in-c-complete-guide/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# durchsuchbare PDFs erstellen und nahtlos in Ihre Anwendungen integrieren. +### [Text aus PNG in C# erkennen – Vollständiger OCR‑ und Rechtschreibprüfungs‑Leitfaden](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# Text aus PNG‑Dateien extrahieren und gleichzeitig Rechtschreibprüfung durchführen. +### [Bild in JSON konvertieren – C# OCR‑Tutorial für Belege](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Erfahren Sie, wie Sie mit Aspose.OCR in C# Bilder von Belegen in JSON konvertieren und OCR‑Daten effizient nutzen. {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/german/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..33c436294 --- /dev/null +++ b/ocr/german/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-04-11 +description: Bild in JSON konvertieren mit Aspose OCR Cloud in C#. Erfahren Sie, wie + Sie Text erkennen, Text aus einem Bild extrahieren und Belege mit OCR in wenigen + Minuten verarbeiten. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: de +og_description: Bild in JSON mit Aspose OCR Cloud in C# konvertieren. Dieser Leitfaden + zeigt, wie man Text erkennt, Text aus einem Bild extrahiert und Belege mit OCR verarbeitet. +og_title: Bild in JSON konvertieren – C# OCR‑Tutorial für Quittungen +tags: +- OCR +- C# +- Aspose +- JSON +title: Bild in JSON konvertieren – C# OCR‑Tutorial für Belege +url: /de/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Bild in JSON konvertieren – C# OCR‑Tutorial für Belege + +Haben Sie jemals **Bild in JSON konvertieren** müssen, wussten aber nicht, wo Sie anfangen sollen? In diesem Leitfaden führen wir Sie durch ein komplettes, End‑to‑End‑C#‑OCR‑Tutorial, das ein Foto eines Belegs nimmt, den Text erkennt und ein ordentliches JSON‑Payload ausgibt. + +Wenn Sie sich jemals gefragt haben, *wie man Text* in einem gescannten Dokument erkennt, oder Sie suchen nach einer schnellen Möglichkeit, **Text aus Bild**‑Dateien zu extrahieren, dann sind Sie hier genau richtig. Am Ende dieses Artikels können Sie **Belege mit OCR verarbeiten** und das Ergebnis direkt in Ihre nachgelagerten APIs einspeisen. + +## Was Sie benötigen + +- .NET 6 SDK oder neuer (der Code funktioniert auch mit .NET Core) +- Ein Aspose Cloud API‑Schlüssel – Sie können eine kostenlose Testversion im Aspose‑Portal erhalten +- Ein Beispiel‑Beleg‑Bild (`receipt.jpg`) lokal gespeichert +- Ihre bevorzugte IDE (Visual Studio, VS Code, Rider – alles ist geeignet) + +Keine zusätzlichen NuGet‑Pakete über den offiziellen `Aspose.OCR.Cloud`‑Client hinaus sind erforderlich. Wenn Sie das SDK bereits installiert haben, können Sie loslegen. + +## Schritt 1 – Bild in JSON konvertieren: OCR‑Client einrichten + +Zuerst benötigen wir eine Instanz von `CloudOcrClient`. Dieses Objekt übernimmt die gesamte Kommunikation mit dem Aspose‑OCR‑Dienst und gibt das Ergebnis im JSON‑Format zurück. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Warum das wichtig ist:** Das Initialisieren des Clients ist die Brücke zwischen Ihrem C#‑Code und der Cloud‑OCR‑Engine. Die Methode `RecognizeAsync` erledigt die schwere Arbeit – sie lädt das Bild hoch, führt die OCR‑Engine aus und gibt einen JSON‑String zurück, der den erkannten Text, Vertrauenswerte und die Koordinaten der Begrenzungs‑Boxen enthält. + +> **Pro‑Tipp:** Speichern Sie den API‑Schlüssel in einer Umgebungsvariable oder einem Secret‑Manager, anstatt ihn hart zu codieren. So vermeiden Sie versehentliche Lecks. + +## Schritt 2 – Wie man Text aus dem Beleg erkennt + +Jetzt, wo der Client bereit ist, tauchen wir in das *Wie* der Texterkennung ein. Aspose OCR unterstützt viele Sprachen, aber für die meisten Belege funktioniert Englisch gut. Wenn Sie eine andere Sprache benötigen, ersetzen Sie einfach `Language.English` durch den entsprechenden Enum‑Wert. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Was im Hintergrund passiert:** Der Dienst verwendet ein Deep‑Learning‑Modell, das Zeichen erkennt, zu Wörtern gruppiert und anschließend Zeilen zusammenstellt. Das zurückgegebene JSON sieht ungefähr so aus: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Sie können dieses JSON mit `System.Text.Json` oder `Newtonsoft.Json` parsen, um die für Sie relevanten Felder herauszuholen. + +## Schritt 3 – Text aus Bild extrahieren und JSON manuell erstellen (optional) + +Manchmal möchten Sie das rohe JSON, das Aspose liefert, nicht verwenden; vielleicht benötigen Sie eine benutzerdefinierte Struktur für Ihren nachgelagerten Service. Unten finden Sie ein kurzes Beispiel, das die Antwort deserialisiert und in ein übersichtlicheres Objekt umwandelt. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Warum umformatieren?** Viele APIs erwarten ein bestimmtes Schema (z. B. `{ "total": "12.34", "date": "2026-04-10" }`). Indem Sie nur die benötigten Felder extrahieren, halten Sie das Payload leichtgewichtig und vermeiden das Leaken unnötiger OCR‑Metadaten. + +## Schritt 4 – Das C#‑OCR‑Tutorial mit einem Beispiel‑Beleg testen + +Führen Sie das Programm in Ihrem Terminal aus: + +```bash +dotnet run +``` + +Sie sollten zwei Ausgabeblöcke sehen: + +1. Das rohe JSON, das von Aspose zurückgegeben wird (das **Bild in JSON konvertieren**‑Ergebnis direkt aus der Cloud). +2. Das benutzerdefinierte JSON, das Sie im vorherigen Schritt erstellt haben. + +Typische Ausgabe sieht etwa so aus: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Wenn Sie einen Fehler wie *401 Unauthorized* erhalten, prüfen Sie, ob Ihr API‑Schlüssel gültig ist und der Bildpfad korrekt ist. + +## Randfälle & häufige Stolperfallen + +| Situation | Worauf zu achten ist | Empfohlene Lösung | +|-----------|----------------------|-------------------| +| **Niedrigauflösender Beleg** | OCR‑Vertrauenswert fällt unter 0,8 | Bild vorverarbeiten (DPI erhöhen, schärfen) bevor es gesendet wird | +| **Nicht‑englische Zeichen** | Falscher Sprach‑Enum | Verwenden Sie `Language.AutoDetect` oder geben Sie die korrekte Sprache an | +| **Große Menge an Belegen** | Rate‑Limit‑Fehler | Exponential Back‑off implementieren oder bei Aspose ein höheres Kontingent anfordern | +| **Fehlende Felder** | Benutzerdefinierter Parser gibt `null` zurück | Fallback‑Logik oder Regex‑Muster hinzufügen für robustere Extraktion | + +## Visuelle Übersicht + +![Diagramm, das den Ablauf von Bilddatei → OCR‑Client → JSON‑Antwort → benutzerdefinierte Verarbeitung → endgültige JSON‑Ausgabe zeigt](https://example.com/ocr-flow-diagram.png "Bild in JSON konvertieren") + +*Alt‑Text:* *Flussdiagramm „Bild in JSON konvertieren“, das die in diesem Tutorial behandelten Schritte veranschaulicht.* + +## Zusammenfassung + +Wir haben Ihnen gezeigt, wie Sie **Bild in JSON konvertieren** mit Aspose OCR Cloud, erklärt, *wie man Text* in einem Beleg erkennt, Wege demonstriert, **Text aus Bild zu extrahieren**, und alles in ein sauberes **C#‑OCR‑Tutorial** verpackt, das Sie in jedes .NET‑Projekt einbinden können. + +Die wichtigsten Erkenntnisse sind: + +- Richten Sie `CloudOcrClient` mit Ihrem API‑Schlüssel ein. +- Rufen Sie `RecognizeAsync` auf, um ein JSON‑Payload direkt vom Service zu erhalten. +- Optional können Sie dieses Payload umformen, um es an Ihren eigenen Datenvertrag anzupassen. + +## Was kommt als Nächstes? + +- **Batch‑Verarbeitung:** Durchlaufen Sie einen Ordner mit Belegen und aggregieren Sie die Ergebnisse in ein einzelnes JSON‑Array. +- **Erweiterte Analyse:** Verwenden Sie reguläre Ausdrücke oder ein kleines NLP‑Modell, um Positionen, Steuern und Rabatte herauszuziehen. +- **Integration:** Schieben Sie das endgültige JSON in eine Datenbank, eine Nachrichtenwarteschlange oder eine Azure‑Function für weitere Automatisierung. + +Experimentieren Sie gern mit verschiedenen Bildformaten (PNG, TIFF) oder probieren Sie den **Beleg mit OCR verarbeiten**‑Ablauf mit mobil aufgenommenen Fotos aus. Der Himmel ist die Grenze, sobald Sie eine zuverlässige Methode haben, **Bild in JSON zu konvertieren**. + +Haben Sie Fragen oder ein Problem? Hinterlassen Sie unten einen Kommentar, und 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/german/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..f5ec861ec --- /dev/null +++ b/ocr/german/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Schnell ein durchsuchbares PDF aus einem Bild erstellen. Lernen Sie, + PDF aus einem Bild zu erzeugen, Bild‑PDF einzubetten, TIF in PDF zu konvertieren + und OCR zu PDF in C# mit Aspose zu verwenden. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: de +og_description: Erstelle sofort durchsuchbare PDFs. Dieses Tutorial zeigt, wie man + PDFs aus Bildern erzeugt, Bild‑PDF einbettet, TIF in PDF konvertiert und OCR zu + PDF in C# verwendet. +og_title: Erstelle durchsuchbare PDF in C# – Schritt‑für‑Schritt‑Anleitung +tags: +- C# +- OCR +- PDF generation +title: Durchsuchbare PDF in C# erstellen – Komplettanleitung +url: /de/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Durchsuchbares PDF in C# erstellen – Vollständige Anleitung + +Haben Sie jemals ein **create searchable PDF** aus einem gescannten Dokument erstellen müssen, wussten aber nicht, wo Sie anfangen sollen? Sie sind nicht allein; viele Entwickler stoßen auf dasselbe Problem, wenn sie mit TIFF‑Dateien und OCR arbeiten. In diesem Tutorial führen wir Sie durch eine praxisnahe Lösung, die es Ihnen ermöglicht, **generate PDF from image** zu erstellen, das Originalbild für perfekte Durchsuchbarkeit einzubetten und mit einem sauberen **OCR to PDF C#**‑Workflow abzuschließen. + +Wir decken alles ab, von der Installation der Aspose.OCR‑Bibliothek bis hin zur Behandlung von Sonderfällen wie mehrseitigen TIFFs. Am Ende haben Sie ein sofort einsatzbereites Programm, das `input.tif` in ein vollständig durchsuchbares `output.pdf` verwandelt. Keine externen Dienste, keine versteckte Magie – nur reiner C#‑Code, den Sie in jedes .NET‑Projekt einbinden können. + +## Was Sie benötigen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.7+) +- Visual Studio 2022 (oder ein beliebiger Editor Ihrer Wahl) +- Eine aktive Aspose.OCR‑Lizenz oder einen kostenlosen Testschlüssel (das NuGet‑Paket funktioniert ohne Schlüssel für die Evaluierung) +- Ein Beispiel‑TIFF‑Bild (`input.tif`) in einem Ordner, den Sie referenzieren können + +> **Pro Tipp:** Halten Sie Ihre Bilddateien unter 10 MB, um Speicherspitzen bei der Verarbeitung großer Stapel zu vermeiden. + +## Schritt 1: Aspose.OCR installieren und das Projekt einrichten + +Zuerst fügen Sie das Aspose.OCR‑NuGet‑Paket zu Ihrem Projekt hinzu. Öffnen Sie die Package Manager Console und führen Sie aus: + +```powershell +Install-Package Aspose.OCR +``` + +Wenn Sie die UI bevorzugen, klicken Sie mit der rechten Maustaste auf **Dependencies → Manage NuGet Packages**, suchen Sie nach *Aspose.OCR* und klicken Sie auf **Install**. + +Warum dieser Schritt wichtig ist: Aspose.OCR enthält eine Hochleistungs‑OCR‑Engine und einen integrierten PDF‑Exporter, sodass Sie keine separaten Bibliotheken für die Bildverarbeitung oder PDF‑Erstellung benötigen. + +### Vollständiges Projektgerüst + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Hinweis:** Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Ordnerpfad auf Ihrem Rechner. + +## Schritt 2: Bild laden – *Generate PDF from Image* Grundlage + +Das Laden der Quelldatei ist ein kleiner, aber kritischer Schritt. Aspose.OCR erwartet einen `ImageStream`, der die Datei‑I/O abstrahiert und viele Formate unterstützt (TIFF, PNG, JPEG usw.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Warum nicht einfach den Pfad übergeben?** +Der `ImageStream`‑Wrapper übernimmt das interne Puffer‑Management und stellt sicher, dass die OCR‑Engine mit großen mehrseitigen TIFFs arbeitet, ohne die gesamte Datei auf einmal in den Speicher zu laden. + +## Schritt 3: PDF‑Export konfigurieren – *Embed Image PDF* für perfekte Durchsuchbarkeit + +Beim Exportieren von OCR‑Ergebnissen nach PDF haben Sie zwei Möglichkeiten: Nur den extrahierten Text einbetten oder das Originalbild zusammen mit der versteckten Textebene einbetten. Das Einbetten des Bildes bewahrt die visuelle Treue des Scans und ermöglicht es Benutzern, später Text auszuwählen oder zu kopieren. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Sonderfall:** Wenn Sie `EmbedOriginalImage` auf `false` setzen, wird das resultierende PDF kleiner sein, verliert jedoch das Originalbild – nützlich für reine Textarchive. + +## Schritt 4: Export – *OCR to PDF C#* in einem Aufruf + +Aspose.OCR erledigt die schwere Arbeit mit einer einzigen Zeile. Die Methode `ExportToPdf` führt OCR aus, erstellt die versteckte Textebene und schreibt die endgültige Datei. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Erwartetes Ergebnis + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Öffnen Sie `output.pdf` in einem beliebigen Viewer (Adobe Reader, Edge usw.) und versuchen Sie, Text auszuwählen – Sie werden das Originalbild darunter sehen, was bestätigt, dass die **create searchable pdf**‑Operation erfolgreich war. + +## Schritt 5: PDF verifizieren – Schnellprüfungen, die Sie automatisieren können + +Während die manuelle Inspektion für eine einzelne Datei ausreichend ist, möchten Sie möglicherweise programmgesteuert prüfen, ob das PDF eine Textebene enthält. Aspose.PDF (eine Schwesterbibliothek) kann das Dokument lesen und Text extrahieren: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Fügen Sie nach dem Export einen Aufruf zu `VerifyPdfContainsText(pdfPath);` hinzu, wenn Sie eine automatisierte Plausibilitätsprüfung wünschen. + +## Häufige Fallstricke & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|-------|----------------|-----| +| **Out‑of‑memory bei riesigen TIFFs** | Das Laden der gesamten Datei auf einmal überschreitet den Arbeitsspeicher. | Verwenden Sie `ImageStream.FromFile` (wie gezeigt) und verarbeiten Sie die Seiten einzeln, wenn Sie mehrseitige Dateien haben. | +| **Fehlende Lizenz führt zu Wasserzeichen** | Der Evaluierungsmodus fügt jeder Seite ein sichtbares Wasserzeichen hinzu. | Setzen Sie Ihre Aspose.OCR‑Lizenz frühzeitig: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Falsche Pfadtrennzeichen unter Linux** | Hartkodiertes `\` funktioniert nicht auf Nicht‑Windows‑OS. | Verwenden Sie `Path.Combine` oder rohe String‑Literals mit `/`. | +| **Text nicht durchsuchbar** | `EmbedOriginalImage` ist auf `false` gesetzt oder OCR ist deaktiviert. | Stellen Sie sicher, dass `PdfExportOptions.EmbedOriginalImage = true` ist und die OCR‑Engine korrekt initialisiert wurde. | + +## Bonus: TIF ohne OCR zu PDF konvertieren (wenn Text nicht benötigt wird) + +Wenn Sie nur **convert TIF to PDF** ohne die versteckte Textebene benötigen, können Sie den OCR‑Schritt vollständig überspringen: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Dieser Trick ist praktisch zum Archivieren gescannter Dokumente, bei denen Durchsuchbarkeit nicht erforderlich ist. + +## Vollständiges funktionierendes Beispiel (Copy‑Paste bereit) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Führen Sie das Programm aus, öffnen Sie `output.pdf` und Sie sehen eine getreue Kopie des ursprünglichen TIFFs mit einer versteckten, auswählbaren Textebene – genau das, was **create searchable pdf** in der Praxis bedeutet. + +## Fazit + +Wir haben gerade einen vollständigen **create searchable pdf**‑Workflow in C# durchlaufen. Ausgehend von einem rohen TIFF haben wir **generate pdf from image**, uns entschieden, **embed image pdf** für visuelle Treue zu verwenden, und die komplette **ocr to pdf c#**‑Pipeline mit Aspose.OCR demonstriert. + +Passen Sie gerne die `PdfExportOptions` (Kompression, PDF‑Version usw.) an oder verketten Sie mehrere Bilder für die Stapelverarbeitung. Als Nächstes könnten Sie Passwortschutz, digitale Signaturen oder sogar das Zusammenführen mehrerer durchsuchbarer PDFs zu einem Master‑Dokument erkunden. + +Haben Sie Fragen zur Skalierung auf tausende Dateien oder zur Integration in eine ASP.NET‑API? Hinterlassen Sie unten einen Kommentar oder melden Sie sich auf GitHub – happy coding! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/german/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..cac02f5c2 --- /dev/null +++ b/ocr/german/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Extrahieren Sie Text aus einem Bild mit Aspose OCR in C#. Erfahren Sie, + wie Sie ein Bild für OCR laden und Text aus TIFF‑Dateien mit GPU‑Unterstützung erkennen. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: de +og_description: Extrahieren Sie Text aus einem Bild mit Aspose OCR in C#. Dieses Tutorial + zeigt, wie man ein Bild für OCR lädt und Text aus einer TIFF-Datei mit GPU‑Beschleunigung + erkennt. +og_title: Text aus Bild in C# extrahieren – Vollständiger OCR-Leitfaden +tags: +- OCR +- C# +- Aspose +- GPU +title: Text aus Bild in C# extrahieren – Vollständiger OCR-Leitfaden +url: /de/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus Bild in C# extrahieren – Vollständiger OCR-Leitfaden + +Haben Sie jemals **Text aus Bild** extrahieren müssen, waren sich aber nicht sicher, welche Bibliothek ein riesiges TIFF ohne Probleme verarbeiten kann? Sie sind nicht allein. In vielen realen Projekten – denken Sie an die Digitalisierung von Rechnungen oder die Archivierung gescannter Bücher – wird die Fähigkeit, ein Bild für OCR zu laden und dann Text aus einem TIFF zu erkennen, schnell zu einem entscheidenden Merkmal. + +In diesem Leitfaden führen wir Sie durch eine praktische Lösung, die genau das mit Aspose OCR für .NET erledigt. Am Ende haben Sie eine ausführbare C#-Konsolenanwendung, die einen hochauflösenden Scan lädt, GPU‑beschleunigte Verarbeitung startet (mit einem eleganten Fallback) und das Klartext‑Ergebnis ausgibt. Keine fehlenden Teile, keine “Siehe Dokumentation”-Tote-Enden. + +## Was Sie benötigen + +- **.NET 6 oder höher** (der Code kompiliert mit jedem aktuellen SDK) +- **Aspose.OCR für .NET** NuGet‑Paket + `dotnet add package Aspose.OCR` +- Ein **großes TIFF** oder ein anderes Bildformat, das Sie OCR‑verarbeiten möchten + (das Beispiel verwendet `large_scan.tif`) +- (Optional) Eine GPU, die CUDA 11+ unterstützt – falls Sie keine haben, wechselt die Bibliothek automatisch in den CPU‑Modus. + +Das war’s. Lassen Sie uns eintauchen. + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## Schritt 1: Text aus Bild extrahieren – OCR‑Engine initialisieren + +Bevor ein Bild verarbeitet werden kann, benötigen Sie eine `OcrEngine`‑Instanz. Die Engine enthält alle Einstellungen, die steuern, wie die Erkennung abläuft. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Warum das wichtig ist:** +`ProcessingMode.Gpu` kann bei einer modernen Karte Sekunden von der Erkennungszeit abziehen, aber das Setzen von `ProcessingMode.Auto` (oder das Belassen des Standardwerts) ist sicherer für Umgebungen, in denen eine GPU fehlen könnte. Der `GpuMemoryLimit`‑Schutz ist ein praktischer Hinweis – ohne ihn könnte ein riesiges Bild den gesamten VRAM beanspruchen und andere Anwendungen zum Absturz bringen. + +## Schritt 2: Bild für OCR laden – TIFF in den Speicher bringen + +Jetzt, wo die Engine bereit ist, müssen wir ihr das Bild zuführen, das wir analysieren wollen. Aspose stellt `ImageStream.FromFile` bereit, das die Formatbehandlung abstrahiert. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Was im Hintergrund passiert:** +`ImageStream.FromFile` liest die Datei in einen Stream ein und erkennt automatisch das Bildformat (TIFF, PNG, JPEG usw.). Wenn Sie mit mehrseitigen TIFFs arbeiten, behandelt Aspose jede Seite als separates Frame; Sie können später bei Bedarf darüber iterieren. + +## Schritt 3: Text aus TIFF erkennen – OCR‑Engine ausführen + +Nachdem das Bild geladen ist, beginnt die eigentliche Arbeit. Die Methode `Recognize` gibt ein `OcrResult`‑Objekt zurück, das den extrahierten Text und einige nützliche Metadatenfelder enthält. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Warum `Recognize` nur einmal aufrufen?** +Da die Engine nach dem ersten Durchlauf interne Strukturen cached, reicht ein einzelner Aufruf für die meisten Szenarien aus. Wenn Sie viele Seiten verarbeiten müssen, verwenden Sie dieselbe `OcrEngine`‑Instanz erneut – das vermeidet den Overhead beim erneuten Initialisieren von GPU‑Kontexten. + +## Schritt 4: Ergebnis anzeigen – Extrahierten Text ausgeben + +Schließlich geben wir die erkannte Zeichenkette in der Konsole aus. In einer echten Anwendung würden Sie sie wahrscheinlich in einer Datenbank oder einer Datei speichern. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Erwartete Ausgabe:** +Wenn `large_scan.tif` eine gedruckte Rechnung enthält, sehen Sie etwa Folgendes: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Das genaue Layout hängt vom Quellbild ab, aber der entscheidende Punkt ist, dass Sie jetzt **Text aus Bild**‑Ergebnisse haben, die für die nachgelagerte Verarbeitung bereitstehen. + +## Schritt 5: Fehlersuche & Sonderfälle + +### GPU nicht erkannt? + +Wenn Sie das Beispiel auf einem Rechner ohne kompatible GPU ausführen, wechselt die Engine bei Verwendung von `ProcessingMode.Auto` stillschweigend zur CPU. Um den CPU‑Modus explizit zu erzwingen, ersetzen Sie die vorherige Zeile durch: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Speicherhungrige TIFFs + +Sehr große Scans (z. B. 10 000 × 10 000 px) können das von uns festgelegte 1 GB‑GPU‑Limit immer noch überschreiten. In diesem Fall erhöhen Sie entweder `GpuMemoryLimit` (falls Sie freien VRAM haben) oder skalieren das Bild herunter, bevor Sie es an die Engine übergeben: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Mehrseitige Dokumente + +Wenn Ihr TIFF mehrere Seiten enthält, iterieren Sie darüber: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Sprach‑ und Schriftunterstützung + +Aspose OCR erkennt automatisch lateinbasierte Schriften, aber für Kyrillisch, Arabisch oder benutzerdefinierte Schriften müssen Sie möglicherweise ein Sprachpaket bereitstellen: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Pro‑Tipps & bewährte Vorgehensweisen + +- **Engine wiederverwenden**: Das Erstellen einer neuen `OcrEngine` pro Bild verursacht spürbare Latenz. +- **Stapelverarbeitung**: Beim Umgang mit Dutzenden von TIFFs diese in eine Warteschlange stellen und in parallelen Threads verarbeiten – achten Sie jedoch auf GPU‑Speicherkonflikte. +- **Ausgabe validieren**: OCR ist nicht perfekt; führen Sie eine einfache Rechtschreibprüfung oder Regex‑Validierung auf `ocrResult.Text` durch, um offensichtliche Fehlinterpretationen zu erkennen. +- **Leistung protokollieren**: Messen Sie die mit `Stopwatch` vergangene Zeit vor und nach `Recognize`, um zu entscheiden, ob GPU‑Beschleunigung den zusätzlichen Aufwand in Ihrer Umgebung wert ist. + +## Fazit + +Sie haben jetzt ein vollständiges End‑zu‑Ende‑Beispiel, das **Text aus Bild**‑Dateien mit Aspose OCR in C# extrahiert. Durch das Laden des Bildes für OCR, das Aufrufen der Engine zur Texterkennung aus TIFF und die Handhabung von GPU‑ versus CPU‑Szenarien bietet Ihnen dieses Tutorial eine produktionsreife Grundlage, die Sie an Rechnungen, Reisepässe oder beliebige gescannte Dokumente anpassen können. + +Was kommt als Nächstes? Versuchen Sie, das TIFF durch ein mehrseitiges PDF zu ersetzen, experimentieren Sie mit benutzerdefinierten Sprachpaketen oder leiten Sie die Ausgabe in eine Natural‑Language‑Processing‑Pipeline für automatisierte Datenerfassung weiter. Der Himmel ist die Grenze – 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/german/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..e01bb6ad7 --- /dev/null +++ b/ocr/german/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Extrahieren Sie Text aus TIFF‑Dateien mit Aspose OCR‑Batchverarbeitung + in C#. Erfahren Sie, wie Sie die Batch‑OCR effizient verarbeiten und Echtzeit‑Fortschritts‑Feedback + erhalten. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: de +og_description: Extrahieren Sie Text aus TIFF-Dateien mit der Aspose OCR‑Batchverarbeitung + in C#. Dieses Tutorial zeigt Schritt für Schritt, wie man Batch‑OCR verarbeitet + und den Fortschritt ausliest. +og_title: Text aus TIFF mit Batch-OCR in C# extrahieren – Komplettanleitung +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Text aus TIFF mit Batch-OCR in C# extrahieren – Komplettanleitung +url: /de/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus TIFF extrahieren – Komplettanleitung für Batch‑OCR + +Haben Sie schon einmal **Text aus TIFF**‑Dateien extrahieren müssen, aber beim Batch‑Verarbeiten festgesteckt? Sie sind nicht allein. In vielen Dokument‑Automatisierungsprojekten kann das Verarbeiten von Dutzenden hochauflösender TIF‑Bilder schnell zum Engpass werden – besonders wenn Sie ein Live‑Feedback zum Fortschritt benötigen. + +Die gute Nachricht? Mit Aspose OCR können Sie **Batch‑OCR** in wenigen Zeilen ausführen, Echtzeit‑Fortschritts‑Events erhalten und den erkannten Text für jedes Bild ausgeben. In diesem Tutorial führen wir Sie durch eine sofort lauffähige C#‑Konsolen‑App, die genau das tut. + +Wir decken alles ab, was Sie wissen müssen: erforderliche Pakete, warum jede Zeile wichtig ist, Sonderfälle wie fehlende Dateien und wie Sie die Ergebnisse prüfen. Am Ende können Sie das Beispiel in Ihre eigene Lösung einbinden und sofort Text aus TIFF‑Bildern extrahieren. + +## Was Sie benötigen + +- **.NET 6 oder höher** (der Code kompiliert auch mit .NET Core) +- **Aspose.OCR für .NET** NuGet‑Paket – `Install-Package Aspose.OCR` +- Ein Ordner mit ein paar **TIFF**‑Bildern, die Sie lesen wollen (das Demo verwendet `img1.tif`, `img2.tif`, `img3.tif`) +- Beliebige IDE – Visual Studio, Rider oder VS Code reichen aus + +Keine zusätzliche Konfiguration nötig; die Bibliothek liefert ihre eigene OCR‑Engine, sodass Sie keine externen nativen Binärdateien installieren müssen. + +--- + +## Schritt 1 – OCR‑Engine‑Instanz erstellen + +Das Erste, was Sie tun, ist eine `OcrEngine` zu starten. Denken Sie daran als das Gehirn, das jeden Pixel analysiert und in Zeichen umwandelt. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Warum das wichtig ist:** +> Die Engine hält interne Sprachmodelle und Einstellungen (z. B. DPI, Sprache). Sie einmal zu erstellen und für ein Batch wiederzuverwenden ist weitaus effizienter, als für jedes Bild eine neue Engine zu instanziieren. + +--- + +## Schritt 2 – Echtzeit‑Fortschritts‑Events anbinden + +Wenn Sie Dutzende TIFF‑Dateien verarbeiten, kann ein Fortschritts‑Indikator Sie davor bewahren, zu fragen, ob die Anwendung feststeckt. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Das `ProgressChanged`‑Event wird nach jedem fertig bearbeiteten Bild ausgelöst und liefert `Current`, `Total` und `Percentage`. Das ist die **process batch OCR**‑Rückmeldungsschleife, die viele Entwickler vergessen zu implementieren. + +--- + +## Schritt 3 – Liste von Bild‑Streams erstellen + +Aspose.OCR arbeitet mit `ImageStream`‑Objekten. Der einfachste Weg ist, jedes TIFF von der Festplatte zu laden. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tipp:** +> Wenn Sie einen dynamischen Ordner haben, ersetzen Sie die hartkodierte Liste durch `Directory.GetFiles(path, "*.tif")` und `Select(ImageStream.FromFile)` – so können Sie wirklich **process batch OCR** ohne manuelle Updates durchführen. + +--- + +## Schritt 4 – Batch‑OCR‑Prozess ausführen + +Jetzt passiert das eigentliche Schwergewicht. `ProcessBatch` gibt eine schreibgeschützte Liste von `OcrResult`‑Objekten zurück, die den extrahierten Text und Konfidenzwerte enthalten. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Warum das effizient ist:** +> Die Engine nutzt dasselbe Sprachmodell für alle Bilder, was den Speicherverbrauch im Vergleich zu Einzel‑Bild‑Aufrufen drastisch reduziert. + +--- + +## Schritt 5 – Erkannten Text anzeigen oder speichern + +Zum Schluss iterieren Sie über die Ergebnisse. In einem echten Projekt würden Sie sie vielleicht in eine Datenbank oder eine JSON‑Datei schreiben, für dieses Demo‑Beispiel geben wir sie einfach in der Konsole aus. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Erwartete Konsolenausgabe** (gekürzt zur Übersicht): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Falls ein Bild fehlschlägt, ist `result.Text` ein leerer String, und das `ProgressChanged`‑Event meldet das Element trotzdem als verarbeitet – sodass Sie Fehler separat protokollieren können. + +--- + +## Der Fortschritts‑Event‑Handler (vollständiger Code) + +Platzieren Sie diese Methode irgendwo innerhalb der `BatchDemo`‑Klasse – am besten nach `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro‑Tipp:** +> Leiten Sie diese Ausgabe an einen UI‑Fortschrittsbalken weiter, wenn Sie eine Desktop‑App bauen; das gleiche Event funktioniert für WinForms, WPF oder sogar ASP.NET Core SignalR‑Benachrichtigungen. + +--- + +## Vollständiges, sofort lauffähiges Beispiel + +Alles zusammengefügt, hier das komplette Programm, das Sie in ein neues Konsolen‑Projekt kopieren‑und‑einfügen können. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Speichern Sie die Datei als `Program.cs`, führen Sie `dotnet add package Aspose.OCR` aus, ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Pfad und drücken Sie **Ctrl+F5**. Sie sollten Fortschrittszahlen sehen, gefolgt vom extrahierten Text für jedes TIFF. + +--- + +## Umgang mit gängigen Sonderfällen + +| Situation | Worauf zu achten ist | Schnelllösung | +|-----------|----------------------|---------------| +| **Fehlendes oder beschädigtes TIFF** | `ImageStream.FromFile` wirft `FileNotFoundException` oder `ArgumentException`. | Die Listenerstellung in ein `try/catch` einbetten und ungültige Dateien überspringen, dabei das Problem protokollieren. | +| **Sehr große Bilder ( >10 MP )** | OCR kann viel RAM verbrauchen und verlangsamen. | DPI vor der Verarbeitung reduzieren: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Nicht‑englischer Text** | Standard‑Sprachmodell ist Englisch. | `ocrEngine.Language = Language.Spanish;` setzen (oder jede andere unterstützte Sprache). | +| **Ergebnisse speichern müssen** | Konsolenausgabe ist nicht persistent. | `result.Text` mit `File.WriteAllText` in eine `.txt`‑Datei schreiben. | + +Diese Szenarien zu berücksichtigen macht Ihre Lösung robust und zeigt, dass Sie über den Happy‑Path hinausgedacht haben. + +--- + +## Nächste Schritte & verwandte Themen + +- **Text aus PDF extrahieren** – ähnliche API, nur `ImageStream` durch `PdfDocument` ersetzen. +- **Paralleles Batch‑OCR** – für massive Workloads mehrere `OcrEngine`‑Instanzen in separaten Threads starten; Lizenzlimits beachten. +- **Nachbearbeitung** – OCR‑Ausgabe durch Rechtschreibprüfung oder Regex laufen lassen, um typische OCR‑Artefakte zu bereinigen. + +All diese Erweiterungen basieren weiterhin auf der Kernidee **process batch OCR** und können schrittweise hinzugefügt werden. + +--- + +## Fazit + +Wir haben gezeigt, wie man **Text aus TIFF**‑Dateien effizient durch **process batch OCR** mit Aspose OCR in C# extrahiert. Das Beispiel erstellt eine einzelne Engine, abonniert Fortschritts‑Events, lädt eine Liste von Bild‑Streams, führt das Batch aus und gibt jedes Ergebnis aus. + +Ab hier können Sie die Ausgabe in Datenbanken integrieren, durchsuchbare PDFs erzeugen oder den Text in nachgelagerte NLP‑Pipelines einspeisen. Der Himmel ist die Grenze – experimentieren Sie mit Spracheinstellungen, DPI‑Anpassungen und paralleler Ausführung, um Ihren spezifischen Workload zu optimieren. + +Haben Sie Fragen oder möchten teilen, wie Sie das Batch angepasst haben? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/german/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..841608faf --- /dev/null +++ b/ocr/german/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Lernen Sie, wie Sie Text aus PNG erkennen und Text aus einem Bild in + C# mit Aspose OCR extrahieren. Enthält Schritte zum Laden einer Bilddatei in C#, + Rechtschreibprüfung und den vollständigen Code. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: de +og_description: Erkennen Sie Text aus PNG einfach mit C#. Folgen Sie dieser Schritt‑für‑Schritt‑Anleitung, + um eine Bilddatei in C# zu laden, Text aus dem Bild in C# zu extrahieren und eine + Rechtschreibprüfung durchzuführen. +og_title: Texterkennung aus PNG in C# – Vollständiges OCR‑Tutorial +tags: +- OCR +- C# +- Aspose +title: Texterkennung aus PNG in C# – Vollständiger OCR‑ und Rechtschreibprüfungsleitfaden +url: /de/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus PNG erkennen – Vollständiges C# OCR‑ und Rechtschreib‑Tutorial + +Haben Sie jemals **Text aus PNG**‑Dateien erkennen müssen, waren sich aber nicht sicher, welche Bibliothek Sie wählen sollten? Sie sind nicht allein; viele Entwickler stoßen an diese Hürde, wenn sie zum ersten Mal die extraktion bildbasierter Daten angehen. Die gute Nachricht? Mit Aspose OCR können Sie eine Bilddatei in C# laden, den Text extrahieren und sogar einen integrierten Rechtschreibprüfer ausführen – alles in wenigen Zeilen. + +In diesem Leitfaden gehen wir den gesamten Prozess durch: Laden des PNG, Aufruf der OCR‑Engine und schließlich das Prüfen auf falsch geschriebene Wörter. Am Ende können Sie **Text aus Bild C#**‑Projekten extrahieren, ohne durch verstreute Dokumentationen zu suchen. Vorkenntnisse in OCR sind nicht erforderlich, nur eine .NET‑Entwicklungsumgebung. + +## Was Sie benötigen + +- **.NET 6.0** (oder jede aktuelle .NET‑Version) – die API funktioniert identisch unter .NET Core und Framework. +- **Aspose.OCR for .NET** NuGet‑Paket – installieren Sie es via `dotnet add package Aspose.OCR`. +- Ein **PNG‑Bild**, das lesbaren Text enthält (z. B. `letter.png` in einem von Ihnen kontrollierten Ordner). +- Ein Code‑Editor oder eine IDE (Visual Studio, VS Code, Rider – wählen Sie, was Ihnen gefällt). + +Das war’s. Keine zusätzlichen OCR‑Engines, keine nativen DLLs, nur ein sauberes Managed‑Paket. + +--- + +## Schritt 1: Das PNG‑Bild in C# laden + +Bevor die OCR‑Engine etwas tun kann, benötigt sie einen Stream, der auf das Bild zeigt. Aspose stellt `ImageStream.FromFile` bereit, das die Dateisystemdetails abstrahiert. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro‑Tipp:** Wenn Ihr Bild als Ressource eingebettet ist oder aus einer Web‑Anfrage kommt, können Sie stattdessen `ImageStream.FromBytes(byte[])` verwenden – ohne das Dateisystem zu berühren. + +### Warum das Laden wichtig ist + +Das Bild korrekt zu laden stellt sicher, dass die OCR‑Engine die exakt erwarteten Pixeldaten erhält. Ein beschädigter Stream führt dazu, dass `Recognize` eine Ausnahme wirft, und Sie verschwenden später Zeit mit Debugging. + +--- + +## Schritt 2: Die OCR‑Engine initialisieren + +Ein `OcrEngine`‑Objekt zu erstellen ist kostengünstig, aber Sie möchten möglicherweise Sprache‑ oder Genauigkeitseinstellungen für spezielle Anwendungsfälle anpassen (z. B. mehrsprachige Dokumente). Der Standard‑Konstruktor funktioniert gut für englischen Text. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Warum eine Engine‑Instanz? + +Die Engine hält Konfigurationen (Sprache, Vorverarbeitungsfilter usw.). Durch die Trennung von Konfiguration und Bild können Sie dieselbe Engine für viele Dateien wiederverwenden – ideal für die Stapelverarbeitung. + +--- + +## Schritt 3: Text aus dem PNG erkennen + +Jetzt passiert die Magie. `Recognize` gibt ein `OcrResult`‑Objekt zurück, das den Roh‑String, Konfidenzwerte und mehr enthält. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Erwartete Ausgabe** (angenommen, `letter.png` sagt „Hello World!“): + +``` +=== OCR Output === +Hello World! +``` + +Enthält das Bild mehrere Zeilen, bewahrt das Ergebnis Zeilenumbrüche, was die nachgelagerte Verarbeitung vereinfacht. + +### Sonderfall: PNGs mit niedriger Auflösung + +Wenn das OCR‑Ergebnis unleserlich aussieht, sollten Sie das Bild hochskalieren oder `ocrEngine.PreprocessingOptions` anpassen. Bilder mit niedriger DPI verlieren oft Details, die die Engine benötigt. + +--- + +## Schritt 4: Den integrierten Rechtschreibprüfer ausführen + +Aspose OCR liefert ein leichtgewichtiges Rechtschreib‑Modul, das direkt auf dem OCR‑Ergebnis arbeitet. Dieser Schritt hilft, Fehlinterpretationen wie „H3llo“ anstelle von „Hello“ zu erkennen. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Beispielausgabe** (wenn das OCR „World“ als „W0rld“ gelesen hat): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Warum Rechtschreibprüfung? + +OCR ist nie zu 100 % perfekt, besonders bei verrauschten Hintergründen. Eine schnelle Rechtschreibprüfung kann offensichtliche Fehler herausfiltern, bevor Sie den Text in nachgelagerte Analysen oder Datenbanken einspeisen. + +--- + +## Schritt 5: Alles zusammenführen – vollständiges funktionierendes Beispiel + +Unten finden Sie das komplette, sofort ausführbare Programm. Kopieren Sie es in ein neues Konsolenprojekt, passen Sie den Bildpfad an und drücken Sie **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Beim Ausführen der Demo** wird der OCR‑Text gefolgt von eventuellen Rechtschlagvorschlägen ausgegeben. Es funktioniert mit jedem PNG, das klaren, gedruckten englischen Text enthält. Für andere Sprachen setzen Sie einfach `ocrEngine.Language` entsprechend. + +--- + +## Häufige Fragen & Stolperfallen + +| Frage | Antwort | +|----------|--------| +| *Kann ich JPEG‑ oder BMP‑Dateien verarbeiten?* | Absolut – `ImageStream.FromFile` akzeptiert jedes von Aspose unterstützte Format (PNG, JPEG, BMP, TIFF). | +| *Was, wenn das Bild in einem Memory‑Stream vorliegt?* | Verwenden Sie `ImageStream.FromBytes(byteArray)` oder `ImageStream.FromStream(stream)`. | +| *Ist der Rechtschreibprüfer sprachbewusst?* | Ja, er berücksichtigt die in der OCR‑Engine eingestellte Sprache. | +| *Wie verbessere ich die Genauigkeit bei schiefen Bildern?* | Aktivieren Sie `ocrEngine.PreprocessingOptions.Deskew = true;` bevor Sie `Recognize` aufrufen. | +| *Benötige ich eine Lizenz für Aspose.OCR?* | Eine kostenlose Testversion funktioniert für bis zu 100 Seiten. Für den Produktionseinsatz benötigen Sie eine Lizenz, um Wasserzeichen zu entfernen. | + +--- + +## Nächste Schritte – über das Basis‑OCR hinaus + +Jetzt, da Sie **Text aus PNG** erkennen und **Text aus Bild C#** extrahieren können, denken Sie an folgende Erweiterungen: + +1. **Stapelverarbeitung** – Durchlaufen Sie ein Verzeichnis von PNGs und schreiben Sie jedes OCR‑Ergebnis in eine separate `.txt`‑Datei. +2. **Integration mit Azure Cognitive Services** – Kombinieren Sie Aspose OCR mit cloud‑basierten Übersetzungs‑APIs für mehrsprachige Pipelines. +3. **Strukturierte Datenerfassung** – Nutzen Sie reguläre Ausdrücke auf `recognizedText`, um Daten wie Termine, Rechnungsnummern oder Adressen zu extrahieren. +4. **Performance‑Optimierung** – Bei großen Mengen wiederverwenden Sie eine einzige `OcrEngine`‑Instanz und aktivieren Sie Multithreading. + +Jede dieser Optionen baut auf den Kernschritten auf, die wir behandelt haben, und ermöglicht es Ihnen, ein einfaches Bild in nutzbare Daten zu verwandeln. + +--- + +## Fazit + +Wir haben ein vollständiges End‑zu‑End‑Beispiel durchgearbeitet, das zeigt, wie man **Text aus PNG** in C# **Bilddatei C#** korrekt lädt und anschließend **Text aus Bild C#** extrahiert, während Rechtschreibfehler abgefangen werden. Der Code ist eigenständig, die Erklärungen decken sowohl das „Wie“ als auch das „Warum“ ab, und Sie verfügen nun über ein solides Fundament für jede OCR‑basierte Funktion, die Sie benötigen. + +Probieren Sie es aus, passen Sie die Vorverarbeitungsoptionen an und sehen Sie, wie sauber Ihr extrahierter Text werden kann. Wenn Sie auf Probleme stoßen, hinterlassen Sie einen Kommentar unten – 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-configuration/_index.md b/ocr/greek/net/ocr-configuration/_index.md index 3c21d17fc..ba47f6842 100644 --- a/ocr/greek/net/ocr-configuration/_index.md +++ b/ocr/greek/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ weight: 24 Αποκτήστε ισχυρές δυνατότητες OCR με το Aspose.OCR για .NET. Εξάγετε κείμενο από εικόνες απρόσκοπτα. ### [OCROperation με Λίστα σε Αναγνώριση Εικόνας OCR](./ocr-operation-with-list/) Αποκτήστε το δυναμικό του Aspose.OCR για .NET. Εκτελέστε αναγνώριση εικόνων OCR με λίστες εύκολα. Αυξήστε την παραγωγικότητα και την εξαγωγή δεδομένων στις εφαρμογές σας. +### [Πώς να απενεργοποιήσετε το OCR σε C# – Offline οδηγός Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Μάθετε πώς να απενεργοποιήσετε το OCR σε εφαρμογές C# χωρίς σύνδεση, χρησιμοποιώντας το Aspose OCR. ### Κοινές Περιπτώσεις Χρήσης - **Εξαγωγή κειμένου από εικόνες** σε σαρωμένα τιμολόγια για αυτοματοποιημένη λογιστική. @@ -100,4 +102,4 @@ A: Ναι, το αντικείμενο `OcrResult` παρέχει τιμές ε {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/greek/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..1a250b259 --- /dev/null +++ b/ocr/greek/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Μάθετε πώς να απενεργοποιήσετε το OCR στο Aspose OCR για C# ώστε να λειτουργεί + εκτός σύνδεσης, να εξάγετε κείμενο από εικόνα χωρίς internet και να φορτώνετε σωστά + την εικόνα για OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: el +og_description: Πώς να απενεργοποιήσετε το OCR στο Aspose OCR για C# και να το εκτελέσετε + εκτός σύνδεσης, να εξάγετε κείμενο από εικόνα χωρίς ανάγκη για internet και να φορτώνετε + την εικόνα για OCR εύκολα. +og_title: Πώς να απενεργοποιήσετε το OCR σε C# – Οδηγός Aspose OCR εκτός σύνδεσης +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Πώς να απενεργοποιήσετε το OCR σε C# – Οδηγός Offline Aspose OCR +url: /el/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Απενεργοποιήσετε το OCR σε C# – Οδηγός Offline Aspose OCR + +Σας έχει αναρωτηθεί ποτέ **πώς να απενεργοποιήσετε το OCR** όταν χρειάζεστε μια πραγματικά offline λύση; Ίσως δημιουργείτε μια ασφαλή εφαρμογή desktop που δεν μπορεί να βασίζεται σε σύνδεση δικτύου, ή απλώς θέλετε να αποφύγετε ανεπιθύμητες λήψεις. Σε κάθε περίπτωση, το καλό νέο είναι ότι το Aspose OCR σας επιτρέπει να κλείσετε την αυτόματη λήψη πόρων, να το κατευθύνετε σε τοπικό φάκελο και να διατηρήσετε τα πάντα on‑premises. Σε αυτό το tutorial θα δείτε επίσης πώς να **εξάγετε κείμενο από εικόνα** και πώς να **φορτώσετε εικόνα για OCR** χωρίς προβλήματα. + +Θα περάσουμε από ένα πλήρες, έτοιμο‑για‑εκτέλεση παράδειγμα που δείχνει κάθε βήμα — από την αρχικοποίηση της μηχανής μέχρι την εκτύπωση του αναγνωρισμένου ιαπωνικού κειμένου. Χωρίς εξωτερικά έγγραφα, χωρίς κρυφή μαγεία· μόνο καθαρός κώδικας C# που μπορείτε να ενσωματώσετε στο πρότζεκτ σας σήμερα. Στο τέλος θα καταλάβετε γιατί η απενεργοποίηση της λειτουργίας αυτόματης λήψης είναι σημαντική, πώς να ορίσετε τη διαδρομή των πόρων και σε ποιες παγίδες πρέπει να προσέχετε. + +## Προαπαιτούμενα + +- .NET 6.0 (ή οποιαδήποτε πρόσφατη έκδοση .NET) εγκατεστημένο στο σύστημά σας. +- Πακέτο NuGet Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Ένας φάκελος που περιέχει ήδη τους γλωσσικούς πόρους που χρειάζεστε (π.χ. το ιαπωνικό μοντέλο). +- Ένα αρχείο εικόνας (`japan_doc.png`) στο οποίο θέλετε να εκτελέσετε OCR. + +Αν λείπουν τα language packs, κατεβάστε τα από το portal του Aspose μία φορά, αποσυμπιέστε τα σε φάκελο όπως `AsposeOCRResources` και είστε έτοιμοι. Δεν θα γίνουν περαιτέρω λήψεις μόλις απενεργοποιήσετε τη λειτουργία αυτόματης λήψης. + +![Πώς να απενεργοποιήσετε το OCR offline](/images/how-to-disable-ocr.png "εικόνα που δείχνει πώς να απενεργοποιήσετε το OCR") + +## Βήμα 1 – Δημιουργία Αντικειμένου OCR Engine + +Το πρώτο που κάνετε είναι να δημιουργήσετε ένα αντικείμενο `OcrEngine`. Σκεφτείτε αυτό το αντικείμενο ως τον εγκέφαλο που θα διαβάσει την εικόνα σας. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Γιατί είναι σημαντικό:** Χωρίς μηχανή δεν μπορείτε να ρυθμίσετε τίποτα. Το αντικείμενο κρατά όλες τις ρυθμίσεις, συμπεριλαμβανομένης της κρίσιμης σημαίας που λέει στη βιβλιοθήκη αν μπορεί να συνδεθεί στο διαδίκτυο. + +## Βήμα 2 – Απενεργοποίηση Αυτόματης Λήψης Πόρων + +Από προεπιλογή το Aspose OCR προσπαθεί να κατεβάσει τα ελλιπή αρχεία γλώσσας σε πραγματικό χρόνο. Για να διατηρήσετε τα πάντα offline, θέστε το `AutoDownloadResources` σε `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro tip:** Η απενεργοποίηση όχι μόνο εγγυάται την ιδιωτικότητα, αλλά και επιταχύνει την πρώτη εκτέλεση αναγνώρισης, επειδή η μηχανή δεν χάνει χρόνο ελέγχοντας για ενημερώσεις. + +## Βήμα 3 – Ορισμός Τοπικού Φακέλου Πόρων + +Τώρα υποδείξτε στη μηχανή πού βρίσκονται τα προ‑κατεβασμένα language packs. Αυτή είναι η διαδρομή που δημιουργήσατε στα προαπαιτούμενα. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Τι μπορεί να πάει στραβά;** Αν η διαδρομή είναι λανθασμένη ή λείπει το απαιτούμενο αρχείο γλώσσας, η μηχανή θα πετάξει `ResourceNotFoundException`. Ελέγξτε προσεκτικά το όνομα του φακέλου και ότι το ιαπωνικό μοντέλο (`jpn.traineddata`) υπάρχει. + +## Βήμα 4 – Επιλογή Τοπικού Μοντέλου Γλώσσας + +Επιλέξτε τη γλώσσα που έχετε στην τοπική σας δίσκο. Στο παράδειγμά μας χρησιμοποιούμε Ιαπωνικά, αλλά μπορείτε να αντικαταστήσετε το `Language.Japanese` με οποιαδήποτε άλλη γλώσσα έχετε κατεβάσει. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Edge case:** Ορισμένες γλώσσες απαιτούν επιπλέον λεξικά (π.χ. Κινέζικα). Βεβαιωθείτε ότι αυτά τα βοηθητικά αρχεία βρίσκονται επίσης στον ίδιο φάκελο πόρων. + +## Βήμα 5 – Φόρτωση Εικόνας για OCR + +Εδώ **φορτώνουμε εικόνα για OCR**. Η μέθοδος `ImageStream.FromFile` διαβάζει το αρχείο σε ροή που μπορεί να επεξεργαστεί το Aspose. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Συμβουλή:** Υποστηριζόμενες μορφές περιλαμβάνουν PNG, JPEG, BMP και TIFF. Αν χρειάζεται να επεξεργαστείτε PDFs, μετατρέψτε κάθε σελίδα σε εικόνα πρώτα. + +## Βήμα 6 – Εκτέλεση Διαδικασίας Αναγνώρισης + +Τώρα η μηχανή διαβάζει πραγματικά τα pixel και προσπαθεί να τα μετατρέψει σε κείμενο. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Γιατί αυτό το βήμα μπορεί να είναι αργό:** Το OCR είναι εντατικό σε CPU, ειδικά για εικόνες υψηλής ανάλυσης. Αν η απόδοση είναι κρίσιμη, σκεφτείτε να μειώσετε την ανάλυση της εικόνας πριν την αναγνώριση. + +## Βήμα 7 – Εξαγωγή και Εκτύπωση του Κειμένου + +Τέλος, **εξάγουμε κείμενο από εικόνα** και το εκτυπώνουμε στην κονσόλα. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Η εκτέλεση του προγράμματος θα πρέπει να εμφανίσει τους ιαπωνικούς χαρακτήρες που υπήρχαν στο `japan_doc.png`. Αν όλα είναι ρυθμισμένα σωστά, θα δείτε ένα καθαρό μπλοκ Unicode κειμένου στην κονσόλα σας. + +### Αναμενόμενη Έξοδος + +``` +これはサンプルの日本語テキストです。 +``` + +(Η πραγματική έξοδος θα εξαρτηθεί από το περιεχόμενο της εικόνας.) + +## Συχνές Παγίδες & Πώς να τις Αποφύγετε + +| Πρόβλημα | Γιατί Συμβαίνει | Λύση | +|----------|----------------|------| +| **Λείπει το αρχείο γλώσσας** | Το `AutoDownloadResources` είναι false, οπότε η μηχανή δεν μπορεί να το κατεβάσει. | Επαληθεύστε ότι το `ResourcesPath` δείχνει στον φάκελο που περιέχει το `jpn.traineddata`. | +| **Λάθος διαδρομή εικόνας** | Η `ImageStream.FromFile` πετάει `FileNotFoundException`. | Χρησιμοποιήστε απόλυτες διαδρομές ή βεβαιωθείτε ότι το working directory είναι σωστό. | +| **Μη υποστηριζόμενη μορφή εικόνας** | Το Aspose διαβάζει μόνο ορισμένες μορφές. | Μετατρέψτε την εικόνα σας σε PNG ή JPEG πριν καλέσετε `FromFile`. | +| **Έλλειψη μνήμης σε μεγάλες εικόνες** | Το OCR φορτώνει ολόκληρη την εικόνα στη μνήμη. | Αλλάξτε το μέγεθος ή χωρίστε την εικόνα σε τμήματα, ή αυξήστε το όριο μνήμης της διεργασίας. | + +## Επέκταση του Παραδείγματος + +- **Επεξεργασία παρτίδας:** Κάντε βρόχο σε έναν φάκελο εικόνων, καλέστε τον ίδιο κώδικα αναγνώρισης και γράψτε κάθε αποτέλεσμα σε ξεχωριστό αρχείο `.txt`. +- **Διάφορες γλώσσες:** Αντικαταστήστε το `Language.Japanese` με `Language.English` (ή οποιαδήποτε άλλη) αφού τοποθετήσετε τα αντίστοιχα αρχεία πόρων. +- **Προσαρμοσμένη προεπεξεργασία:** Χρησιμοποιήστε το Aspose.Imaging για διόρθωση κλίσης ή βελτίωση αντίθεσης πριν το OCR για μεγαλύτερη ακρίβεια. + +## Συμπέρασμα + +Τώρα ξέρετε **πώς να απενεργοποιήσετε το OCR** στο Aspose OCR για C# και να το τρέξετε εντελώς offline. Ορίζοντας το `AutoDownloadResources` σε `false`, δείχνοντας στη μηχανή έναν τοπικό φάκελο πόρων και **φορτώνοντας εικόνα για OCR** σωστά, μπορείτε αξιόπιστα **να εξάγετε κείμενο από εικόνα** χωρίς καμία σύνδεση στο διαδίκτυο. Αυτή η προσέγγιση είναι ιδανική για ασφαλή περιβάλλοντα, CI pipelines ή οποιοδήποτε σενάριο με περιορισμένη πρόσβαση δικτύου. + +Έτοιμοι για το επόμενο βήμα; Δοκιμάστε να επεξεργαστείτε ολόκληρο φάκελο σκαναρισμένων PDF, πειραματιστείτε με διαφορετικά language packs, ή ενσωματώστε το αποτέλεσμα OCR σε μια αναζητήσιμη βάση δεδομένων. Η offline ρύθμιση που δημιουργήσατε σήμερα αποτελεί ισχυρό θεμέλιο για οποιαδήποτε on‑premises ροή επεξεργασίας εγγράφων. + +Καλό 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/_index.md b/ocr/greek/net/ocr-optimization/_index.md index afd528c89..606bece57 100644 --- a/ocr/greek/net/ocr-optimization/_index.md +++ b/ocr/greek/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ weight: 25 Αυξήστε την ακρίβεια OCR με Aspose.OCR for .NET. Διορθώστε ορθογραφικά λάθη, προσαρμόστε λεξικά και επιτύχετε αναγνώριση κειμένου χωρίς σφάλματα με ευκολία. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Αποκτήστε το πλήρες δυναμικό του Aspose.OCR for .NET. Αποθηκεύστε άνετα πολυσέλιδα αποτελέσματα OCR ως έγγραφα με αυτόν τον ολοκληρωμένο βήμα‑βήμα οδηγό. +### [Πώς να βελτιώσετε την ακρίβεια OCR σε C# με το Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Μάθετε τεχνικές βελτιστοποίησης OCR σε C# χρησιμοποιώντας το Aspose OCR για υψηλότερη ακρίβεια αναγνώρισης. ## Συχνές Ερωτήσεις diff --git a/ocr/greek/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/greek/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..21cfb6de2 --- /dev/null +++ b/ocr/greek/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-11 +description: Μάθετε πώς να βελτιώσετε το OCR σε C# αναγνωρίζοντας κείμενο από αρχεία + JPG, διορθώνοντας την κλίση των εικόνων και αφαιρώντας τον θόρυβο χρησιμοποιώντας + το Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: el +og_description: Ανακαλύψτε πώς να βελτιώσετε το OCR αναγνωρίζοντας κείμενο από JPG, + διορθώνοντας την κλίση των εικόνων και αφαιρώντας τον θόρυβο—πλήρης οδηγός C#. +og_title: Πώς να βελτιώσετε την ακρίβεια OCR σε C# με το Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Πώς να βελτιώσετε την ακρίβεια OCR σε C# με το Aspose OCR +url: /el/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να βελτιώσετε την ακρίβεια OCR σε C# με το Aspose OCR + +Έχετε αναρωτηθεί ποτέ **πώς να βελτιώσετε το OCR** όταν οι σαρώσεις σας μοιάζουν περισσότερο με αφηρημένη τέχνη παρά με αναγνώσιμο κείμενο; Δεν είστε οι μόνοι. Σε πολλά πραγματικά έργα—π.χ. τιμολόγια, αποδείξεις ή χειρόγραφες σημειώσεις—οι εικόνες προέρχονται συχνά κεκλιμένες, σπόρια ή απλώς θορυβώδεις. Τα καλά νέα; Το Aspose OCR σας προσφέρει μια σειρά από ρυθμίσεις προεπεξεργασίας που μπορούν να μετατρέψουν αυτό το χάος σε καθαρούς, μηχανικά αναγνώσιμους χαρακτήρες. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από ένα πλήρες, εκτελέσιμο παράδειγμα που δείχνει **πώς να βελτιώσετε το OCR** με **αναγνώριση κειμένου από JPG**, διόρθωση κλίσης της εικόνας και αφαίρεση ανεπιθύμητου θορύβου. + +> *Συμβουλή:* Αν παραλείψετε την προεπεξεργασία, πιθανότατα θα καταλήξετε με ακατάληπτο αποτέλεσμα που μοιάζει με κρυπτογραφικό σταυρόλεξο. Ας το αποφύγουμε. + +![Πώς να βελτιώσετε το OCR με την προεπεξεργασία του Aspose OCR](https://example.com/ocr-preprocess.png "πώς να βελτιώσετε το OCR με την προεπεξεργασία του Aspose OCR") + +## Τι θα μάθετε + +Στις επόμενες λίγες λεπτά θα δείτε: + +1. Πώς να ρυθμίσετε τη μηχανή Aspose OCR για βέλτιστη ακρίβεια. +2. Τον ακριβή κώδικα που απαιτείται για **αναγνώριση κειμένου από JPG** αρχεία. +3. Γιατί η ενεργοποίηση του *AutoDeskew* και του *RemoveNoise* είναι σημαντική και πώς να τα ρυθμίσετε. +4. Πώς να **εξάγετε κείμενο από εικόνα** χωρίς να γράψετε προσαρμοσμένο φίλτρο. +5. Συνηθισμένα εμπόδια (απουσία αρχείου, μη υποστηριζόμενη μορφή) και γρήγορες λύσεις. + +Στο τέλος θα έχετε μια απλή εφαρμογή C# console που μπορεί να πάρει οποιοδήποτε JPG, να το καθαρίσει και να εμφανίσει το εξαγόμενο κείμενο—έτοιμο για περαιτέρω επεξεργασία ή αποθήκευση. + +## Προαπαιτούμενα + +- .NET 6.0 SDK ή νεότερο (το παράδειγμα χρησιμοποιεί top‑level statements για συντομία). +- Πακέτο NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Ένα δείγμα εικόνας JPG (ονομασμένο `input.jpg`) τοποθετημένο στον ίδιο φάκελο με το εκτελέσιμο. +- Βασική εξοικείωση με τη γλώσσα C#—δεν απαιτούνται προχωρημένες έννοιες. + +Αν έχετε ήδη ένα project, απλώς προσθέστε τον κώδικα· διαφορετικά δημιουργήστε μια νέα console εφαρμογή: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Τώρα ας βουτήξουμε στον κώδικα. + +## Πώς να βελτιώσετε το OCR: Επισκόπηση Ρυθμίσεων Προεπεξεργασίας + +Η καρδιά του **πώς να βελτιώσετε το OCR** βρίσκεται στο αντικείμενο `PreprocessSettings`. Σκεφτείτε το ως έναν μικρό επεξεργαστή εικόνας που εκτελείται *πριν* ενεργοποιηθεί η μηχανή αναγνώρισης χαρακτήρων. Παρακάτω μια σύντομη περιγραφή των πιο σημαντικών σημαιών: + +| Ρύθμιση | Τι κάνει | Τυπική περίπτωση χρήσης | +|------------------------|---------------------------------------------------------|--------------------------| +| `AutoDeskew` | Εφαρμόζει αλγόριθμο βαθιάς μάθησης για διόρθωση κλίσης. | Σελίδες που είναι ελαφρώς κεκλιμένες. | +| `AdaptiveThreshold` | Αυξάνει την αντίθεση σε εικόνες χαμηλού φωτισμού ή ξεθωριασμένες. | Παλαιές αποδείξεις με ξεθωριασμένο μελάνι. | +| `RemoveNoise` | Εφαρμόζει φίλτρο Gaussian‑blur για εξάλειψη σπόρων. | Φωτογραφίες που τραβήχτηκαν με φλας του smartphone. | +| `NoiseRemovalStrength`| Ρυθμίζει την επιθετικότητα (1 = χαμηλή, 3 = υψηλή). | Προσαρμόστε ανάλογα με το πόσο σποριαρή είναι η πηγή. | + +Η ενεργοποίηση αυτών των επιλογών αποτελεί ουσιαστικά τη “μυστική σάλτσα” για **πώς να βελτιώσετε το OCR** σε ατελείς εισόδους. + +## Αναγνώριση κειμένου από JPG με Aspose OCR + +Ακολουθεί το πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα. Κάθε γραμμή είναι σχολιασμένη ώστε να καταλάβετε *γιατί* υπάρχει, όχι μόνο *τι* κάνει. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Αναμενόμενο Αποτέλεσμα + +Αν το `input.jpg` περιέχει τη φράση “Invoice #12345 – Total: $256.78”, η κονσόλα θα εμφανίσει: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Παρατηρήστε πόσο καθαρό είναι το αποτέλεσμα, με το παύλο και το σύμβολο δολαρίου να διατηρούνται—ακριβώς αυτό που περιμένετε όταν **εξάγετε κείμενο από εικόνα**. + +## Πώς να διορθώσετε την κλίση της εικόνας με τις Ρυθμίσεις Προεπεξεργασίας + +Γιατί η διόρθωση κλίσης είναι σημαντική; Ακόμη και μια κλίση 2 μοιρών μπορεί να μπερδέσει το στάδιο διαχωρισμού χαρακτήρων, οδηγώντας σε λανθασμένα γράμματα. Η σημαία `AutoDeskew` τρέχει ένα convolutional neural network στο παρασκήνιο που εντοπίζει τη κυρίαρχη γωνία και περιστρέφει την εικόνα πίσω στη βάση. + +Αν χρειάζεστε μεγαλύτερο έλεγχο, μπορείτε να ορίσετε τη γωνία χειροκίνητα: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Πότε να χρησιμοποιήσετε χειροκίνητη διόρθωση κλίσης:** Αν γνωρίζετε ότι η κάμερα κλίνει πάντα τις εικόνες κατά ένα σταθερό ποσό (π.χ. ένας ενσωματωμένος σαρωτής), η σκληρή κωδικοποίηση της γωνίας εξοικονομεί λίγο χρόνο επεξεργασίας. + +## Πώς να αφαιρέσετε τον θόρυβο για πιο καθαρή εξαγωγή + +Ο θόρυβος εμφανίζεται ως τυχαίοι σπόροι ή κόκκος, ειδικά σε φωτογραφίες χαμηλού φωτισμού. Η σημαία `RemoveNoise` εφαρμόζει ένα bilateral φίλτρο που εξομαλύνει το φόντο διατηρώντας τις άκρες (τους πραγματικούς χαρακτήρες). Η ιδιότητα `NoiseRemovalStrength` σας επιτρέπει να ρυθμίσετε την επιθετικότητα: + +| Ισχύς | Επίδραση | +|------|----------| +| 1 | Ελαφριά εξομάλυνση—καλή για ελαφρώς σποριακές εικόνες. | +| 2 | Ισορροπημένη—λειτουργεί για τις περισσότερες λήψεις smartphone. | +| 3 | Βαρύς καθαρισμός—χρησιμοποιήστε όταν η εικόνα είναι εξαιρετικά θορυβώδης, αλλά προσέξτε το θόλωμα των λεπτών γραμμών. | + +Αν αντιμετωπίσετε κατάσταση όπου μικρές γραμματοσειρές γίνονται αδιάβαστες μετά από έντονη εξομάλυνση, απλώς μειώστε την ισχύ ή απενεργοποιήστε εντελώς το φίλτρο. + +## Εξαγωγή κειμένου από εικόνα: Πέρα από το JPG + +Αν και η επίδειξή μας εστιάζει σε JPG, το Aspose OCR υποστηρίζει PNG, BMP, TIFF και ακόμη και σελίδες PDF. Για **εξαγωγή κειμένου από εικόνα** σε μορφές εκτός JPG, απλώς αλλάξτε την επέκταση αρχείου στο `ImageStream.FromFile`. Για πολυ‑σελίδες TIFF μπορείτε να επαναλάβετε τη διαδικασία για κάθε σελίδα: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Αυτό το απόσπασμα δείχνει πώς μπορείτε να κλιμακώσετε το ίδιο **πώς να βελτιώσετε το OCR** workflow για μαζική επεξεργασία ενός συνόλου σαρωμένων εγγράφων. + +## Συνηθισμένα προβλήματα & Πώς να τα διορθώσετε + +| Συμπτωμα | Πιθανή Αιτία | Γρήγορη Λύση | +|------------------------|--------------------------------------------------------|--------------| +| Κενό αποτέλεσμα | Η εικόνα γίνεται εντελώς λευκή μετά την προεπεξεργασία (υπερβολικό threshold) | Μειώστε το `NoiseRemovalStrength` ή θέστε `AdaptiveThreshold = false`. | +| Ακατανόητοι χαρακτήρες | Λάθος μοντέλο γλώσσας (προεπιλογή είναι Αγγλικά) | Ορίστε `ocrEngine.Settings.Language = Language.English;` ή φορτώστε προσαρμοσμένο language pack. | +| Κατάρρευση σε μεγάλα αρχεία | Έλλειψη μνήμης λόγω υψηλής ανάλυσης εικόνας | Μειώστε την ανάλυση με `ocrEngine.Settings.ImageResizeFactor = 0.5;` πριν την αναγνώριση. | +| Καμία έξοδος για περιστροφές | `AutoDeskew` απενεργοποιήθηκε κατά λάθος | Ενεργοποιήστε `AutoDeskew = true` ή ορίστε σωστή τιμή στο `DeskewAngle`. | + +Η γνώση αυτών των σημείων θα σας εξοικονομήσει ώρες debugging όταν προσπαθείτε να **πώς να βελτιώσετε το OCR** σε παραγωγικές γραμμές. + +## Μπόνους: Ρύθμιση για Ταχύτητα vs. Ακρίβεια + +Αν επεξεργάζεστε χιλιάδες αποδείξεις την ημέρα, ίσως προτιμάτε την ταχύτητα. Απενεργοποιήστε το `AdaptiveThreshold` και θέστε `NoiseRemovalStrength = 1`. Αντίθετα, για νομικά έγγραφα όπου ένα χαμένο χαρακτήρα μπορεί να κοστίσει, κρατήστε όλες τις σημαίες ενεργές και σκεφτείτε να αυξήσετε το `NoiseRemovalStrength` στο 3. + +## Συμπέρασμα + +Καλύψαμε ολόκληρη τη διαδικασία **πώς να βελτιώσετε το OCR** σε C# χρησιμοποιώντας το Aspose OCR: από τη δημιουργία της μηχανής, τη ρύθμιση της προεπεξεργασίας (το θεμέλιο του *πώς να διορθώσετε την κλίση της εικόνας* και του *πώς να αφαιρέσετε τον θόρυβο*), τη φόρτωση ενός JPG, την αναγνώριση κειμένου και τη διαχείριση ειδικών περιπτώσεων. Ο κώδικας είναι αυτόνομος, εκτελείται αμέσως και δείχνει τα ακριβή βήματα που χρειάζεστε για **αναγνώριση κειμένου από jpg** και **εξαγωγή κειμένου από εικόνα**. + +### Τι ακολουθεί; + +- Πειραματιστείτε με άλλες μορφές εικόνας (PNG, TIFF) για να δείτε πώς συμπεριφέρονται οι ίδιες ρυθμίσεις. +- Ενσωματώστε το αποτέλεσμα 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/_index.md b/ocr/greek/net/text-recognition/_index.md index 7c0b04e8c..547d46738 100644 --- a/ocr/greek/net/text-recognition/_index.md +++ b/ocr/greek/net/text-recognition/_index.md @@ -55,9 +55,20 @@ url: /el/net/text-recognition/ Ξεκλειδώστε τις δυνατότητες του OCR στο .NET με το Aspose.OCR. Εξαγωγή κειμένου από αρχεία PDF χωρίς κόπο. Κάντε λήψη τώρα για μια απρόσκοπτη εμπειρία ενσωμάτωσης. ### [Αναγνώριση πίνακα στην Αναγνώριση εικόνας OCR](./recognize-table/) Ξεκλειδώστε τις δυνατότητες του Aspose.OCR για .NET με τον ολοκληρωμένο οδηγό μας για την αναγνώριση πινάκων στην αναγνώριση εικόνας OCR. +### [Ανάκτηση κειμένου από εικόνα σε C# – Πλήρης οδηγός OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Μάθετε πώς να εξάγετε κείμενο από εικόνες χρησιμοποιώντας C# και το Aspose.OCR με αυτόν τον ολοκληρωμένο οδηγό. +### [Εξαγωγή κειμένου από TIFF με Batch OCR σε C# – Πλήρης οδηγός](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Μάθετε πώς να εξάγετε κείμενο από αρχεία TIFF χρησιμοποιώντας Batch OCR σε C# με αυτόν τον ολοκληρωμένο οδηγό. +### [Δημιουργία Αναζητήσιμου PDF σε C# – Πλήρης Οδηγός](./create-searchable-pdf-in-c-complete-guide/) +Μάθετε πώς να δημιουργήσετε αναζητήσιμα PDF με C# χρησιμοποιώντας το Aspose.OCR σε αυτόν τον πλήρη οδηγό. +### [Αναγνώριση κειμένου από PNG σε C# – Πλήρης Οδηγός OCR & Ορθογραφικού Ελέγχου](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Μάθετε πώς να εξάγετε κείμενο από PNG με C# χρησιμοποιώντας OCR και ενσωματωμένο ορθογραφικό έλεγχο σε αυτόν τον πλήρη οδηγό. +### [Μετατροπή εικόνας σε JSON – C# OCR σεμινάριο για αποδείξεις](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Μάθετε πώς να μετατρέπετε εικόνες αποδείξεων σε JSON με 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/greek/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..c1d7ef289 --- /dev/null +++ b/ocr/greek/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Μετατρέψτε την εικόνα σε JSON χρησιμοποιώντας το Aspose OCR Cloud σε + C#. Μάθετε πώς να αναγνωρίζετε κείμενο, να εξάγετε κείμενο από εικόνα και να επεξεργάζεστε + αποδείξεις με OCR σε λίγα λεπτά. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: el +og_description: Μετατρέψτε την εικόνα σε JSON με το Aspose OCR Cloud σε C#. Αυτός + ο οδηγός δείχνει πώς να αναγνωρίζετε κείμενο, να εξάγετε κείμενο από εικόνα και + να επεξεργάζεστε απόδειξη με OCR. +og_title: Μετατροπή εικόνας σε JSON – Εκπαίδευση OCR με C# για αποδείξεις +tags: +- OCR +- C# +- Aspose +- JSON +title: Μετατροπή εικόνας σε JSON – Οδηγός OCR σε C# για αποδείξεις +url: /el/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή εικόνας σε JSON – C# OCR Tutorial για αποδείξεις + +Έχετε ποτέ χρειαστεί να **convert image to JSON** αλλά δεν ήξερες από πού να ξεκινήσεις; Σε αυτόν τον οδηγό θα σας καθοδηγήσουμε βήμα‑βήμα σε ένα πλήρες, end‑to‑end C# OCR tutorial που παίρνει μια φωτογραφία από μια απόδειξη, αναγνωρίζει το κείμενο και παράγει ένα καθαρό JSON payload. + +Αν έχετε ποτέ αναρωτηθεί *how to recognize text* σε ένα σαρωμένο έγγραφο, ή ψάχνετε έναν γρήγορο τρόπο να **extract text from image** αρχεία, βρίσκεστε στο σωστό μέρος. Στο τέλος αυτού του άρθρου θα μπορείτε να **process receipt with OCR** και να τροφοδοτήσετε το αποτέλεσμα απευθείας στα downstream APIs σας. + +## Τι θα χρειαστείτε + +- .NET 6 SDK ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Core) +- Ένα κλειδί Aspose Cloud API – μπορείτε να πάρετε μια δωρεάν δοκιμή από το portal της Aspose +- Ένα δείγμα εικόνας απόδειξης (`receipt.jpg`) αποθηκευμένο τοπικά +- Το αγαπημένο σας IDE (Visual Studio, VS Code, Rider – όποιο και αν είναι) + +Δεν απαιτούνται επιπλέον πακέτα NuGet πέρα από τον επίσημο πελάτη `Aspose.OCR.Cloud`. Αν έχετε ήδη εγκατεστημένο το SDK, είστε έτοιμοι να ξεκινήσετε. + +## Βήμα 1 – Convert Image to JSON: Ρύθμιση του OCR Client + +Πρώτα απ' όλα, χρειαζόμαστε μια παρουσία του `CloudOcrClient`. Αυτό το αντικείμενο διαχειρίζεται όλη την επικοινωνία με την υπηρεσία OCR της Aspose και θα επιστρέψει το αποτέλεσμα σε μορφή JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Η αρχικοποίηση του client είναι η γέφυρα μεταξύ του κώδικα C# και της cloud OCR μηχανής. Η μέθοδος `RecognizeAsync` κάνει τη βαριά δουλειά – ανεβάζει την εικόνα, εκτελεί την OCR μηχανή και επιστρέφει μια JSON συμβολοσειρά που περιέχει το αναγνωρισμένο κείμενο, τις βαθμολογίες εμπιστοσύνης και τις συντεταγμένες του bounding‑box. + +> **Pro tip:** Αποθηκεύστε το κλειδί API σε μια μεταβλητή περιβάλλοντος ή σε διαχειριστή μυστικών αντί να το κωδικοποιήσετε σκληρά. Με αυτόν τον τρόπο αποφεύγετε τυχαίες διαρροές. + +## Βήμα 2 – How to Recognize Text from the Receipt + +Τώρα που ο client είναι έτοιμος, ας εμβαθύνουμε στο *how* πίσω από την αναγνώριση κειμένου. Το Aspose OCR υποστηρίζει πολλές γλώσσες, αλλά για τις περισσότερες αποδείξεις τα Αγγλικά λειτουργούν καλά. Αν χρειάζεστε άλλη γλώσσα, απλώς αντικαταστήστε το `Language.English` με την κατάλληλη τιμή enum. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** Η υπηρεσία εκτελεί ένα μοντέλο deep‑learning που εντοπίζει χαρακτήρες, τους ομαδοποιεί σε λέξεις και στη συνέχεια συναρμολογεί γραμμές. Το JSON που επιστρέφεται φαίνεται περίπου έτσι: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Μπορείτε να αναλύσετε αυτό το JSON με `System.Text.Json` ή `Newtonsoft.Json` για να εξάγετε τα πεδία που σας ενδιαφέρουν. + +## Βήμα 3 – Extract Text from Image and Build JSON Manually (Optional) + +Μερικές φορές δεν θέλετε το ακατέργαστο JSON που σας παρέχει η Aspose· ίσως χρειάζεστε μια προσαρμοσμένη δομή για την downstream υπηρεσία σας. Παρακάτω υπάρχει ένα γρήγορο παράδειγμα που απο‑σειριοποιεί την απάντηση και την ξανασυσκευάζει σε ένα πιο καθαρό αντικείμενο. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Πολλά APIs αναμένουν ένα συγκεκριμένο σχήμα (π.χ., `{ \"total\": \"12.34\", \"date\": \"2026-04-10\" }`). Εξάγοντας μόνο τα πεδία που χρειάζεστε, διατηρείτε το payload ελαφρύ και αποτρέπετε τη διαρροή περιττών OCR μεταδεδομένων. + +## Βήμα 4 – Test the C# OCR Tutorial with a Sample Receipt + +Εκτελέστε το πρόγραμμα από το τερματικό σας: + +```bash +dotnet run +``` + +Θα πρέπει να δείτε δύο μπλοκ εξόδου: + +1. Το ακατέργαστο JSON που επιστρέφει η Aspose (το **convert image to json** αποτέλεσμα απευθείας από το cloud). +2. Το προσαρμοσμένο JSON που δημιουργήσατε στο προηγούμενο βήμα. + +Η τυπική έξοδος μοιάζει με: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Αν λάβετε σφάλμα όπως *401 Unauthorized*, ελέγξτε ξανά ότι το κλειδί API είναι έγκυρο και ότι η διαδρομή της εικόνας είναι σωστή. + +## Περιπτώσεις Άκρων & Συνηθισμένα Σφάλματα + +| Κατάσταση | Τι να προσέξετε | Προτεινόμενη Διόρθωση | +|-----------|------------------|------------------------| +| **Απόδειξη χαμηλής ανάλυσης** | Η εμπιστοσύνη OCR πέφτει κάτω από 0.8 | Προεπεξεργαστείτε την εικόνα (αυξήστε DPI, ενισχύστε την ευκρίνεια) πριν την αποστείλετε | +| **Μη‑Αγγλικοί χαρακτήρες** | Λάθος enum γλώσσας | Χρησιμοποιήστε `Language.AutoDetect` ή καθορίστε τη σωστή γλώσσα | +| **Μεγάλο batch αποδείξεων** | Σφάλματα περιορισμού ταχύτητας | Εφαρμόστε εκθετική καθυστέρηση ή ζητήστε υψηλότερο όριο από την Aspose | +| **Λείπουν πεδία** | Ο προσαρμοσμένος parser επιστρέφει `null` | Προσθέστε λογική fallback ή regex μοτίβα για πιο αξιόπιστη εξαγωγή | + +## Οπτική Επισκόπηση + +![Διάγραμμα που δείχνει τη ροή από αρχείο εικόνας → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *convert image to json flow diagram illustrating the steps covered in this tutorial.* + +## Σύνοψη + +Σας δείξαμε πώς να **convert image to JSON** με το Aspose OCR Cloud, εξηγήσαμε *how to recognize text* σε μια απόδειξη, παρουσιάσαμε τρόπους για **extract text from image**, και τυλίξαμε τα πάντα σε ένα καθαρό **C# OCR tutorial** που μπορείτε να ενσωματώσετε σε οποιοδήποτε .NET project. + +Τα βασικά σημεία είναι: + +- Ρυθμίστε το `CloudOcrClient` με το κλειδί API σας. +- Καλέστε το `RecognizeAsync` για να λάβετε ένα JSON payload απευθείας από την υπηρεσία. +- Προαιρετικά, προσαρμόστε το payload ώστε να ταιριάζει με το δικό σας συμβόλαιο δεδομένων. + +## Τι Ακολουθεί; + +- **Batch processing:** Επανάληψη σε έναν φάκελο αποδείξεων και συγκέντρωση των αποτελεσμάτων σε έναν ενιαίο πίνακα JSON. +- **Advanced parsing:** Χρησιμοποιήστε κανονικές εκφράσεις ή ένα μικρό μοντέλο NLP για να εξάγετε στοιχεία γραμμής, φόρους και εκπτώσεις. +- **Integration:** Σπρώξτε το τελικό JSON σε μια βάση δεδομένων, μια ουρά μηνυμάτων ή μια Azure Function για περαιτέρω αυτοματοποίηση. + +Μη διστάσετε να πειραματιστείτε με διαφορετικές μορφές εικόνας (PNG, TIFF) ή να δοκιμάσετε τη ροή **process receipt with OCR** σε φωτογραφίες που έχουν ληφθεί με κινητό. Ο ουρανός είναι το όριο μόλις έχετε έναν αξιόπιστο τρόπο να **convert image to 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/greek/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..43c9fdffb --- /dev/null +++ b/ocr/greek/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Δημιουργήστε γρήγορα PDF με δυνατότητα αναζήτησης από μια εικόνα. Μάθετε + πώς να δημιουργείτε PDF από εικόνα, να ενσωματώνετε εικόνα σε PDF, να μετατρέπετε + TIF σε PDF και να χρησιμοποιείτε OCR για PDF σε C# με το Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: el +og_description: Δημιουργήστε άμεσα PDF με δυνατότητα αναζήτησης. Αυτό το σεμινάριο + δείχνει πώς να δημιουργήσετε PDF από εικόνα, να ενσωματώσετε εικόνα σε PDF, να μετατρέψετε + TIF σε PDF και να χρησιμοποιήσετε OCR σε PDF με C#. +og_title: Δημιουργία Αναζητήσιμου PDF σε C# – Οδηγός Βήμα‑προς‑Βήμα +tags: +- C# +- OCR +- PDF generation +title: Δημιουργία Αναζητήσιμου PDF σε C# – Πλήρης Οδηγός +url: /el/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Αναζητήσιμου PDF σε C# – Πλήρης Οδηγός + +Χρειάστηκε ποτέ να **create searchable PDF** από ένα σαρωμένο έγγραφο αλλά δεν ήξερες από πού να ξεκινήσεις; Δεν είσαι μόνος· πολλοί προγραμματιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν δουλεύουν με αρχεία TIFF και OCR. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από μια πρακτική λύση που σου επιτρέπει να **generate PDF from image**, να ενσωματώσεις την αρχική εικόνα για τέλεια αναζητησιμότητα, και να ολοκληρώσεις με μια καθαρή ροή εργασίας **OCR to PDF C#**. + +Θα καλύψουμε τα πάντα, από την εγκατάσταση της βιβλιοθήκης Aspose.OCR μέχρι τη διαχείριση ειδικών περιπτώσεων όπως τα multi‑page TIFF. Στο τέλος θα έχεις ένα έτοιμο‑για‑εκτέλεση πρόγραμμα που μετατρέπει το `input.tif` σε ένα πλήρως αναζητήσιμο `output.pdf`. Χωρίς εξωτερικές υπηρεσίες, χωρίς κρυφή μαγεία—απλός κώδικας C# που μπορείς να ενσωματώσεις σε οποιοδήποτε έργο .NET. + +## Τι Θα Χρειαστεί + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης σε .NET Framework 4.7+) +- Visual Studio 2022 (ή οποιονδήποτε επεξεργαστή προτιμάς) +- Ένα ενεργό license Aspose.OCR ή ένα δωρεάν κλειδί δοκιμής (το πακέτο NuGet λειτουργεί χωρίς κλειδί για αξιολόγηση) +- Ένα δείγμα εικόνας TIFF (`input.tif`) τοποθετημένο σε φάκελο που μπορείς να αναφέρεις + +> **Συμβουλή:** Κράτα τα αρχεία εικόνας σου κάτω από 10 MB για να αποφύγεις αυξήσεις μνήμης όταν επεξεργάζεσαι μεγάλες παρτίδες. + +## Βήμα 1: Εγκατάσταση Aspose.OCR και Ρύθμιση του Έργου + +Πρώτα, πρόσθεσε το πακέτο NuGet Aspose.OCR στο έργο σου. Άνοιξε το Package Manager Console και εκτέλεσε: + +```powershell +Install-Package Aspose.OCR +``` + +Αν προτιμάς το UI, κάνε δεξί‑κλικ στο **Dependencies → Manage NuGet Packages**, αναζήτησε *Aspose.OCR* και κάνε κλικ στο **Install**. + +Γιατί αυτό το βήμα είναι σημαντικό: το Aspose.OCR περιλαμβάνει μια υψηλής απόδοσης μηχανή OCR και έναν ενσωματωμένο εξαγωγέα PDF, έτσι δεν χρειάζεσαι ξεχωριστές βιβλιοθήκες για διαχείριση εικόνας ή δημιουργία PDF. + +### Πλήρες Σκελετό Έργου + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Σημείωση:** Αντικατέστησε το `YOUR_DIRECTORY` με το πραγματικό μονοπάτι φακέλου στο μηχάνημά σου. + +## Βήμα 2: Φόρτωση της Εικόνας – *Generate PDF from Image* Βάση + +Η φόρτωση του αρχείου προέλευσης είναι ένα μικρό αλλά κρίσιμο βήμα. Το Aspose.OCR αναμένει ένα `ImageStream`, το οποίο αφαιρεί την άμεση πρόσβαση στο σύστημα αρχείων και υποστηρίζει πολλές μορφές (TIFF, PNG, JPEG, κλπ.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Γιατί να μην περάσουμε απλώς τη διαδρομή;** +Το `ImageStream` wrapper διαχειρίζεται εσωτερική προσωρινή αποθήκευση και εξασφαλίζει ότι η μηχανή OCR λειτουργεί με μεγάλα multi‑page TIFF χωρίς να φορτώνει ολόκληρο το αρχείο στη μνήμη ταυτόχρονα. + +## Βήμα 3: Διαμόρφωση Εξαγωγής PDF – *Embed Image PDF* για Τέλεια Αναζητησιμότητα + +Όταν εξάγεις τα αποτελέσματα OCR σε PDF, έχεις δύο επιλογές: να ενσωματώσεις μόνο το εξαγόμενο κείμενο, ή να ενσωματώσεις την αρχική εικόνα μαζί με το κρυφό στρώμα κειμένου. Η ενσωμάτωση της εικόνας διατηρεί την οπτική πιστότητα της σάρωσης και επιτρέπει στους χρήστες να επιλέγουν ή να αντιγράφουν κείμενο αργότερα. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Περίπτωση άκρης:** Αν ορίσεις το `EmbedOriginalImage` σε `false`, το παραγόμενο PDF θα είναι μικρότερο αλλά θα χάσει την αρχική εικόνα—χρήσιμο για καθαρά αρχεία κειμένου. + +## Βήμα 4: Εξαγωγή – *OCR to PDF C#* σε Μία Κλήση + +Το Aspose.OCR κάνει τη βαριά δουλειά με μία γραμμή κώδικα. Η μέθοδος `ExportToPdf` εκτελεί OCR, δημιουργεί το κρυφό στρώμα κειμένου και γράφει το τελικό αρχείο. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Αναμενόμενο Αποτέλεσμα + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Άνοιξε το `output.pdf` σε οποιονδήποτε προβολέα (Adobe Reader, Edge, κλπ.) και προσπάθησε να επιλέξεις κείμενο—θα δεις την αρχική εικόνα από κάτω, επιβεβαιώνοντας ότι η λειτουργία **create searchable pdf** ολοκληρώθηκε επιτυχώς. + +## Βήμα 5: Επαλήθευση του PDF – Γρήγοροι Έλεγχοι που Μπορείς να Αυτοματοποιήσεις + +Ενώ η χειροκίνητη επιθεώρηση είναι εντάξει για ένα αρχείο, μπορεί να θέλεις να επιβεβαιώσεις προγραμματιστικά ότι το PDF περιέχει στρώμα κειμένου. Το Aspose.PDF (μια αδελφή βιβλιοθήκη) μπορεί να διαβάσει το έγγραφο και να εξάγει κείμενο: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Πρόσθεσε μια κλήση στο `VerifyPdfContainsText(pdfPath);` μετά την εξαγωγή αν θέλεις έναν αυτοματοποιημένο έλεγχο λογικής. + +## Συνηθισμένα Προβλήματα & Πώς να τα Αποφύγεις + +| **Έλλειψη μνήμης σε τεράστια TIFF** | Η φόρτωση ολόκληρου του αρχείου ταυτόχρονα υπερβαίνει τη μνήμη RAM. | Χρησιμοποίησε `ImageStream.FromFile` (όπως φαίνεται) και επεξεργάσου τις σελίδες μία‑μία αν έχεις αρχεία multi‑page. | +| **Λείπει άδεια, οδηγεί σε υδατογραφήματα** | Η λειτουργία αξιολόγησης προσθέτει ορατό υδατογράφημα σε κάθε σελίδα. | Εφάρμοσε την άδεια Aspose.OCR νωρίς: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Λανθασμένοι διαχωριστές διαδρομής σε Linux** | Ο σκληρός κώδικας `\` σπάει σε μη‑Windows λειτουργικά συστήματα. | Χρησιμοποίησε `Path.Combine` ή ακατέργαστες συμβολοσειρές με `/`. | +| **Το κείμενο δεν είναι αναζητήσιμο** | `EmbedOriginalImage` ορισμένο σε `false` ή OCR απενεργοποιημένο. | Βεβαιώσου ότι `PdfExportOptions.EmbedOriginalImage = true` και ότι η μηχανή OCR είναι σωστά αρχικοποιημένη. | + +## Επιπλέον: Μετατροπή TIF σε PDF Χωρίς OCR (Όταν το Κείμενο Δεν Απαιτείται) + +Αν χρειάζεσαι μόνο να **convert TIF to PDF** χωρίς το κρυφό στρώμα κειμένου, μπορείς να παραλείψεις εντελώς το βήμα OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Αυτή η τεχνική είναι χρήσιμη για την αρχειοθέτηση σαρωμένων εγγράφων όπου η αναζητησιμότητα δεν είναι απαραίτητη. + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Τρέξε το πρόγραμμα, άνοιξε το `output.pdf`, και θα δεις μια πιστή αναπαραγωγή του αρχικού TIFF με ένα κρυφό, επιλέξιμο στρώμα κειμένου—ακριβώς αυτό που σημαίνει **create searchable pdf** στην πράξη. + +## Συμπέρασμα + +Μόλις περάσαμε από μια πλήρη ροή εργασίας **create searchable pdf** σε C#. Ξεκινώντας από ένα ακατέργαστο TIFF, **generate pdf from image**, επιλέξαμε να **embed image pdf** για οπτική πιστότητα, και δείξαμε την πλήρη αλυσίδα **ocr to pdf c#** χρησιμοποιώντας Aspose.OCR. + +Μην διστάσεις να τροποποιήσεις τις `PdfExportOptions` (συμπίεση, έκδοση PDF, κλπ.) ή να συνδέσεις πολλαπλές εικόνες για επεξεργασία κατά παρτίδες. Στο επόμενο βήμα μπορείς να εξερευνήσεις την προσθήκη προστασίας με κωδικό, ψηφιακών υπογραφών, ή ακόμη και τη συγχώνευση πολλών αναζητήσιμων PDF σε ένα κύριο έγγραφο. + +Έχεις ερωτήσεις σχετικά με την κλιμάκωση σε χιλιάδες αρχεία ή την ενσωμάτωση σε ASP.NET API; Άφησε ένα σχόλιο παρακάτω ή στείλε μου μήνυμα στο GitHub—καλή προγραμματιστική! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/greek/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..978e0e919 --- /dev/null +++ b/ocr/greek/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-04-11 +description: Εξάγετε κείμενο από εικόνα χρησιμοποιώντας το Aspose OCR σε C#. Μάθετε + πώς να φορτώνετε εικόνα για OCR και να αναγνωρίζετε κείμενο από αρχεία TIFF με υποστήριξη + GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: el +og_description: Εξαγωγή κειμένου από εικόνα με Aspose OCR σε C#. Αυτό το σεμινάριο + δείχνει πώς να φορτώσετε εικόνα για OCR και να αναγνωρίσετε κείμενο από TIFF χρησιμοποιώντας + επιτάχυνση GPU. +og_title: Εξαγωγή κειμένου από εικόνα σε C# – Πλήρης οδηγός OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Εξαγωγή κειμένου από εικόνα σε C# – Πλήρης οδηγός OCR +url: /el/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή Κειμένου από Εικόνα σε C# – Πλήρης Οδηγός OCR + +Έχετε ποτέ χρειαστεί να **εξάγετε κείμενο από εικόνα** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη θα διαχειριστεί ένα τεράστιο TIFF χωρίς προβλήματα; Δεν είστε μόνοι. Σε πολλά πραγματικά έργα—σκεφτείτε την ψηφιοποίηση τιμολογίων ή την αρχειοθέτηση σαρωμένων βιβλίων—η δυνατότητα φόρτωσης εικόνας για OCR και στη συνέχεια αναγνώρισης κειμένου από TIFF γίνεται γρήγορα χαρακτηριστικό-κλειδί. + +Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα μια πρακτική λύση που κάνει ακριβώς αυτό χρησιμοποιώντας το Aspose OCR για .NET. Στο τέλος θα έχετε μια εκτελέσιμη εφαρμογή κονσόλας C# που φορτώνει μια υψηλής ανάλυσης σάρωση, ενεργοποιεί την επεξεργασία με επιτάχυνση GPU (με μια χαριτωμένη εναλλακτική), και παράγει το αποτέλεσμα σε απλό κείμενο. Χωρίς ελλείψεις, χωρίς «δείτε τα έγγραφα» αδιέξοδα. + +## Τι Θα Χρειαστεί + +- **.NET 6 ή νεότερο** (ο κώδικας μεταγλωττίζεται με οποιοδήποτε πρόσφατο SDK) +- **Aspose.OCR for .NET** πακέτο NuGet + `dotnet add package Aspose.OCR` +- Ένα **μεγάλο TIFF** ή οποιαδήποτε άλλη μορφή εικόνας που θέλετε να OCR + (το παράδειγμα χρησιμοποιεί `large_scan.tif`) +- (Προαιρετικό) Μια GPU που υποστηρίζει CUDA 11+ – εάν δεν έχετε, η βιβλιοθήκη θα μεταβεί αυτόματα σε λειτουργία CPU. + +Αυτό είναι όλο. Ας βουτήξουμε. + +![Εξαγωγή κειμένου από εικόνα χρησιμοποιώντας Aspose OCR σε C#](image-placeholder.png "Εξαγωγή κειμένου από εικόνα χρησιμοποιώντας Aspose OCR σε C#") + +## Βήμα 1: Εξαγωγή Κειμένου από Εικόνα – Αρχικοποίηση της Μηχανής OCR + +Πριν επεξεργαστεί οποιαδήποτε εικόνα, χρειάζεστε μια παρουσία `OcrEngine`. Η μηχανή κρατά όλες τις ρυθμίσεις που ελέγχουν πώς εκτελείται η αναγνώριση. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Γιατί είναι σημαντικό:** +`ProcessingMode.Gpu` μπορεί να μειώσει δευτερόλεπτα από τον χρόνο αναγνώρισης σε μια σύγχρονη κάρτα, αλλά η ρύθμιση `ProcessingMode.Auto` (ή η προεπιλογή) είναι πιο ασφαλής για περιβάλλοντα όπου μπορεί να λείπει GPU. Η προστασία `GpuMemoryLimit` είναι μια πρακτική συμβουλή—χωρίς αυτήν, μια τεράστια εικόνα θα μπορούσε να μονοπωλήσει όλη τη VRAM και να καταρρεύσει άλλες εφαρμογές. + +## Βήμα 2: Φόρτωση Εικόνας για OCR – Φέρτε το TIFF στη Μνήμη + +Τώρα που η μηχανή είναι έτοιμη, πρέπει να της δώσουμε την εικόνα που θέλουμε να αναλύσουμε. Η Aspose παρέχει τη μέθοδο `ImageStream.FromFile` που αφαιρεί την ανάγκη χειρισμού μορφής. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Τι συμβαίνει στο παρασκήνιο;** +`ImageStream.FromFile` διαβάζει το αρχείο σε ροή και αυτόματα εντοπίζει τη μορφή της εικόνας (TIFF, PNG, JPEG, κλπ.). Εάν εργάζεστε με πολυ‑σελίδες TIFF, η Aspose θα θεωρήσει κάθε σελίδα ως ξεχωριστό πλαίσιο· μπορείτε να τις επαναλάβετε αργότερα αν χρειαστεί. + +## Βήμα 3: Αναγνώριση Κειμένου από TIFF – Εκτέλεση της Μηχανής OCR + +Με τη φορτωμένη εικόνα, αρχίζει η βαριά δουλειά. Η μέθοδος `Recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει το εξαγόμενο κείμενο και μερικά χρήσιμα πεδία μεταδεδομένων. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Γιατί να καλέσετε το `Recognize` μόνο μία φορά;** +Επειδή η μηχανή αποθηκεύει στην κρυφή μνήμη εσωτερικές δομές μετά την πρώτη εκτέλεση, μια μόνο κλήση αρκεί για τις περισσότερες περιπτώσεις. Εάν χρειάζεται να επεξεργαστείτε πολλές σελίδες, επαναχρησιμοποιήστε την ίδια παρουσία `OcrEngine`—αυτό αποφεύγει το κόστος επανεκκίνησης των GPU context. + +## Βήμα 4: Εμφάνιση του Αποτελέσματος – Προβολή του Εξαγόμενου Κειμένου + +Τέλος, εκτυπώνουμε τη αναγνωρισμένη συμβολοσειρά στην κονσόλα. Σε μια πραγματική εφαρμογή πιθανότατα θα το γράφατε σε μια βάση δεδομένων ή σε ένα αρχείο. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Αναμενόμενο αποτέλεσμα:** +Εάν το `large_scan.tif` περιέχει ένα τυπωμένο τιμολόγιο, θα δείτε κάτι όπως: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Η ακριβής διάταξη εξαρτάται από την πηγή εικόνας, αλλά το βασικό σημείο είναι ότι τώρα έχετε αποτελέσματα **εξαγωγής κειμένου από εικόνα** έτοιμα για επεξεργασία downstream. + +## Βήμα 5: Επίλυση Προβλημάτων & Ακραίες Περιπτώσεις + +### GPU Δεν Εντοπίστηκε; + +Εάν εκτελέσετε το δείγμα σε μηχάνημα χωρίς συμβατό GPU, η μηχανή επιστρέφει σιωπηλά σε CPU όταν χρησιμοποιείτε `ProcessingMode.Auto`. Για να εξαναγκάσετε τη λειτουργία CPU ρητά, αντικαταστήστε τη προηγούμενη γραμμή με: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF με Υψηλή Κατανάλωση Μνήμης + +Πολύ μεγάλες σαρώσεις (π.χ., 10 000 × 10 000 px) μπορεί ακόμη να υπερβαίνουν το όριο 1 GB GPU που ορίσαμε. Σε αυτήν την περίπτωση, είτε αυξήστε το `GpuMemoryLimit` (αν έχετε ελεύθερη VRAM) είτε μειώστε την ανάλυση της εικόνας πριν τη δώσετε στη μηχανή: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Πολυ‑σελίδες Έγγραφα + +Εάν το TIFF σας περιέχει πολλές σελίδες, επαναλάβετε πάνω τους: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Υποστήριξη Γλώσσας & Γραμματοσειράς + +Η Aspose OCR εντοπίζει αυτόματα γραφές βασισμένες στο Λατινικό, αλλά για Κυριλλικά, Αραβικά ή προσαρμοσμένες γραμματοσειρές ίσως χρειαστεί να παρέχετε ένα πακέτο γλώσσας: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Επαγγελματικές Συμβουλές & Καλές Πρακτικές + +- **Επαναχρησιμοποίηση της μηχανής**: Η δημιουργία νέου `OcrEngine` ανά εικόνα προσθέτει αισθητή καθυστέρηση. +- **Επεξεργασία σε παρτίδες**: Όταν διαχειρίζεστε δεκάδες TIFF, τοποθετήστε τα σε ουρά και επεξεργαστείτε τα σε παράλληλα νήματα—απλώς να προσέχετε τον ανταγωνισμό μνήμης GPU. +- **Επικύρωση αποτελέσματος**: Το OCR δεν είναι τέλειο· εκτελέστε έναν απλό ορθογραφικό έλεγχο ή επικύρωση regex στο `ocrResult.Text` για να εντοπίσετε προφανή λάθη. +- **Καταγραφή απόδοσης**: Μετρήστε τον χρόνο `Stopwatch` πριν και μετά το `Recognize` για να αποφασίσετε αν η επιτάχυνση GPU αξίζει την επιπλέον ρύθμιση στο περιβάλλον σας. + +## Συμπέρασμα + +Τώρα έχετε ένα πλήρες, ολοκληρωμένο παράδειγμα που **εξάγει κείμενο από εικόνα** αρχεία χρησιμοποιώντας το Aspose OCR σε C#. Φορτώνοντας την εικόνα για OCR, καλώντας τη μηχανή για αναγνώριση κειμένου από TIFF, και διαχειριζόμενοι σενάρια GPU vs. CPU, αυτό το tutorial σας παρέχει μια παραγωγική βάση που μπορείτε να προσαρμόσετε σε τιμολόγια, διαβατήρια ή οποιοδήποτε σαρωμένο έγγραφο. + +Τι ακολουθεί; Δοκιμάστε να αντικαταστήσετε το TIFF με ένα πολυ‑σελίδες PDF, πειραματιστείτε με προσαρμοσμένα πακέτα γλώσσας, ή διοχετεύστε το αποτέλεσμα σε μια αλυσίδα επεξεργασίας φυσικής γλώσσας για αυτοματοποιημένη εξαγωγή δεδομένων. Ο ουρανός είναι το όριο—καλή προγραμματιστική! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/greek/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..d50fb0190 --- /dev/null +++ b/ocr/greek/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Εξάγετε κείμενο από αρχεία TIFF χρησιμοποιώντας την επεξεργασία παρτίδας + OCR της Aspose σε C#. Μάθετε πώς να επεξεργάζεστε παρτίδες OCR αποδοτικά και να + λαμβάνετε ανατροφοδότηση προόδου σε πραγματικό χρόνο. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: el +og_description: Εξάγετε κείμενο από αρχεία TIFF χρησιμοποιώντας την επεξεργασία παρτίδας + OCR της Aspose σε C#. Αυτό το σεμινάριο δείχνει βήμα‑προς‑βήμα πώς να επεξεργαστείτε + παρτίδα OCR και να διαβάσετε την πρόοδο. +og_title: Εξαγωγή κειμένου από TIFF με Batch OCR σε C# – Πλήρης οδηγός +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Εξαγωγή κειμένου από TIFF με Batch OCR σε C# – Πλήρης οδηγός +url: /el/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή κειμένου από TIFF – Ολοκληρωμένος οδηγός Batch OCR + +Έχετε χρειαστεί ποτέ να **εξάγετε κείμενο από αρχεία TIFF** αλλά να κολλήσετε στο κομμάτι της επεξεργασίας σε batch; Δεν είστε οι μόνοι. Σε πολλά έργα αυτοματοποίησης εγγράφων, η διαχείριση δεκάδων εικόνων TIF υψηλής ανάλυσης μπορεί γρήγορα να γίνει bottleneck—ιδιαίτερα όταν θέλετε άμεση ανατροφοδότηση για την πρόοδο. + +Τα καλά νέα; Με το Aspose OCR μπορείτε να **επεξεργαστείτε batch OCR** με λίγες μόνο γραμμές, να λαμβάνετε γεγονότα προόδου σε πραγματικό χρόνο και να εξάγετε το αναγνωρισμένο κείμενο για κάθε εικόνα. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από μια έτοιμη εφαρμογή κονσόλας C# που κάνει ακριβώς αυτό. + +Θα καλύψουμε τα πάντα που χρειάζεστε: τα απαιτούμενα πακέτα, γιατί κάθε γραμμή έχει σημασία, edge‑cases όπως ελλιπή αρχεία, και πώς να επαληθεύσετε τα αποτελέσματα. Στο τέλος θα μπορείτε να ενσωματώσετε το δείγμα στη δική σας λύση και να αρχίσετε να εξάγετε κείμενο από εικόνες TIFF αμέσως. + +## Τι θα χρειαστείτε + +- **.NET 6 ή νεότερο** (ο κώδικας μεταγλωττίζεται και με .NET Core) +- **Aspose.OCR for .NET** πακέτο NuGet – `Install-Package Aspose.OCR` +- Ένας φάκελος που περιέχει μερικές **TIFF** εικόνες που θέλετε να διαβάσετε (το demo χρησιμοποιεί `img1.tif`, `img2.tif`, `img3.tif`) +- Οποιοδήποτε IDE προτιμάτε – Visual Studio, Rider ή VS Code αρκούν + +Δεν απαιτείται επιπλέον διαμόρφωση· η βιβλιοθήκη έρχεται με τη δική της μηχανή OCR, οπότε δεν χρειάζεται να εγκαταστήσετε εξωτερικά native binaries. + +--- + +## Βήμα 1 – Δημιουργία του αντικειμένου OCR Engine + +Το πρώτο που κάνετε είναι να δημιουργήσετε ένα `OcrEngine`. Σκεφτείτε το ως τον εγκέφαλο που θα αναλύσει κάθε pixel και θα το μετατρέψει σε χαρακτήρες. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Γιατί είναι σημαντικό:** +> Η μηχανή κρατά εσωτερικά μοντέλα γλώσσας και ρυθμίσεις (π.χ., DPI, γλώσσα). Η δημιουργία της μία φορά και η επαναχρησιμοποίησή της για ένα batch είναι πολύ πιο αποδοτική από το να δημιουργείτε νέα μηχανή για κάθε εικόνα. + +--- + +## Βήμα 2 – Σύνδεση των γεγονότων προόδου σε πραγματικό χρόνο + +Αν επεξεργάζεστε δεκάδες αρχεία TIFF, ένας δείκτης προόδου μπορεί να σας σώσει από το άγχος του «κολλήθηκε η εφαρμογή». + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Το γεγονός `ProgressChanged` ενεργοποιείται μετά το τέλος κάθε εικόνας, παρέχοντάς σας `Current`, `Total` και `Percentage`. Αυτός είναι ο βρόχος ανατροφοδότησης **process batch OCR** που οι περισσότεροι προγραμματιστές ξεχνούν να υλοποιήσουν. + +--- + +## Βήμα 3 – Δημιουργία λίστας ροών εικόνας + +Το Aspose.OCR δουλεύει με αντικείμενα `ImageStream`. Ο πιο εύκολος τρόπος είναι να φορτώσετε κάθε TIFF από το δίσκο. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Συμβουλή:** +> Αν έχετε έναν δυναμικό φάκελο, αντικαταστήστε τη σκληρά κωδικοποιημένη λίστα με `Directory.GetFiles(path, "*.tif")` και `Select(ImageStream.FromFile)` – έτσι θα **process batch OCR** χωρίς χειροκίνητες ενημερώσεις. + +--- + +## Βήμα 4 – Εκτέλεση της διαδικασίας Batch OCR + +Τώρα γίνεται η βαριά δουλειά. Η `ProcessBatch` επιστρέφει μια read‑only λίστα αντικειμένων `OcrResult`, το καθένα με το εξαγόμενο κείμενο και τα confidence scores. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Γιατί είναι αποδοτικό:** +> Η μηχανή επαναχρησιμοποιεί το ίδιο μοντέλο γλώσσας για όλες τις εικόνες, μειώνοντας δραστικά την κατανάλωση μνήμης σε σύγκριση με κλήσεις μονής εικόνας. + +--- + +## Βήμα 5 – Εμφάνιση ή αποθήκευση του αναγνωρισμένου κειμένου + +Τέλος, επαναλάβετε τα αποτελέσματα. Σε ένα πραγματικό έργο ίσως τα γράψετε σε βάση δεδομένων ή σε αρχείο JSON, αλλά για αυτό το demo θα τα τυπώσουμε στην κονσόλα. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Αναμενόμενη έξοδος κονσόλας** (συντομευμένη για ευκρίνεια): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Αν κάποια εικόνα αποτύχει, το `result.Text` θα είναι κενό string, και το γεγονός `ProgressChanged` θα αναφέρει το στοιχείο ως επεξεργασμένο—έτσι μπορείτε να καταγράψετε τις αποτυχίες ξεχωριστά. + +--- + +## Ο Διαχειριστής του Γεγονότος Προόδου (Πλήρης Κώδικας) + +Τοποθετήστε αυτή τη μέθοδο οπουδήποτε μέσα στην κλάση `BatchDemo`—κατά προτίμηση μετά το `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Ανακατευθύνετε αυτή την έξοδο σε μια progress bar UI αν χτίζετε desktop εφαρμογή· το ίδιο γεγονός λειτουργεί για WinForms, WPF ή ακόμη και για ASP.NET Core SignalR notifications. + +--- + +## Πλήρες, Έτοιμο‑για‑Εκτέλεση Δείγμα + +Συνδυάζοντας τα παραπάνω, εδώ είναι το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε σε νέο project κονσόλας. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Αποθηκεύστε το αρχείο ως `Program.cs`, τρέξτε `dotnet add package Aspose.OCR`, αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή, και πατήστε **Ctrl+F5**. Θα πρέπει να δείτε αριθμούς προόδου ακολουθούμενους από το εξαγόμενο κείμενο για κάθε TIFF. + +--- + +## Διαχείριση Συνηθισμένων Edge Cases + +| Κατάσταση | Τι να προσέξετε | Γρήγορη Διόρθωση | +|-----------|-------------------|-----------| +| **Απουσία ή κατεστραμμένο TIFF** | `ImageStream.FromFile` ρίχνει `FileNotFoundException` ή `ArgumentException`. | Τυλίξτε τη δημιουργία λίστας σε `try/catch` και παραλείψτε τα μη έγκυρα αρχεία, καταγράφοντας το πρόβλημα. | +| **Πολύ μεγάλες εικόνες ( >10 MP )** | Το OCR μπορεί να καταναλώσει πολύ RAM και να επιβραδύνει. | Μειώστε το DPI πριν την επεξεργασία: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Μη‑Αγγλικό κείμενο** | Το προεπιλεγμένο μοντέλο γλώσσας είναι Αγγλικά. | Ορίστε `ocrEngine.Language = Language.Spanish;` (ή οποιαδήποτε υποστηριζόμενη γλώσσα). | +| **Ανάγκη αποθήκευσης αποτελεσμάτων** | Η έξοδος στην κονσόλα δεν είναι μόνιμη. | Γράψτε `result.Text` σε αρχείο `.txt` με `File.WriteAllText`. | + +Η αντιμετώπιση αυτών των σεναρίων κάνει τη λύση σας ανθεκτική και δείχνει ότι έχετε σκεφτεί πέρα από το «happy path». + +--- + +## Επόμενα Βήματα & Σχετικά Θέματα + +- **Εξαγωγή κειμένου από PDF** – παρόμοιο API, απλώς αντικαταστήστε το `ImageStream` με `PdfDocument`. +- **Parallel batch OCR** – για τεράστιες εργασίες, δημιουργήστε πολλαπλά `OcrEngine` σε ξεχωριστά νήματα· θυμηθείτε να σεβαστείτε τα όρια της άδειας χρήσης. +- **Post‑processing** – τρέξτε το OCR output από spell‑checker ή regex για να καθαρίσετε κοινά OCR artefacts. + +Όλες αυτές οι επεκτάσεις βασίζονται στην κεντρική ιδέα του **process batch OCR** και μπορούν να προστεθούν σταδιακά. + +--- + +## Συμπέρασμα + +Δείξαμε πώς να **εξάγετε κείμενο από αρχεία TIFF** αποδοτικά με **process batch OCR** χρησιμοποιώντας το Aspose OCR σε C#. Το δείγμα δημιουργεί μία μηχανή, εγγράφεται σε γεγονότα προόδου, φορτώνει μια λίστα ροών εικόνας, εκτελεί το batch και τυπώνει κάθε αποτέλεσμα. + +Από εδώ μπορείτε να ενσωματώσετε το αποτέλεσμα σε βάσεις δεδομένων, να δημιουργήσετε searchable PDFs, ή να τροφοδοτήσετε το κείμενο σε downstream NLP pipelines. Ο ουρανός είναι το όριο—πειραματιστείτε με ρυθμίσεις γλώσσας, DPI, και παράλληλη εκτέλεση ώστε να ταιριάζει στο workload σας. + +Έχετε ερωτήσεις ή θέλετε να μοιραστείτε πώς προσαρμόσατε το batch; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/greek/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..42d34b3a2 --- /dev/null +++ b/ocr/greek/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Μάθετε πώς να αναγνωρίζετε κείμενο από PNG και να εξάγετε κείμενο από + εικόνα C# χρησιμοποιώντας Aspose OCR. Περιλαμβάνει βήματα φόρτωσης αρχείου εικόνας + C#, ορθογραφικό έλεγχο και πλήρη κώδικα. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: el +og_description: Αναγνωρίστε κείμενο από PNG εύκολα με C#. Ακολουθήστε αυτόν τον βήμα‑βήμα + οδηγό για να φορτώσετε αρχείο εικόνας C#, να εξάγετε κείμενο από εικόνα C# και να + εκτελέσετε ορθογραφικό έλεγχο. +og_title: Αναγνώριση κειμένου από PNG σε C# – Πλήρης Οδηγός OCR +tags: +- OCR +- C# +- Aspose +title: Αναγνώριση κειμένου από PNG σε C# – Πλήρης Οδηγός OCR & Ορθογραφικού Ελέγχου +url: /el/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Αναγνώριση κειμένου από PNG – Πλήρες C# OCR & Spell‑Check Tutorial + +Έχετε χρειαστεί ποτέ να **αναγνωρίσετε κείμενο από png** αρχεία αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη να επιλέξετε; Δεν είστε μόνοι· πολλοί προγραμματιστές αντιμετωπίζουν αυτό το πρόβλημα όταν ασχολούνται για πρώτη φορά με εξαγωγή δεδομένων από εικόνες. Τα καλά νέα; Με το Aspose OCR μπορείτε να φορτώσετε ένα αρχείο εικόνας σε C#, να εξάγετε το κείμενο και ακόμη να εκτελέσετε έναν ενσωματωμένο ελεγκτή ορθογραφίας—όλα σε λίγες γραμμές. + +Σε αυτόν τον οδηγό θα περάσουμε από όλη τη διαδικασία: φόρτωση του PNG, κλήση της μηχανής OCR και τελικά έλεγχος για λανθασμένες λέξεις. Στο τέλος θα μπορείτε να **εξάγετε κείμενο από εικόνα C#** σε έργα χωρίς να ψάχνετε σε διασκορπισμένα έγγραφα. Δεν απαιτείται προγενέστερη εμπειρία OCR, μόνο ένα περιβάλλον ανάπτυξης .NET. + +## Τι Θα Χρειαστείτε + +- **.NET 6.0** (ή οποιαδήποτε πρόσφατη έκδοση .NET) – το API λειτουργεί το ίδιο σε .NET Core και Framework. +- **Aspose.OCR for .NET** πακέτο NuGet – εγκαταστήστε το μέσω `dotnet add package Aspose.OCR`. +- Μια **PNG εικόνα** που περιέχει αναγνώσιμο κείμενο (π.χ. `letter.png` τοποθετημένη σε φάκελο που ελέγχετε). +- Έναν επεξεργαστή κώδικα ή IDE (Visual Studio, VS Code, Rider—επιλέξτε ό,τι προτιμάτε). + +Αυτό είναι όλο. Χωρίς επιπλέον μηχανές OCR, χωρίς εγγενή DLLs, μόνο ένα καθαρό διαχειριζόμενο πακέτο. + +--- + +## Βήμα 1: Φόρτωση του Αρχείου PNG Εικόνας σε C# + +Πριν η μηχανή OCR μπορέσει να κάνει οτιδήποτε, χρειάζεται ένα stream που δείχνει στην εικόνα. Το Aspose παρέχει το `ImageStream.FromFile`, το οποίο αφαιρεί τις λεπτομέρειες του συστήματος αρχείων. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Συμβουλή:** Αν η εικόνα σας είναι ενσωματωμένη ως πόρος ή προέρχεται από αίτημα web, μπορείτε να χρησιμοποιήσετε `ImageStream.FromBytes(byte[])` αντί αυτού—χωρίς ανάγκη πρόσβασης στο σύστημα αρχείων. + +### Γιατί η φόρτωση είναι σημαντική + +Η σωστή φόρτωση της εικόνας εξασφαλίζει ότι η μηχανή OCR λαμβάνει τα ακριβή δεδομένα pixel που αναμένει. Ένα κατεστραμμένο stream θα προκαλέσει εξαίρεση στο `Recognize`, και θα χάσετε χρόνο στην αποσφαλμάτωση αργότερα. + +--- + +## Βήμα 2: Αρχικοποίηση της Μηχανής OCR + +Η δημιουργία μιας παρουσίας `OcrEngine` είναι φθηνή, αλλά ίσως θελήσετε να ρυθμίσετε τη γλώσσα ή τις ρυθμίσεις ακρίβειας για συγκεκριμένες περιπτώσεις χρήσης (π.χ. έγγραφα πολλαπλών γλωσσών). Ο προεπιλεγμένος κατασκευαστής λειτουργεί καλά για αγγλικό κείμενο. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Γιατί μια παρουσία μηχανής; + +Η μηχανή κρατά τις ρυθμίσεις (γλώσσα, φίλτρα προεπεξεργασίας κ.λπ.). Διαχωρίζοντας τις ρυθμίσεις από την εικόνα, μπορείτε να επαναχρησιμοποιήσετε την ίδια μηχανή για πολλά αρχεία—ιδανικό για επεξεργασία δέσμης. + +--- + +## Βήμα 3: Αναγνώριση Κειμένου από το PNG + +Τώρα συμβαίνει η μαγεία. Η `Recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει τη ακατέργαστη συμβολοσειρά, τα σκορ εμπιστοσύνης και άλλα. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Αναμενόμενη έξοδος** (υπόθεση ότι το `letter.png` λέει “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Αν η εικόνα περιέχει πολλαπλές γραμμές, το αποτέλεσμα διατηρεί τις αλλαγές γραμμής, κάνοντας την επεξεργασία downstream απλή. + +### Ακραία περίπτωση: PNG χαμηλής ανάλυσης + +Αν το αποτέλεσμα OCR φαίνεται ακατάστατο, σκεφτείτε την κλιμάκωση της εικόνας ή την προσαρμογή του `ocrEngine.PreprocessingOptions`. Οι εικόνες χαμηλής DPI συχνά χάνουν λεπτομέρειες που χρειάζεται η μηχανή. + +--- + +## Βήμα 4: Εκτέλεση του Ενσωματωμένου Ελεγκτή Ορθογραφίας + +Το Aspose OCR περιλαμβάνει ένα ελαφρύ μοντέλο ελέγχου ορθογραφίας που λειτουργεί απευθείας στο αποτέλεσμα OCR. Αυτό το βήμα σας βοηθά να εντοπίσετε λανθασμένες αναγνώσεις όπως “H3llo” αντί για “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Δειγματική έξοδος** (αν το OCR διάβασε λανθασμένα το “World” ως “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Γιατί ο έλεγχος ορθογραφίας; + +Το OCR δεν είναι ποτέ 100 % τέλειο, ειδικά με θορυβώδη φόντο. Ένας γρήγορος έλεγχος ορθογραφίας μπορεί να φιλτράρει προφανή σφάλματα πριν ενσωματώσετε το κείμενο σε downstream αναλύσεις ή βάσεις δεδομένων. + +--- + +## Βήμα 5: Συνδυάστε Όλα – Πλήρες Παράδειγμα Εργασίας + +Παρακάτω βρίσκεται το πλήρες, έτοιμο για εκτέλεση πρόγραμμα. Αντιγράψτε‑και‑επικολλήστε το σε ένα νέο έργο κονσόλας, προσαρμόστε τη διαδρομή της εικόνας και πατήστε **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Η εκτέλεση της επίδειξης** εκτυπώνει το κείμενο OCR ακολουθούμενο από τυχόν προτάσεις ορθογραφίας. Λειτουργεί σε οποιοδήποτε PNG που περιέχει καθαρό, τυπωμένο αγγλικό κείμενο. Για άλλες γλώσσες, απλώς ορίστε το `ocrEngine.Language` ανάλογα. + +--- + +## Συχνές Ερωτήσεις & Παγίδες + +| Ερώτηση | Απάντηση | +|----------|--------| +| *Μπορώ να επεξεργαστώ αρχεία JPEG ή BMP;* | Απόλυτα—`ImageStream.FromFile` δέχεται οποιαδήποτε μορφή υποστηρίζεται από το Aspose (PNG, JPEG, BMP, TIFF). | +| *Τι γίνεται αν η εικόνα είναι σε memory stream;* | Χρησιμοποιήστε `ImageStream.FromBytes(byteArray)` ή `ImageStream.FromStream(stream)`. | +| *Ο ελεγκτής ορθογραφίας είναι γλωσσο-συγκεκριμένος;* | Ναι, σέβεται τη γλώσσα που έχει οριστεί στη μηχανή OCR. | +| *Πώς μπορώ να βελτιώσω την ακρίβεια σε παραμορφωμένες εικόνες;* | Ενεργοποιήστε `ocrEngine.PreprocessingOptions.Deskew = true;` πριν καλέσετε τη `Recognize`. | +| *Χρειάζομαι άδεια για το Aspose.OCR;* | Μια δωρεάν δοκιμή λειτουργεί για έως 100 σελίδες. Για παραγωγή, αποκτήστε άδεια για να αφαιρέσετε τα υδατογράμματα. | + +--- + +## Επόμενα Βήματα – Πέρα από το Βασικό OCR + +Τώρα που μπορείτε να **αναγνωρίσετε κείμενο από png** και να **εξάγετε κείμενο από εικόνα C#**, σκεφτείτε αυτές τις επεκτάσεις: + +1. **Επεξεργασία δέσμης** – Επανάληψη σε έναν φάκελο PNG και εγγραφή κάθε αποτελέσματος OCR σε ξεχωριστό αρχείο `.txt`. +2. **Ενσωμάτωση με Azure Cognitive Services** – Συνδυάστε το Aspose OCR με API μετάφρασης βασισμένα στο cloud για πολυγλωσσικές αλυσίδες. +3. **Εξαγωγή δομημένων δεδομένων** – Χρησιμοποιήστε κανονικές εκφράσεις στο `recognizedText` για να εξάγετε ημερομηνίες, αριθμούς τιμολογίων ή διευθύνσεις. +4. **Βελτιστοποίηση απόδοσης** – Για μεγάλα όγκους, επαναχρησιμοποιήστε μια μοναδική παρουσία `OcrEngine` και ενεργοποιήστε το multi‑threading. + +Κάθε ένα από αυτά βασίζεται στα βασικά βήματα που καλύψαμε, επιτρέποντάς σας να μετατρέψετε μια απλή εικόνα σε επεξεργάσιμα δεδομένα. + +--- + +## Συμπέρασμα + +Διασχίσαμε ένα πλήρες, ολοκληρωμένο παράδειγμα που δείχνει πώς να **αναγνωρίσετε κείμενο από png** σε C#, **φορτώσετε αρχείο εικόνας C#** σωστά, και στη συνέχεια **εξάγετε κείμενο από εικόνα C#** ενώ εντοπίζετε ορθογραφικά σφάλματα. Ο κώδικας είναι αυτόνομος, οι εξηγήσεις καλύπτουν τόσο το “πώς” όσο και το “γιατί”, και τώρα έχετε μια σταθερή βάση για οποιοδήποτε χαρακτηριστικό βασισμένο σε 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 cee8a4618..63cecd6a7 100644 --- a/ocr/hindi/net/ocr-configuration/_index.md +++ b/ocr/hindi/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Aspose.OCR के साथ .NET में OCR इमेज रिकग्न Aspose.OCR for .NET के साथ शक्तिशाली OCR क्षमताओं को बढ़ाएं। इमेज से टेक्स्ट को बिना बताए हटाएं। ### [OCR इमेज रिकग्निशन में लिस्ट के साथ OCROperation](./ocr-operation-with-list/) Aspose.OCR for .NET की क्षमताओं को बढ़ाएं। लिस्ट के साथ OCR इमेज रिकग्निशन को आसानी से करें। अपने एप्लिकेशन में प्रोडक्टिविटी और डेटा एक्सट्रैक्शन को बढ़ाएं। +### [C# में OCR को कैसे निष्क्रिय करें – ऑफ़लाइन Aspose OCR गाइड](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Aspose OCR को ऑफ़लाइन मोड में C# एप्लिकेशन से निष्क्रिय करने की चरण‑दर‑चरण प्रक्रिया सीखें। ### कॉमन यूज़ केस - **टेक्स्ट इमेज निकालें** स्कैन किए गए इनवॉइस से टेक्स्ट निकालें ताकि ऑटोमेटेड अकाउंटिंग हो सके। @@ -104,4 +106,4 @@ A: API इनेबल्ड फाइलों को स्किप कर {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/hindi/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..22a3be6f9 --- /dev/null +++ b/ocr/hindi/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,169 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR for C# में OCR को ऑफ़लाइन चलाने के लिए कैसे डिसेबल करें, इंटरनेट + के बिना इमेज से टेक्स्ट निकालें, और OCR के लिए इमेज को सही ढंग से लोड करें, यह सीखें। +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: hi +og_description: Aspose OCR for C# में OCR को कैसे निष्क्रिय करें और ऑफ़लाइन चलाएँ, + इंटरनेट की आवश्यकता के बिना छवि से टेक्स्ट निकालें, और OCR के लिए छवि को आसानी से + लोड करें। +og_title: C# में OCR को कैसे निष्क्रिय करें – ऑफ़लाइन Aspose OCR गाइड +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: C# में OCR को कैसे निष्क्रिय करें – ऑफ़लाइन Aspose OCR गाइड +url: /hi/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में OCR को कैसे डिसेबल करें – ऑफ़लाइन Aspose OCR गाइड + +क्या आपने कभी सोचा है **how to disable OCR** जब आपको एक पूरी तरह ऑफ़लाइन समाधान चाहिए? शायद आप एक सुरक्षित डेस्कटॉप ऐप बना रहे हैं जो नेटवर्क कनेक्शन पर निर्भर नहीं हो सकता, या आप अनपेक्षित डाउनलोड से बचना चाहते हैं। किसी भी स्थिति में, अच्छी खबर यह है कि Aspose OCR आपको अपने ऑटोमैटिक रिसोर्स फ़ेचिंग को बंद करने, इसे एक लोकल फ़ोल्डर की ओर इंगित करने, और सब कुछ ऑन‑प्रेमाइसेस रखने की अनुमति देता है। इस ट्यूटोरियल में आप यह भी देखेंगे कि कैसे **extract text from image** फ़ाइलों से टेक्स्ट निकाला जाए और सही तरीके से **load image for OCR** किया जाए बिना किसी समस्या के। + +हम एक पूरी, तैयार‑चलाने‑योग्य उदाहरण के माध्यम से हर कदम दिखाएंगे—इंजन को इनिशियलाइज़ करने से लेकर पहचाने गए जापानी टेक्स्ट को प्रिंट करने तक। कोई बाहरी डॉक्यूमेंट नहीं, कोई छिपा जादू नहीं; सिर्फ साधारण C# कोड जिसे आप आज ही अपने प्रोजेक्ट में डाल सकते हैं। अंत तक आप समझ जाएंगे कि ऑटो‑डाउनलोड फीचर को डिसेबल करना क्यों महत्वपूर्ण है, रिसोर्सेज़ पाथ कैसे सेट करें, और किन समस्याओं से बचना चाहिए। + +## आवश्यकताएँ + +- .NET 6.0 (या कोई भी हालिया .NET संस्करण) आपके मशीन पर इंस्टॉल हो। +- Aspose.OCR for .NET NuGet पैकेज (`Install-Package Aspose.OCR`)। +- एक फ़ोल्डर जिसमें पहले से ही वह भाषा रिसोर्सेज़ हों जो आपको चाहिए (जैसे, जापानी मॉडल)। +- एक इमेज फ़ाइल (`japan_doc.png`) जिस पर आप OCR चलाना चाहते हैं। + +यदि आपके पास भाषा पैक्स नहीं हैं, तो Aspose पोर्टल से एक बार डाउनलोड करके उन्हें `AsposeOCRResources` जैसे फ़ोल्डर में अनज़िप कर लें, और आप तैयार हैं। एक बार जब आप ऑटो‑डाउनलोड फीचर को डिसेबल कर देते हैं, तो आगे कोई डाउनलोड नहीं होगा। + +![ऑफ़लाइन OCR को कैसे डिसेबल करें](/images/how-to-disable-ocr.png "OCR को डिसेबल करने का चित्रण") + +## चरण 1 – OCR इंजन इंस्टेंस बनाएं + +पहला काम है `OcrEngine` को इंस्टैंशिएट करना। इस ऑब्जेक्ट को आप अपने इमेज को पढ़ने वाला दिमाग समझ सकते हैं। + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** बिना इंजन के आप कोई भी सेटिंग कॉन्फ़िगर नहीं कर सकते। यह ऑब्जेक्ट सभी सेटिंग्स रखता है, जिसमें वह महत्वपूर्ण फ़्लैग भी शामिल है जो लाइब्रेरी को बताता है कि क्या वह इंटरनेट तक पहुंच सकता है। + +## चरण 2 – ऑटोमैटिक रिसोर्स डाउनलोड को डिसेबल करें + +डिफ़ॉल्ट रूप से Aspose OCR गायब भाषा फ़ाइलों को ऑन‑द‑फ़्लाई फ़ेच करने की कोशिश करेगा। सब कुछ ऑफ़लाइन रखने के लिए `AutoDownloadResources` स्विच को `false` कर दें। + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro tip:** इसे बंद करने से न केवल प्राइवेसी की गारंटी मिलती है बल्कि पहला रिकॉग्निशन रन तेज़ हो जाता है क्योंकि इंजन अपडेट्स की जाँच में समय बर्बाद नहीं करता। + +## चरण 3 – अपने लोकल रिसोर्सेज़ फ़ोल्डर की ओर इंगित करें + +अब इंजन को बताएं कि प्री‑डownload किए गए भाषा पैक्स कहाँ स्थित हैं। यह वही पाथ है जिसे आपने प्रीरेक्विज़िट्स में सेट किया था। + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **What could go wrong?** यदि पाथ गलत है या आवश्यक भाषा फ़ाइल मौजूद नहीं है, तो इंजन `ResourceNotFoundException` फेंकेगा। फ़ोल्डर की स्पेलिंग और यह सुनिश्चित करें कि जापानी मॉडल (`jpn.traineddata`) मौजूद है। + +## चरण 4 – लोकल लैंग्वेज मॉडल चुनें + +उस भाषा को चुनें जो आपके डिस्क पर वास्तव में मौजूद है। हमारे उदाहरण में हम जापानी उपयोग कर रहे हैं, लेकिन आप `Language.Japanese` को किसी भी अन्य डाउनलोड की गई भाषा से बदल सकते हैं। + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Edge case:** कुछ भाषाओं को अतिरिक्त डिक्शनरी की आवश्यकता होती है (जैसे, चीनी)। सुनिश्चित करें कि ये सहायक फ़ाइलें भी उसी रिसोर्सेज़ फ़ोल्डर में हों। + +## चरण 5 – OCR के लिए इमेज लोड करें + +यहीं पर हम **load image for OCR** करते हैं। `ImageStream.FromFile` मेथड फ़ाइल को एक स्ट्रीम में पढ़ता है जिसे Aspose प्रोसेस कर सकता है। + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tip:** समर्थित फ़ॉर्मेट में PNG, JPEG, BMP, और TIFF शामिल हैं। यदि आपको PDFs को हैंडल करना है, तो पहले प्रत्येक पेज को इमेज में बदलें। + +## चरण 6 – रिकॉग्निशन प्रोसेस चलाएँ + +अब इंजन वास्तव में पिक्सेल पढ़ता है और उन्हें टेक्स्ट में बदलने की कोशिश करता है। + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Why this step can be slow:** OCR CPU‑इंटेन्सिव होता है, विशेषकर हाई‑रेज़ोल्यूशन इमेज के लिए। यदि परफ़ॉर्मेंस की चिंता है, तो रिकॉग्निशन से पहले इमेज को डाउन‑स्केल करने पर विचार करें। + +## चरण 7 – एक्सट्रैक्टेड टेक्स्ट आउटपुट करें + +अंत में, हम **extract text from image** करते हैं और उसे कंसोल पर प्रिंट करते हैं। + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +प्रोग्राम चलाने पर `japan_doc.png` में मौजूद जापानी अक्षर कंसोल में दिखेंगे। यदि सब कुछ सही सेट है, तो आपको कंसोल पर एक साफ़ यूनिकोड टेक्स्ट ब्लॉक दिखाई देगा। + +### अपेक्षित आउटपुट + +``` +これはサンプルの日本語テキストです。 +``` + +(आपका वास्तविक आउटपुट इमेज की सामग्री पर निर्भर करेगा।) + +## सामान्य समस्याएँ और उन्हें कैसे टालें + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Missing language file** | `AutoDownloadResources` false है, इसलिए इंजन इसे फ़ेच नहीं कर सकता। | Verify `ResourcesPath` points to the folder containing `jpn.traineddata`. | +| **Incorrect image path** | `ImageStream.FromFile` `FileNotFoundException` फेंकता है। | Use absolute paths or ensure the working directory is set correctly. | +| **Unsupported image format** | Aspose केवल कुछ फ़ॉर्मेट पढ़ता है। | Convert your image to PNG or JPEG before calling `FromFile`. | +| **Out‑of‑memory on large images** | OCR पूरी इमेज को मेमोरी में लोड करता है। | Resize or tile the image, or increase the process’s memory limit. | + +## उदाहरण को विस्तारित करना + +- **Batch processing:** इमेजेज़ की डायरेक्टरी पर लूप चलाएँ, वही रिकॉग्निशन कोड कॉल करें, और प्रत्येक परिणाम को अलग `.txt` फ़ाइल में लिखें। +- **Different languages:** `Language.Japanese` को `Language.English` (या कोई अन्य) से बदलें, बशर्ते संबंधित रिसोर्स फ़ाइलें रखी हों। +- **Custom preprocessing:** OCR से पहले बेहतर एक्यूरेसी के लिए Aspose.Imaging का उपयोग करके इमेज को डेस्क्यू या कॉन्ट्रास्ट बढ़ाएँ। + +## निष्कर्ष + +अब आप जानते हैं **how to disable OCR** Aspose OCR में C# के लिए और इसे पूरी तरह ऑफ़लाइन चलाना। `AutoDownloadResources` को `false` सेट करके, इंजन को लोकल रिसोर्सेज़ फ़ोल्डर की ओर इंगित करके, और सही तरीके से **load image for OCR** करके, आप बिना इंटरनेट के **extract text from image** भरोसेमंद रूप से कर सकते हैं। यह तरीका सुरक्षित वातावरण, CI पाइपलाइन, या किसी भी स्थिति के लिए आदर्श है जहाँ नेटवर्क एक्सेस सीमित हो। + +अगला कदम तैयार है? पूरे स्कैन किए गए PDFs की फ़ोल्डर प्रोसेस करने की कोशिश करें, विभिन्न भाषा पैक्स के साथ प्रयोग करें, या 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/_index.md b/ocr/hindi/net/ocr-optimization/_index.md index 741ae28e9..a99b4b999 100644 --- a/ocr/hindi/net/ocr-optimization/_index.md +++ b/ocr/hindi/net/ocr-optimization/_index.md @@ -74,6 +74,9 @@ Aspose.OCR for .NET के साथ OCR सटीकता बढ़ाएँ ### [OCR इमेज रिकग्निशन में मल्टी‑पेज परिणाम को दस्तावेज़ के रूप में सहेजें](./save-multipage-result-as-document/) Aspose.OCR for .NET की क्षमता को अनलॉक करें। इस व्यापक चरण‑दर‑चरण गाइड के साथ मल्टी‑पेज OCR परिणामों को दस्तावेज़ों के रूप में आसानी से सहेजें। +### [C# में Aspose OCR के साथ OCR सटीकता कैसे सुधारें](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Aspose OCR का उपयोग करके C# में OCR सटीकता बढ़ाने के लिए चरण‑दर‑चरण मार्गदर्शिका। + ## अक्सर पूछे जाने वाले प्रश्न **Q:** क्या मैं कई भाषाओं वाली छवि फ़ाइलों से पाठ निकाल सकता हूँ? diff --git a/ocr/hindi/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/hindi/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..b8f2dc160 --- /dev/null +++ b/ocr/hindi/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR का उपयोग करके JPG से टेक्स्ट पहचानने, इमेज को डेस्क्यू करने + और शोर हटाने के द्वारा C# में OCR को कैसे सुधारें, सीखें। +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: hi +og_description: जैपीजी से टेक्स्ट पहचानकर, इमेज को डेस्क्यू करके और शोर हटाकर OCR + को कैसे बेहतर बनाएं—पूरा C# गाइड। +og_title: C# में Aspose OCR के साथ OCR की सटीकता कैसे बढ़ाएँ +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C# में Aspose OCR के साथ OCR की सटीकता कैसे बढ़ाएँ +url: /hi/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Aspose OCR के साथ OCR सटीकता कैसे बढ़ाएँ + +क्या आपने कभी सोचा है **how to improve OCR** परिणामों के बारे में जब आपके स्कैन अधिकतर अमूर्त कला की तरह दिखते हैं न कि पढ़ने योग्य टेक्स्ट? आप अकेले नहीं हैं। कई वास्तविक‑दुनिया प्रोजेक्ट्स—जैसे इनवॉइस, रसीदें, या हाथ से लिखे नोट्स—में स्रोत छवियां अक्सर तिरछी, धुंधली, या बहुत शोरयुक्त होती हैं। अच्छी खबर? Aspose OCR आपको कुछ प्री‑प्रोसेसिंग नॉब्स देता है जो इस गड़बड़ी को साफ़, मशीन‑रीडेबल अक्षरों में बदल सकते हैं। इस ट्यूटोरियल में हम एक पूर्ण, चलाने योग्य उदाहरण के माध्यम से दिखाएंगे कि **how to improve OCR** कैसे **recognize text from JPG**, इमेज को डेस्क्यू करने और अनावश्यक शोर को हटाने से किया जा सकता है। + +> *Pro tip:* यदि आप प्री‑प्रोसेसिंग को छोड़ देते हैं, तो संभवतः आपको गड़बड़ आउटपुट मिलेगा जो एक रहस्यमय क्रॉसवर्ड पज़ल जैसा दिखेगा। चलिए इसे रोकते हैं। + +![Aspose OCR प्री‑प्रोसेसिंग के साथ OCR सुधारने का तरीका](https://example.com/ocr-preprocess.png "Aspose OCR के साथ OCR सुधारना") + +## आप क्या सीखेंगे + +1. Aspose OCR इंजन को इष्टतम सटीकता के लिए सेट अप करने का तरीका। +2. **recognize text from JPG** फ़ाइलों के लिए आवश्यक सटीक कोड। +3. *AutoDeskew* और *RemoveNoise* को सक्षम करने का महत्व और उन्हें कैसे ट्यून करें। +4. कस्टम फ़िल्टर लिखे बिना **extract text from image** फ़ाइलों को निकालने का तरीका। +5. सामान्य pitfalls (फ़ाइल नहीं मिली, असमर्थित फ़ॉर्मेट) और त्वरित समाधान। + +अंत तक आपके पास एक एकल C# कंसोल ऐप होगा जो किसी भी JPG को ले सकता है, उसे साफ़ कर सकता है, और निकाली गई स्ट्रिंग को आउटपुट कर सकता है—जो आगे की प्रोसेसिंग या स्टोरेज के लिए तैयार है। + +## पूर्वापेक्षाएँ + +- .NET 6.0 SDK या बाद का (उदाहरण संक्षिप्तता के लिए टॉप‑लेवल स्टेटमेंट्स का उपयोग करता है)। +- Aspose.OCR NuGet पैकेज (`dotnet add package Aspose.OCR`)। +- एक सैंपल JPG इमेज (`input.jpg` नाम की) जिसे एक्सीक्यूटेबल के समान फ़ोल्डर में रखें। +- C# की बुनियादी परिचितता—कोई उन्नत अवधारणाएँ आवश्यक नहीं। + +यदि आपके पास पहले से प्रोजेक्ट है, तो बस कोड डाल दें; अन्यथा एक नया कंसोल ऐप बनाएं: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +अब कोड में डुबकी लगाएँ। + +## OCR सुधारने का तरीका: प्री‑प्रोसेस सेटिंग्स का अवलोकन + +**how to improve OCR** का मूल `PreprocessSettings` ऑब्जेक्ट में निहित है। इसे एक मिनी‑इमेज‑एडिटर की तरह सोचें जो वास्तविक कैरेक्टर रिकग्निशन इंजन के *पहले* चलता है। नीचे सबसे प्रभावशाली फ्लैग्स की एक त्वरित सूची दी गई है: + +| Setting | क्या करता है | सामान्य उपयोग केस | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | एक डीप‑लर्निंग डि‑स्क्यू एल्गोरिदम लागू करता है। | थोड़ी टिल्टेड स्कैन किए गए पेज। | +| `AdaptiveThreshold` | कम‑रोशनी या फीके इमेज में कंट्रास्ट बढ़ाता है। | धुंधले इंक वाले पुराने रसीदें। | +| `RemoveNoise` | स्पीकल्स को दबाने के लिए गॉसियन‑ब्लर फ़िल्टर चलाता है। | स्मार्टफ़ोन फ्लैश से ली गई फोटो। | +| `NoiseRemovalStrength` | आक्रामकता को नियंत्रित करता है (1 = कम, 3 = उच्च)। | स्रोत की ग्रेनीनेस के आधार पर फाइन‑ट्यून। | + +इन विकल्पों को सक्षम करना मूलतः असंपूर्ण इनपुट पर **how to improve OCR** के लिए “सीक्रेट सॉस” है। + +## Aspose OCR के साथ JPG से टेक्स्ट पहचानें + +नीचे पूरा, तैयार‑चलाने योग्य प्रोग्राम दिया गया है। प्रत्येक पंक्ति में टिप्पणी की गई है ताकि आप देख सकें *क्यों* प्रत्येक भाग मौजूद है, न कि केवल *क्या* करता है। + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### अपेक्षित आउटपुट + +यदि `input.jpg` में वाक्यांश “Invoice #12345 – Total: $256.78” है, तो कंसोल प्रिंट करेगा: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +ध्यान दें कि आउटपुट साफ़ है, जिसमें डैश और डॉलर साइन बरकरार हैं—बिल्कुल वही जो आप **extract text from image** फ़ाइलों से निकालते समय उम्मीद करेंगे। + +## प्री‑प्रोसेस सेटिंग्स का उपयोग करके इमेज को डेस्क्यू कैसे करें + +डेस्क्यू क्यों महत्वपूर्ण है? यहाँ तक कि 2‑डिग्री का झुकाव भी कैरेक्टर सेगमेंटेशन चरण को भ्रमित कर सकता है, जिससे अक्षर गलत पहचान होते हैं। `AutoDeskew` फ़्लैग हिडन लेयर में एक कॉन्वॉल्यूशनल न्यूरल नेटवर्क चलाता है जो प्रमुख कोण का पता लगाता है और इमेज को बेसलाइन पर वापस घुमा देता है। + +यदि आपको अधिक नियंत्रण चाहिए, तो आप एंगल को मैन्युअली सेट कर सकते हैं: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **जब मैनुअल डेस्क्यू उपयोग करें:** यदि आप जानते हैं कि कैमरा लगातार इमेज को एक निश्चित मात्रा से टिल्ट करता है (जैसे, माउंटेड स्कैनर), तो एंगल को हार्ड‑कोड करने से थोड़ी प्रोसेसिंग टाइम बचती है। + +## साफ़ निष्कर्षण के लिए शोर हटाना कैसे करें + +शोर रैंडम स्पीकल्स या ग्रेन के रूप में दिखता है, विशेषकर कम‑रोशनी फोटो में। `RemoveNoise` फ़्लैग एक बाइलेटरल फ़िल्टर लागू करता है जो बैकग्राउंड को स्मूद करता है जबकि किनारों (वास्तविक अक्षर) को बरकरार रखता है। `NoiseRemovalStrength` प्रॉपर्टी आपको आक्रामकता को समायोजित करने देती है: + +| तीव्रता | प्रभाव | +|----------|--------| +| 1 | हल्का स्मूदिंग—हल्के ग्रेनी चित्रों के लिए अच्छा। | +| 2 | संतुलित—अधिकांश स्मार्टफ़ोन कैप्चर के लिए उपयुक्त। | +| 3 | भारी स्मूदिंग—जब इमेज अत्यधिक शोरयुक्त हो, तब उपयोग करें, लेकिन पतली स्ट्रोक्स के ब्लर होने से सावधान रहें। | + +यदि आप ऐसी स्थिति का सामना करते हैं जहाँ भारी स्मूदिंग के बाद छोटे फ़ॉन्ट पढ़ने योग्य नहीं रह जाते, तो बस तीव्रता कम करें या फ़िल्टर को पूरी तरह बंद कर दें। + +## इमेज से टेक्स्ट निकालें: JPG से आगे + +हालांकि हमारा डेमो JPG पर केंद्रित है, Aspose OCR PNG, BMP, TIFF, और यहां तक कि PDF पेजों को भी सपोर्ट करता है। JPG के अलावा अन्य फ़ॉर्मेट से **extract text from image** करने के लिए, बस `ImageStream.FromFile` में फ़ाइल एक्सटेंशन बदलें। मल्टी‑पेज TIFF के लिए आप प्रत्येक पेज पर लूप कर सकते हैं: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +यह स्निपेट दिखाता है कि आप समान **how to improve OCR** वर्कफ़्लो को स्कैन किए हुए दस्तावेज़ों के पूरे स्टैक को बैच‑प्रोसेस करने के लिए कैसे स्केल कर सकते हैं। + +## सामान्य pitfalls और उनके समाधान + +| लक्षण | संभावित कारण | त्वरित समाधान | +|---------|--------------|-----------| +| Blank output | प्री‑प्रोसेसिंग के बाद इमेज पूरी तरह सफ़ेद हो जाती है (अत्यधिक थ्रेशोल्ड) | `NoiseRemovalStrength` कम करें या `AdaptiveThreshold = false` सेट करें। | +| Garbled characters | गलत भाषा मॉडल (डिफ़ॉल्ट इंग्लिश) | `ocrEngine.Settings.Language = Language.English;` सेट करें या कस्टम भाषा पैक लोड करें। | +| Crash on large files | हाई‑रिज़ॉल्यूशन इमेज के कारण मेमोरी खत्म होना | पहचान से पहले `ocrEngine.Settings.ImageResizeFactor = 0.5;` से डाउनस्केल करें। | +| No output for rotated scans | अनजाने में `AutoDeskew` डिसेबल हो गया | `AutoDeskew = true` सक्षम करें या सही `DeskewAngle` प्रदान करें। | + +इनको ध्यान में रखने से आपको प्रोडक्शन पाइपलाइन में **how to improve OCR** करने की कोशिश करते समय घंटों की डिबगिंग बचाएगी। + +## बोनस: गति बनाम सटीकता के लिए ट्यूनिंग + +यदि आप प्रतिदिन हजारों रसीदें प्रोसेस कर रहे हैं, तो आप गति को प्राथमिकता दे सकते हैं। `AdaptiveThreshold` को बंद करें और `NoiseRemovalStrength = 1` सेट करें। इसके विपरीत, कानूनी दस्तावेज़ों में जहाँ एक भी मिस्ड कैरेक्टर महंगा पड़ सकता है, सभी फ़्लैग्स को ऑन रखें और `NoiseRemovalStrength` को 3 तक बढ़ाने पर विचार करें। + +## समापन + +हमने C# में Aspose OCR का उपयोग करके **how to improve OCR** की पूरी यात्रा को कवर किया है: इंजन बनाना, प्री‑प्रोसेसिंग कॉन्फ़िगर करना ( *how to deskew image* और *how to remove noise* का मूलभूत भाग), JPG लोड करना, टेक्स्ट पहचानना, और एज केसों को संभालना। कोड स्वयं‑समाहित है, बॉक्स से बाहर चलाता है, और वह सटीक कदम दिखाता है जो आपको **recognize text from jpg** और **extract text from image** फ़ाइलों के लिए चाहिए। + +### आगे क्या? + +- अन्य इमेज फ़ॉर्मेट (PNG, TIFF) के साथ प्रयोग करें ताकि देखें कि समान सेटिंग्स कैसे व्यवहार करती हैं। +- 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/_index.md b/ocr/hindi/net/text-recognition/_index.md index 0512ee10e..80364773b 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,36 @@ 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 अनुप्रयोगों को बेहतर बनाएं। सटीक परिणामों के लिए ओसीआर डिटेक्ट एरिया मोड का अन्वेषण करें। ### [ओसीआर छवि पहचान में पीडीएफ को पहचानें](./recognize-pdf/) Aspose.OCR के साथ .NET में OCR की क्षमता को अनलॉक करें। पीडीएफ़ से आसानी से टेक्स्ट निकालें। सहज एकीकरण अनुभव के लिए अभी डाउनलोड करें। ### [ओसीआर छवि पहचान में तालिका को पहचानें](./recognize-table/) OCR छवि पहचान में तालिकाओं को पहचानने पर हमारे व्यापक गाइड के साथ .NET के लिए Aspose.OCR की क्षमता को अनलॉक करें। +### [C# में छवि से टेक्स्ट निकालें – पूर्ण OCR गाइड](./extract-text-from-image-in-c-complete-ocr-guide/) +Aspose.OCR का उपयोग करके C# में छवि से पाठ निकालने की पूरी प्रक्रिया सीखें। चरण-दर-स्टेप मार्गदर्शिका। +### [C# में बैच OCR के साथ TIFF से टेक्स्ट निकालें – पूर्ण गाइड](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Aspose.OCR का उपयोग करके C# में बैच OCR के साथ TIFF फ़ाइलों से टेक्स्ट निकालने की पूरी प्रक्रिया सीखें। चरण-दर-स्टेप मार्गदर्शिका। +### [C# में खोज योग्य PDF बनाएं – पूर्ण गाइड](./create-searchable-pdf-in-c-complete-guide/) +Aspose.OCR का उपयोग करके C# में खोज योग्य PDF बनाने की पूरी प्रक्रिया सीखें। चरण-दर-स्टेप मार्गदर्शिका। +### [C# में PNG से टेक्स्ट पहचानें – पूर्ण OCR और वर्तनी‑जाँच गाइड](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Aspose.OCR का उपयोग करके C# में PNG फ़ाइलों से टेक्स्ट निकालें और वर्तनी‑जाँच करें। चरण‑दर‑चरण पूर्ण गाइड। +### [छवि को JSON में बदलें – रसीदों के लिए C# OCR ट्यूटोरियल](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +रसीदों के लिए छवि को JSON में बदलें और 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/hindi/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..014ec97ec --- /dev/null +++ b/ocr/hindi/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR Cloud का उपयोग करके C# में छवि को JSON में बदलें। सीखें कि + कैसे टेक्स्ट को पहचानें, छवि से टेक्स्ट निकालें, और मिनटों में OCR के साथ रसीद को + प्रोसेस करें। +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: hi +og_description: C# में Aspose OCR Cloud के साथ छवि को JSON में बदलें। यह गाइड दिखाता + है कि कैसे टेक्स्ट को पहचानें, छवि से टेक्स्ट निकालें, और OCR के साथ रसीद को प्रोसेस + करें। +og_title: इमेज को JSON में बदलें – रसीदों के लिए C# OCR ट्यूटोरियल +tags: +- OCR +- C# +- Aspose +- JSON +title: इमेज को JSON में बदलें – रसीदों के लिए C# OCR ट्यूटोरियल +url: /hi/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# इमेज को JSON में बदलें – रसीदों के लिए C# OCR ट्यूटोरियल + +क्या आपको कभी **इमेज को JSON में बदलने** की जरूरत पड़ी लेकिन आप नहीं जानते थे कि कहाँ से शुरू करें? इस गाइड में हम आपको एक पूर्ण, अंत‑से‑अंत C# OCR ट्यूटोरियल के माध्यम से ले चलेंगे जो रसीद की फोटो लेता है, टेक्स्ट को पहचानता है, और एक साफ़ JSON पेलोड देता है। + +यदि आपने कभी सोचा है *स्कैन किए हुए दस्तावेज़ में टेक्स्ट कैसे पहचाना जाए*, या आप **इमेज से टेक्स्ट निकालने** का तेज़ तरीका खोज रहे हैं, तो आप सही जगह पर हैं। इस लेख के अंत तक आप **OCR के साथ रसीद प्रोसेस** कर सकेंगे और परिणाम को सीधे अपने डाउनस्ट्रीम APIs में फीड कर सकेंगे। + +## आपको क्या चाहिए + +- .NET 6 SDK या बाद का संस्करण (कोड .NET Core के साथ भी काम करता है) +- एक Aspose Cloud API कुंजी – आप Aspose पोर्टल से मुफ्त ट्रायल ले सकते हैं +- एक नमूना रसीद इमेज (`receipt.jpg`) स्थानीय रूप से संग्रहीत +- आपका पसंदीदा IDE (Visual Studio, VS Code, Rider – कोई भी चलेगा) + +कोई अतिरिक्त NuGet पैकेज आवश्यक नहीं है, सिवाय आधिकारिक `Aspose.OCR.Cloud` क्लाइंट के। यदि आपके पास पहले से SDK स्थापित है, तो आप तैयार हैं। + +## Step 1 – इमेज को JSON में बदलें: OCR क्लाइंट सेट अप करें + +सबसे पहले, हमें `CloudOcrClient` का एक इंस्टेंस चाहिए। यह ऑब्जेक्ट Aspose की OCR सेवा के साथ सभी संचार को संभालता है और परिणाम को JSON फ़ॉर्मेट में लौटाता है। + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** क्लाइंट को इनिशियलाइज़ करना आपके C# कोड और क्लाउड OCR इंजन के बीच का पुल है। `RecognizeAsync` मेथड भारी काम करता है – यह इमेज अपलोड करता है, OCR इंजन चलाता है, और एक JSON स्ट्रिंग लौटाता है जिसमें पहचाना गया टेक्स्ट, कॉन्फिडेंस स्कोर, और बाउंडिंग‑बॉक्स कॉर्डिनेट्स होते हैं। + +> **Pro tip:** API कुंजी को हार्ड‑कोड करने के बजाय पर्यावरण वेरिएबल या सीक्रेट मैनेजर में रखें। इससे आकस्मिक लीक से बचा जा सकता है। + +## Step 2 – रसीद से टेक्स्ट कैसे पहचानें + +अब क्लाइंट तैयार है, चलिए टेक्स्ट रिकग्निशन के *कैसे* में गहराई से देखते हैं। Aspose OCR कई भाषाओं को सपोर्ट करता है, लेकिन अधिकांश रसीदों के लिए अंग्रेज़ी ठीक काम करती है। यदि आपको कोई अन्य भाषा चाहिए, तो बस `Language.English` को उपयुक्त enum वैल्यू से बदल दें। + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** सर्विस एक डीप‑लर्निंग मॉडल चलाती है जो कैरेक्टर्स को डिटेक्ट करता है, उन्हें शब्दों में समूहित करता है, और फिर लाइनों को असेंबल करता है। लौटाया गया JSON लगभग इस तरह दिखता है: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +आप इस JSON को `System.Text.Json` या `Newtonsoft.Json` से पार्स करके उन फ़ील्ड्स को निकाल सकते हैं जिनकी आपको ज़रूरत है। + +## Step 3 – इमेज से टेक्स्ट निकालें और JSON मैन्युअली बनाएं (वैकल्पिक) + +कभी‑कभी आप Aspose द्वारा दिया गया रॉ JSON नहीं चाहते; शायद आपको अपने डाउनस्ट्रीम सर्विस के लिए कस्टम स्ट्रक्चर चाहिए। नीचे एक त्वरित उदाहरण है जो रिस्पॉन्स को डीसिरियलाइज़ करता है और उसे एक साफ़ ऑब्जेक्ट में री‑पैकेज करता है। + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** कई APIs एक विशिष्ट स्कीमा की उम्मीद करते हैं (जैसे, `{ "total": "12.34", "date": "2026-04-10" }`)। केवल आवश्यक फ़ील्ड्स को निकालकर आप पेलोड को हल्का रख सकते हैं और अनावश्यक OCR मेटाडेटा लीक होने से बचा सकते हैं। + +## Step 4 – एक नमूना रसीद के साथ C# OCR ट्यूटोरियल टेस्ट करें + +टर्मिनल से प्रोग्राम चलाएँ: + +```bash +dotnet run +``` + +आपको दो ब्लॉक्स आउटपुट में दिखने चाहिए: + +1. Aspose द्वारा लौटाया गया रॉ JSON (क्लाउड से सीधे **इमेज को JSON में बदलने** का परिणाम)। +2. पिछले चरण में बनाया गया कस्टम JSON। + +सामान्य आउटपुट इस प्रकार दिखता है: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +यदि आपको *401 Unauthorized* जैसी त्रुटि मिलती है, तो दोबारा जांचें कि आपकी API कुंजी वैध है और इमेज पाथ सही है। + +## Edge Cases & Common Pitfalls + +| Situation | What to Watch For | Suggested Fix | +|-----------|------------------|---------------| +| **Low‑resolution receipt** | OCR confidence 0.8 से नीचे गिर जाती है | इमेज को प्री‑प्रोसेस करें (DPI बढ़ाएँ, शार्पन) भेजने से पहले | +| **Non‑English characters** | गलत भाषा enum | `Language.AutoDetect` उपयोग करें या सही भाषा निर्दिष्ट करें | +| **Large batch of receipts** | Rate‑limit त्रुटियाँ | एक्सपोनेंशियल बैक‑ऑफ़ लागू करें या Aspose से उच्च कोटा माँगें | +| **Missing fields** | कस्टम पार्सर `null` लौटाता है | फॉलबैक लॉजिक या रेगेक्स पैटर्न जोड़ें ताकि अधिक मजबूत एक्सट्रैक्शन हो सके | + +## Visual Overview + +![इमेज फ़ाइल → OCR क्लाइंट → JSON प्रतिक्रिया → कस्टम पार्सिंग → अंतिम JSON आउटपुट का प्रवाह दिखाने वाला आरेख](https://example.com/ocr-flow-diagram.png "इमेज को JSON में बदलें") + +*Alt text:* *इमेज को JSON में बदलने का प्रवाह आरेख जो इस ट्यूटोरियल में कवर किए गए चरणों को दर्शाता है।* + +## Recap + +हमने आपको दिखाया कि कैसे Aspose OCR Cloud के साथ **इमेज को JSON में बदलें**, रसीद में *टेक्स्ट कैसे पहचाना जाए* समझाया, **इमेज से टेक्स्ट निकालने** के तरीके दिखाए, और सब कुछ एक साफ़ **C# OCR ट्यूटोरियल** में संकलित किया जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +मुख्य बिंदु: + +- अपनी API कुंजी के साथ `CloudOcrClient` सेट अप करें। +- `RecognizeAsync` को कॉल करके सेवा से सीधे JSON पेलोड प्राप्त करें। +- वैकल्पिक रूप से उस पेलोड को अपने डेटा कॉन्ट्रैक्ट के अनुसार री‑शेप करें। + +## What’s Next? + +- **बैच प्रोसेसिंग:** रसीदों के फ़ोल्डर पर लूप चलाएँ और परिणामों को एकल JSON एरे में एकत्रित करें। +- **एडवांस्ड पार्सिंग:** रेगेक्स या छोटे NLP मॉडल का उपयोग करके लाइन आइटम, टैक्स, और डिस्काउंट निकालें। +- **इंटीग्रेशन:** अंतिम JSON को डेटाबेस, मैसेज क्यू, या Azure Function में पुश करें आगे की ऑटोमेशन के लिए। + +विभिन्न इमेज फ़ॉर्मैट (PNG, TIFF) के साथ प्रयोग करने में संकोच न करें या मोबाइल‑कैप्चर फ़ोटो पर **OCR के साथ रसीद प्रोसेस** फ्लो आज़माएँ। एक विश्वसनीय **इमेज को 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/hindi/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/hindi/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..6503172f2 --- /dev/null +++ b/ocr/hindi/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: एक छवि से जल्दी खोज योग्य PDF बनाएं। छवि से PDF उत्पन्न करना, छवि को + PDF में एम्बेड करना, TIF को PDF में बदलना, और Aspose के साथ C# में OCR का उपयोग + करके PDF बनाना सीखें। +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: hi +og_description: तुरंत खोज योग्य PDF बनाएं। यह ट्यूटोरियल दिखाता है कि कैसे इमेज से + PDF जनरेट करें, इमेज PDF एम्बेड करें, TIF को PDF में बदलें, और OCR का उपयोग करके + PDF C# बनाएं। +og_title: C# में खोज योग्य PDF बनाएं – चरण‑दर‑चरण मार्गदर्शिका +tags: +- C# +- OCR +- PDF generation +title: C# में सर्चेबल PDF बनाएं – पूर्ण गाइड +url: /hi/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में खोज योग्य PDF बनाएं – पूर्ण गाइड + +क्या आपको कभी स्कैन किए गए दस्तावेज़ से **create searchable PDF** बनाने की ज़रूरत पड़ी लेकिन शुरू करने का तरीका नहीं पता था? आप अकेले नहीं हैं; कई डेवलपर्स TIFF फ़ाइलों और OCR से निपटते समय इसी समस्या का सामना करते हैं। इस ट्यूटोरियल में हम एक व्यावहारिक समाधान दिखाएंगे जो आपको **generate PDF from image** करने, परिपूर्ण खोज योग्यता के लिए मूल चित्र को एम्बेड करने, और एक साफ़ **OCR to PDF C#** वर्कफ़्लो पूरा करने में मदद करेगा। + +हम सभी चीज़ों को कवर करेंगे, Aspose.OCR लाइब्रेरी को इंस्टॉल करने से लेकर मल्टी‑पेज TIFF जैसी किनारी स्थितियों को संभालने तक। अंत तक आपके पास एक तैयार‑चलाने‑योग्य प्रोग्राम होगा जो `input.tif` को पूरी तरह खोज योग्य `output.pdf` में बदल देगा। कोई बाहरी सेवा नहीं, कोई छिपा जादू नहीं—सिर्फ साधारण C# कोड जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## आपको क्या चाहिए + +- .NET 6.0 या बाद का (कोड .NET Framework 4.7+ पर भी काम करता है) +- Visual Studio 2022 (या कोई भी एडिटर जो आप पसंद करते हैं) +- एक सक्रिय Aspose.OCR लाइसेंस या एक मुफ्त ट्रायल कुंजी (NuGet पैकेज मूल्यांकन के लिए बिना कुंजी के भी काम करता है) +- एक नमूना TIFF इमेज (`input.tif`) जिसे आप किसी फ़ोल्डर में रख सकते हैं + +> **Pro tip:** अपनी इमेज फ़ाइलों को 10 MB से कम रखें ताकि बड़े बैच प्रोसेसिंग के दौरान मेमोरी स्पाइक से बचा जा सके। + +## चरण 1: Aspose.OCR स्थापित करें और प्रोजेक्ट सेट अप करें + +सबसे पहले, अपने प्रोजेक्ट में Aspose.OCR NuGet पैकेज जोड़ें। पैकेज मैनेजर कंसोल खोलें और चलाएँ: + +```powershell +Install-Package Aspose.OCR +``` + +यदि आप UI पसंद करते हैं, तो **Dependencies → Manage NuGet Packages** पर राइट‑क्लिक करें, *Aspose.OCR* खोजें, और **Install** पर क्लिक करें। + +**यह चरण क्यों महत्वपूर्ण है:** Aspose.OCR एक हाई‑परफ़ॉर्मेंस OCR इंजन और बिल्ट‑इन PDF एक्सपोर्टर बंडल करता है, इसलिए इमेज हैंडलिंग या PDF निर्माण के लिए अलग लाइब्रेरी की ज़रूरत नहीं पड़ती। + +### पूर्ण प्रोजेक्ट स्केलेटन + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note:** `YOUR_DIRECTORY` को अपने मशीन पर वास्तविक फ़ोल्डर पाथ से बदलें। + +## चरण 2: इमेज लोड करें – *Generate PDF from Image* आधार + +सोर्स फ़ाइल को लोड करना एक छोटा लेकिन महत्वपूर्ण कदम है। Aspose.OCR एक `ImageStream` की अपेक्षा करता है, जो फ़ाइल I/O को एब्स्ट्रैक्ट करता है और कई फ़ॉर्मैट (TIFF, PNG, JPEG, आदि) को सपोर्ट करता है। + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Why not just pass the path?** +`ImageStream` रैपर आंतरिक बफ़रिंग को संभालता है और OCR इंजन को बड़े मल्टी‑पेज TIFF को एक बार में पूरी फ़ाइल मेमोरी में लोड किए बिना प्रोसेस करने की अनुमति देता है। + +## चरण 3: PDF एक्सपोर्ट कॉन्फ़िगर करें – *Embed Image PDF* परिपूर्ण खोज योग्यता के लिए + +जब आप OCR परिणामों को PDF में एक्सपोर्ट करते हैं, तो आपके पास दो विकल्प होते हैं: केवल निकाला गया टेक्स्ट एम्बेड करें, या मूल इमेज को छिपी हुई टेक्स्ट लेयर के साथ एम्बेड करें। इमेज एम्बेड करने से स्कैन की विज़ुअल फ़िडेलिटी बनी रहती है और बाद में उपयोगकर्ता टेक्स्ट को सेलेक्ट या कॉपी कर सकते हैं। + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** यदि आप `EmbedOriginalImage` को `false` सेट करते हैं, तो परिणामी PDF छोटा होगा लेकिन मूल चित्र खो जाएगा—शुद्ध टेक्स्ट आर्काइव के लिए उपयोगी। + +## चरण 4: एक्सपोर्ट – *OCR to PDF C#* एक कॉल में + +Aspose.OCR भारी काम को एक‑लाइनर में कर देता है। `ExportToPdf` मेथड OCR चलाता है, छिपी हुई टेक्स्ट लेयर बनाता है, और अंतिम फ़ाइल लिखता है। + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### अपेक्षित परिणाम + +प्रोग्राम चलाने पर यह प्रिंट करेगा: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +`output.pdf` को किसी भी व्यूअर (Adobe Reader, Edge, आदि) में खोलें और टेक्स्ट सेलेक्ट करने की कोशिश करें—आपको मूल इमेज नीचे दिखेगी, जिससे पुष्टि होगी कि **create searchable pdf** ऑपरेशन सफल रहा। + +## चरण 5: PDF सत्यापित करें – त्वरित जांच जो आप स्वचालित कर सकते हैं + +जबकि एक फ़ाइल के लिए मैन्युअल निरीक्षण ठीक है, आप प्रोग्रामेटिक रूप से यह सुनिश्चित करना चाह सकते हैं कि PDF में टेक्स्ट लेयर मौजूद है। Aspose.PDF (एक सिस्टर लाइब्रेरी) दस्तावेज़ को पढ़ सकती है और टेक्स्ट निकाल सकती है: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +यदि आप एक ऑटोमेटेड sanity check चाहते हैं तो एक्सपोर्ट के बाद `VerifyPdfContainsText(pdfPath);` कॉल जोड़ें। + +## सामान्य समस्याएँ और उन्हें कैसे टालें + +| समस्या | कारण | समाधान | +|-------|------|--------| +| **बड़ी TIFF फ़ाइलों पर मेमोरी समाप्त** | फ़ाइल को एक बार में पूरी लोड करने से RAM समाप्त हो जाता है। | `ImageStream.FromFile` (जैसा दिखाया गया) का उपयोग करें और यदि आपके पास मल्टी‑पेज फ़ाइलें हैं तो पेज‑दर‑पेज प्रोसेस करें। | +| **लाइसेंस न होने पर वॉटरमार्क दिखता है** | इवैल्यूएशन मोड प्रत्येक पेज पर एक दिखाई देने वाला वॉटरमार्क जोड़ता है। | अपना Aspose.OCR लाइसेंस जल्दी लागू करें: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Linux पर गलत पाथ सेपरेटर** | हर्ड‑कोडेड `\` गैर‑Windows OS पर काम नहीं करता। | `Path.Combine` या रॉ स्ट्रिंग लिटेरल्स के साथ `/` का उपयोग करें। | +| **टेक्स्ट खोज योग्य नहीं** | `EmbedOriginalImage` को `false` सेट किया गया या OCR निष्क्रिय है। | `PdfExportOptions.EmbedOriginalImage = true` सुनिश्चित करें और OCR इंजन सही ढंग से इनिशियलाइज़ हो। | + +## बोनस: OCR के बिना TIF को PDF में बदलें (जब टेक्स्ट की आवश्यकता न हो) + +यदि आपको केवल **convert TIF to PDF** करने की ज़रूरत है और छिपी हुई टेक्स्ट लेयर नहीं चाहिए, तो आप OCR चरण को पूरी तरह छोड़ सकते हैं: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +यह ट्रिक स्कैन किए गए दस्तावेज़ों को आर्काइव करने के लिए उपयोगी है जहाँ खोज योग्यता आवश्यक नहीं है। + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +प्रोग्राम चलाएँ, `output.pdf` खोलें, और आप मूल TIFF की एक सटीक प्रतिलिपि के साथ एक छिपी हुई, चयन योग्य टेक्स्ट लेयर देखेंगे—बिल्कुल वही जो **create searchable pdf** का अर्थ है। + +## निष्कर्ष + +हमने अभी C# में एक पूर्ण **create searchable pdf** वर्कफ़्लो को कवर किया। एक कच्चे TIFF से शुरू करके हमने **generate pdf from image** किया, विज़ुअल फ़िडेलिटी के लिए **embed image pdf** चुना, और Aspose.OCR का उपयोग करके पूरा **ocr to pdf c#** पाइपलाइन प्रदर्शित किया। + +`PdfExportOptions` (कम्प्रेशन, PDF संस्करण, आदि) को अपनी ज़रूरत के अनुसार समायोजित करें या बैच प्रोसेसिंग के लिए कई इमेज को एक साथ जोड़ें। अगला कदम आप पासवर्ड प्रोटेक्शन, डिजिटल सिग्नेचर, या कई खोज योग्य PDFs को एक मास्टर डॉक्यूमेंट में मर्ज करने की खोज कर सकते हैं। + +क्या आपके पास इसको हजारों फ़ाइलों तक स्केल करने या इसे ASP.NET API में इंटीग्रेट करने के बारे में प्रश्न हैं? नीचे टिप्पणी करें या GitHub पर मुझे ping करें—हैप्पी कोडिंग! + +![खोज योग्य PDF उदाहरण](/images/searchable-pdf.png "खोज योग्य PDF उदाहरण") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/hindi/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..d18dedba2 --- /dev/null +++ b/ocr/hindi/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR का उपयोग करके C# में छवि से टेक्स्ट निकालें। जानें कि OCR + के लिए छवि कैसे लोड करें और GPU समर्थन के साथ TIFF फ़ाइलों से टेक्स्ट कैसे पहचानें। +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: hi +og_description: Aspose OCR के साथ C# में छवि से टेक्स्ट निकालें। यह ट्यूटोरियल दिखाता + है कि OCR के लिए छवि कैसे लोड करें और GPU एक्सेलेरेशन का उपयोग करके TIFF से टेक्स्ट + कैसे पहचानें। +og_title: C# में छवि से पाठ निकालें – पूर्ण OCR गाइड +tags: +- OCR +- C# +- Aspose +- GPU +title: C# में छवि से पाठ निकालें – पूर्ण OCR गाइड +url: /hi/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में छवि से टेक्स्ट निकालें – पूर्ण OCR गाइड + +Ever needed to **extract text from image** but weren’t sure which library would handle a gigantic TIFF without choking? You’re not alone. In many real‑world projects—think invoice digitization or archival of scanned books—the ability to load image for OCR and then recognize text from TIFF quickly becomes a make‑or‑break feature. + +In this guide we’ll walk through a hands‑on solution that does exactly that using Aspose OCR for .NET. By the end you’ll have a runnable C# console app that loads a high‑resolution scan, fires up GPU‑accelerated processing (with a graceful fallback), and spits out the plain‑text result. No missing pieces, no “see the docs” dead‑ends. + +## आपको क्या चाहिए + +- **.NET 6 या बाद का** (कोड किसी भी नवीनतम SDK के साथ संकलित होता है) +- **Aspose.OCR for .NET** NuGet पैकेज + `dotnet add package Aspose.OCR` +- एक **बड़ी TIFF** या कोई भी अन्य इमेज फ़ॉर्मेट जिसे आप OCR करना चाहते हैं + (उदाहरण में `large_scan.tif` उपयोग किया गया है) +- (वैकल्पिक) एक GPU जो CUDA 11+ का समर्थन करता हो – यदि आपके पास नहीं है, तो लाइब्रेरी स्वचालित रूप से CPU मोड में स्विच कर देगी। + +बस इतना ही। चलिए शुरू करते हैं। + +![Aspose OCR का उपयोग करके C# में छवि से टेक्स्ट निकालें](image-placeholder.png "Aspose OCR का उपयोग करके C# में छवि से टेक्स्ट निकालें") + +## चरण 1: छवि से टेक्स्ट निकालें – OCR इंजन को प्रारंभ करें + +कोई भी छवि प्रोसेस करने से पहले, आपको एक `OcrEngine` इंस्टेंस की आवश्यकता होती है। इंजन सभी सेटिंग्स रखता है जो पहचान प्रक्रिया को नियंत्रित करती हैं। + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**यह क्यों महत्वपूर्ण है:** +`ProcessingMode.Gpu` आधुनिक कार्ड पर पहचान समय में सेकंड बचा सकता है, लेकिन `ProcessingMode.Auto` सेट करना (या डिफ़ॉल्ट छोड़ना) उन वातावरणों में सुरक्षित है जहाँ GPU नहीं हो सकता। `GpuMemoryLimit` गार्ड एक व्यावहारिक टिप है—इसके बिना, बड़ी छवि सभी VRAM को हड़प सकती है और अन्य ऐप्स को क्रैश कर सकती है। + +## चरण 2: OCR के लिए छवि लोड करें – TIFF को मेमोरी में लाएँ + +अब जब इंजन तैयार है, हमें उसे वह चित्र देना है जिसे हम विश्लेषण करना चाहते हैं। Aspose `ImageStream.FromFile` प्रदान करता है जो फ़ॉर्मेट हैंडलिंग को सारांशित करता है। + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**आंतरिक रूप से क्या हो रहा है?** +`ImageStream.FromFile` फ़ाइल को एक स्ट्रीम में पढ़ता है और स्वचालित रूप से इमेज फ़ॉर्मेट (TIFF, PNG, JPEG, आदि) का पता लगाता है। यदि आप मल्टी‑पेज TIFFs के साथ काम कर रहे हैं, तो Aspose प्रत्येक पेज को एक अलग फ्रेम के रूप में लेगा; आवश्यकता पड़ने पर आप बाद में उन पर इटररेट कर सकते हैं। + +## चरण 3: TIFF से टेक्स्ट पहचानें – OCR इंजन चलाएँ + +छवि लोड होने के बाद, भारी काम शुरू होता है। `Recognize` मेथड एक `OcrResult` ऑब्जेक्ट लौटाता है जिसमें निकाला गया टेक्स्ट और कुछ उपयोगी मेटाडाटा फ़ील्ड्स होते हैं। + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**`Recognize` को केवल एक बार क्यों कॉल करें?** +क्योंकि इंजन पहली रन के बाद आंतरिक संरचनाओं को कैश कर लेता है, अधिकांश परिदृश्यों के लिए एक कॉल पर्याप्त है। यदि आपको कई पेज प्रोसेस करने हैं, तो वही `OcrEngine` इंस्टेंस पुनः उपयोग करें—यह GPU कॉन्टेक्स्ट को पुनः‑प्रारंभ करने के ओवरहेड को बचाता है। + +## चरण 4: परिणाम दिखाएँ – निकाले गए टेक्स्ट को प्रदर्शित करें + +अंत में, हम पहचाने गए स्ट्रिंग को कंसोल में आउटपुट करते हैं। वास्तविक एप्लिकेशन में आप संभवतः इसे डेटाबेस या फ़ाइल में लिखेंगे। + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**अपेक्षित आउटपुट:** +यदि `large_scan.tif` में एक प्रिंटेड इनवॉइस है, तो आप कुछ इस तरह देखेंगे: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +सटीक लेआउट स्रोत छवि पर निर्भर करता है, लेकिन मुख्य बात यह है कि अब आपके पास **छवि से टेक्स्ट निकालें** परिणाम तैयार हैं जो आगे की प्रोसेसिंग के लिए उपयोगी हैं। + +## चरण 5: समस्या निवारण और किनारे के मामलों + +### GPU नहीं मिला? + +यदि आप सैंपल को ऐसे मशीन पर चलाते हैं जिसमें संगत GPU नहीं है, तो `ProcessingMode.Auto` उपयोग करने पर इंजन चुपचाप CPU पर स्विच हो जाता है। CPU मोड को स्पष्ट रूप से लागू करने के लिए, पहले की लाइन को इससे बदलें: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### मेमोरी‑भारी TIFFs + +बहुत बड़े स्कैन (जैसे, 10 000 × 10 000 px) अभी भी हमारे द्वारा सेट 1 GB GPU सीमा को पार कर सकते हैं। ऐसे में, या तो `GpuMemoryLimit` बढ़ाएँ (यदि आपके पास अतिरिक्त VRAM है) या इंजन को फीड करने से पहले छवि को डाउनस्केल करें: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### मल्टी‑पेज दस्तावेज़ + +यदि आपके TIFF में कई पेज हैं, तो उन पर लूप करें: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### भाषा और फ़ॉन्ट समर्थन + +Aspose OCR लैटिन‑आधारित स्क्रिप्ट्स को स्वचालित रूप से पहचानता है, लेकिन Cyrillic, Arabic, या कस्टम फ़ॉन्ट्स के लिए आपको भाषा पैक प्रदान करना पड़ सकता है: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## प्रो टिप्स और सर्वोत्तम प्रथाएँ + +- **इंजन को पुनः उपयोग करें**: प्रत्येक छवि के लिए नया `OcrEngine` बनाना उल्लेखनीय लेटेंसी जोड़ता है। +- **बैच प्रोसेसिंग**: जब दर्जनों TIFFs को संभाल रहे हों, उन्हें कतारबद्ध करें और समानांतर थ्रेड्स में प्रोसेस करें—सिर्फ GPU मेमोरी कंटेंशन का ध्यान रखें। +- **आउटपुट वैधता**: OCR पूर्ण नहीं है; स्पष्ट गलतियों को पकड़ने के लिए `ocrResult.Text` पर सरल स्पेल‑चेक या रेगेक्स वैलिडेशन चलाएँ। +- **परफॉर्मेंस लॉग**: अपने वातावरण में GPU एक्सेलेरेशन के अतिरिक्त सेटअप के मूल्य को तय करने के लिए `Recognize` से पहले और बाद में `Stopwatch` के बीते समय को मापें। + +## निष्कर्ष + +अब आपके पास एक पूर्ण, एंड‑टू‑एंड उदाहरण है जो Aspose OCR का उपयोग करके C# में **छवि से टेक्स्ट निकालता** है। OCR के लिए छवि लोड करके, इंजन को TIFF से टेक्स्ट पहचानने के लिए बुलाकर, और GPU बनाम CPU परिदृश्यों को संभालकर, यह ट्यूटोरियल आपको एक प्रोडक्शन‑रेडी आधार देता है जिसे आप इनवॉइस, पासपोर्ट या किसी भी स्कैन्ड दस्तावेज़ के लिए अनुकूलित कर सकते हैं। + +अगला क्या? TIFF को मल्टी‑पेज PDF से बदलें, कस्टम भाषा पैक्स के साथ प्रयोग करें, या आउटपुट को स्वचालित डेटा एक्सट्रैक्शन के लिए नेचुरल‑लैंग्वेज प्रोसेसिंग पाइपलाइन में पाइप करें। संभावनाएँ अनंत हैं—हैप्पी कोडिंग! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/hindi/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..8888f62b5 --- /dev/null +++ b/ocr/hindi/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR बैच प्रोसेसिंग का उपयोग करके C# में TIFF फ़ाइलों से टेक्स्ट + निकालें। जानें कि बैच OCR को प्रभावी ढंग से कैसे प्रोसेस करें और वास्तविक‑समय प्रगति + प्रतिक्रिया प्राप्त करें। +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: hi +og_description: Aspose OCR बैच प्रोसेसिंग का उपयोग करके C# में TIFF फ़ाइलों से टेक्स्ट + निकालें। यह ट्यूटोरियल चरण‑दर‑चरण दिखाता है कि बैच OCR कैसे प्रोसेस करें और प्रगति + कैसे पढ़ें। +og_title: C# में बैच OCR के साथ TIFF से टेक्स्ट निकालें – पूर्ण मार्गदर्शिका +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C# में बैच OCR के साथ TIFF से टेक्स्ट निकालें – पूर्ण गाइड +url: /hi/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from TIFF – Batch OCR Complete Guide + +क्या आपको कभी **TIFF** फ़ाइलों से टेक्स्ट निकालने की ज़रूरत पड़ी है लेकिन बैच‑प्रोसेसिंग हिस्से में अटक गए? आप अकेले नहीं हैं। कई दस्तावेज़‑ऑटोमेशन प्रोजेक्ट्स में, दर्जनों हाई‑रेज़ोल्यूशन TIF इमेज़ को संभालना जल्दी ही एक बाधा बन सकता है—विशेषकर जब आपको प्रगति पर रीयल‑टाइम फीडबैक चाहिए। + +अच्छी खबर? Aspose OCR के साथ आप **process batch OCR** कुछ ही लाइनों में कर सकते हैं, रीयल‑टाइम प्रोग्रेस इवेंट्स प्राप्त कर सकते हैं, और प्रत्येक इमेज़ के लिए पहचाना गया टेक्स्ट आउटपुट कर सकते हैं। इस ट्यूटोरियल में हम एक तैयार‑चलाने‑योग्य C# कंसोल ऐप को देखेंगे जो बिल्कुल यही करता है। + +हम वह सब कवर करेंगे जो आपको चाहिए: आवश्यक पैकेज, प्रत्येक लाइन का महत्व, फ़ाइलों के गायब होने जैसे एज‑केस, और परिणामों को कैसे वेरिफ़ाई करें। अंत तक आप इस सैंपल को अपने प्रोजेक्ट में डालकर तुरंत TIFF इमेज़ से टेक्स्ट निकालना शुरू कर सकेंगे। + +## What You’ll Need + +- **.NET 6 या बाद का संस्करण** (कोड .NET Core पर भी कम्पाइल होता है) +- **Aspose.OCR for .NET** NuGet पैकेज – `Install-Package Aspose.OCR` +- एक फ़ोल्डर जिसमें कुछ **TIFF** इमेज़ हों जिन्हें आप पढ़ना चाहते हैं (डेमो में `img1.tif`, `img2.tif`, `img3.tif` उपयोग किए गए हैं) +- कोई भी IDE – Visual Studio, Rider, या VS Code चलेगा + +कोई अतिरिक्त कॉन्फ़िगरेशन आवश्यक नहीं है; लाइब्रेरी अपने OCR इंजन के साथ आती है, इसलिए आपको बाहरी नेटिव बाइनरीज़ इंस्टॉल करने की ज़रूरत नहीं पड़ेगी। + +--- + +## Step 1 – Create the OCR Engine Instance + +पहला काम है `OcrEngine` को इनिशियलाइज़ करना। इसे ऐसे समझें जैसे वह दिमाग जो प्रत्येक पिक्सेल को विश्लेषित करके अक्षरों में बदलता है। + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Why this matters:** +> The engine holds internal language models and settings (e.g., DPI, language). Creating it once and re‑using it for a batch is far more efficient than instantiating a new engine per image. + +--- + +## Step 2 – Hook Up Real‑Time Progress Events + +यदि आप दर्जनों TIFF फ़ाइलें प्रोसेस कर रहे हैं, तो एक प्रोग्रेस इंडिकेटर आपको यह जानने से बचा सकता है कि एप्लिकेशन अटक तो नहीं गया। + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` इवेंट प्रत्येक इमेज़ के समाप्त होने के बाद फायर होता है, और आपको `Current`, `Total`, और `Percentage` देता है। यह **process batch OCR** फ़ीडबैक लूप है जिसे अधिकांश डेवलपर्स लागू करना भूल जाते हैं। + +--- + +## Step 3 – Build a List of Image Streams + +Aspose.OCR `ImageStream` ऑब्जेक्ट्स के साथ काम करता है। सबसे आसान तरीका है प्रत्येक TIFF को डिस्क से लोड करना। + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tip:** +> यदि आपके पास डायनामिक फ़ोल्डर है, तो हार्ड‑कोडेड लिस्ट को `Directory.GetFiles(path, "*.tif")` और `Select(ImageStream.FromFile)` से बदलें – इस तरह आप वास्तव में **process batch OCR** बिना मैन्युअल अपडेट के कर पाएँगे। + +--- + +## Step 4 – Run the Batch OCR Process + +अब असली काम होता है। `ProcessBatch` एक रीड‑ऑनली लिस्ट `OcrResult` ऑब्जेक्ट्स लौटाता है, जिसमें निकाला गया टेक्स्ट और कॉन्फिडेंस स्कोर होते हैं। + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Why this is efficient:** +> The engine re‑uses the same language model across all images, dramatically reducing memory churn compared to single‑image calls. + +--- + +## Step 5 – Display or Store the Recognised Text + +अंत में, परिणामों पर इटरैट करें। वास्तविक प्रोजेक्ट में आप इन्हें डेटाबेस या JSON फ़ाइल में लिख सकते हैं, लेकिन इस डेमो में हम बस कंसोल पर प्रिंट करेंगे। + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Expected console output** (truncated for brevity): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +यदि कोई इमेज़ फेल हो जाती है, तो `result.Text` खाली स्ट्रिंग रहेगा, और `ProgressChanged` इवेंट अभी भी उस आइटम को प्रोसेस्ड के रूप में रिपोर्ट करेगा—आप अलग से फेल्योर को लॉग कर सकते हैं। + +--- + +## The Progress Event Handler (Full Code) + +इस मेथड को `BatchDemo` क्लास के अंदर कहीं भी रखें—आदर्श रूप से `Main` के बाद। + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> यदि आप डेस्कटॉप ऐप बना रहे हैं तो इस आउटपुट को UI प्रोग्रेस बार में रीडायरेक्ट करें; वही इवेंट WinForms, WPF, या यहाँ तक कि ASP.NET Core SignalR नोटिफिकेशन्स के लिए भी काम करता है। + +--- + +## Full, Ready‑to‑Run Sample + +सब कुछ मिलाकर, यहाँ पूरा प्रोग्राम है जिसे आप नई कंसोल प्रोजेक्ट में कॉपी‑पेस्ट कर सकते हैं। + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +फ़ाइल को `Program.cs` के रूप में सेव करें, `dotnet add package Aspose.OCR` चलाएँ, `YOUR_DIRECTORY` को वास्तविक पाथ से बदलें, और **Ctrl+F5** दबाएँ। आपको प्रोग्रेस नंबर और प्रत्येक TIFF के लिए निकाला गया टेक्स्ट दिखना चाहिए। + +--- + +## Handling Common Edge Cases + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **Missing or corrupted TIFF** | `ImageStream.FromFile` throws `FileNotFoundException` or `ArgumentException`. | Wrap the list creation in a `try/catch` and skip invalid files, logging the issue. | +| **Very large images ( >10 MP )** | OCR may consume a lot of RAM and slow down. | Reduce DPI before processing: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Non‑English text** | Default language model is English. | Set `ocrEngine.Language = Language.Spanish;` (or any supported language). | +| **Need to save results** | Console output isn’t persistent. | Write `result.Text` to a `.txt` file using `File.WriteAllText`. | + +इन परिदृश्यों को संभालने से आपका समाधान मजबूत बनता है और यह दर्शाता है कि आपने केवल हॅपी पाथ से आगे सोचा है। + +--- + +## Next Steps & Related Topics + +- **Extract text from PDF** – समान API, बस `ImageStream` को `PdfDocument` से बदलें। +- **Parallel batch OCR** – बड़े वर्कलोड के लिए, अलग‑अलग थ्रेड्स पर कई `OcrEngine` इंस्टेंस चलाएँ; लाइसेंसिंग लिमिट्स का ध्यान रखें। +- **Post‑processing** – OCR आउटपुट को स्पेल‑चेकर या रेगेक्स के ज़रिए क्लीन करें ताकि सामान्य OCR आर्टिफैक्ट्स हट जाएँ। + +इन सभी एक्सटेंशन का आधार अभी भी **process batch OCR** ही है और इन्हें क्रमिक रूप से जोड़ा जा सकता है। + +--- + +## Conclusion + +हमने दिखाया कि कैसे Aspose OCR के साथ C# में **process batch OCR** करके **TIFF** फ़ाइलों से टेक्स्ट प्रभावी रूप से निकाला जा सकता है। सैंपल एक ही इंजन बनाता है, प्रोग्रेस इवेंट्स को सब्सक्राइब करता है, इमेज़ स्ट्रीम्स की लिस्ट लोड करता है, बैच चलाता है, और प्रत्येक परिणाम को प्रिंट करता है। + +अब आप इस आउटपुट को डेटाबेस में इंटीग्रेट कर सकते हैं, सर्चेबल PDF बना सकते हैं, या टेक्स्ट को डाउनस्ट्रीम NLP पाइपलाइन में फीड कर सकते हैं। संभावनाएँ असीम हैं—भाषा सेटिंग्स, DPI ट्यूनिंग, और पैरेलल एक्सीक्यूशन के साथ प्रयोग करें ताकि आपका वर्कलोड पूरी तरह फिट हो सके। + +कोई सवाल है या आपने बैच को कस्टमाइज़ किया है? नीचे कमेंट करें, और हैप्पी कोडिंग! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/hindi/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..8e68a9ccf --- /dev/null +++ b/ocr/hindi/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR का उपयोग करके PNG से टेक्स्ट को पहचानना और C# में इमेज से + टेक्स्ट निकालना सीखें। इसमें इमेज फ़ाइल लोड करने के C# चरण, स्पेल‑चेकिंग और पूरा + कोड शामिल है। +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: hi +og_description: C# के साथ PNG से टेक्स्ट को आसानी से पहचानें। इमेज फ़ाइल लोड करने, + इमेज से टेक्स्ट निकालने और स्पेल‑चेक चलाने के लिए इस चरण‑दर‑चरण गाइड का पालन करें। +og_title: C# में PNG से टेक्स्ट पहचानें – पूर्ण OCR ट्यूटोरियल +tags: +- OCR +- C# +- Aspose +title: C# में PNG से टेक्स्ट पहचानें – पूर्ण OCR और स्पेल‑चेक गाइड +url: /hi/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNG से टेक्स्ट पहचानें – पूर्ण C# OCR और स्पेल‑चेक ट्यूटोरियल + +क्या आपको कभी **PNG से टेक्स्ट पहचानने** की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि कौन सी लाइब्रेरी चुनें? आप अकेले नहीं हैं; कई डेवलपर्स पहली बार इमेज‑आधारित डेटा एक्सट्रैक्शन करते समय इस दुविधा में फँस जाते हैं। अच्छी खबर? Aspose OCR के साथ आप C# में इमेज फ़ाइल लोड कर सकते हैं, टेक्स्ट निकाल सकते हैं, और यहाँ तक कि बिल्ट‑इन स्पेल चेकर चला सकते हैं—सिर्फ कुछ लाइनों में। + +इस गाइड में हम पूरी प्रक्रिया को कवर करेंगे: PNG लोड करना, OCR इंजन को कॉल करना, और अंत में गलत शब्दों की जाँच करना। अंत तक आप **C# प्रोजेक्ट्स में इमेज से टेक्स्ट निकालने** में सक्षम हो जाएंगे बिना बिखरे हुए डॉक्यूमेंट्स की तलाश किए। पहले से OCR का कोई अनुभव आवश्यक नहीं, बस एक .NET डेवलपमेंट एनवायरनमेंट चाहिए। + +## What You’ll Need + +- **.NET 6.0** (या कोई भी नया .NET संस्करण) – API .NET Core और Framework दोनों में समान काम करता है। +- **Aspose.OCR for .NET** NuGet पैकेज – इसे `dotnet add package Aspose.OCR` कमांड से इंस्टॉल करें। +- एक **PNG इमेज** जिसमें पढ़ने योग्य टेक्स्ट हो (जैसे, `letter.png` जिसे आप किसी फ़ोल्डर में रखेंगे)। +- एक कोड एडिटर या IDE (Visual Studio, VS Code, Rider—जो भी पसंद हो)। + +बस इतना ही। कोई अतिरिक्त OCR इंजन नहीं, कोई नेटिव DLL नहीं, सिर्फ एक साफ़ मैनेज्ड पैकेज। + +--- + +## Step 1: Load the PNG Image File in C# + +OCR इंजन कुछ भी करने से पहले उसे इमेज की स्ट्रीम चाहिए। Aspose `ImageStream.FromFile` प्रदान करता है, जो फ़ाइल‑सिस्टम की जटिलताओं को एब्स्ट्रैक्ट करता है। + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** यदि आपकी इमेज रिसोर्स के रूप में एम्बेडेड है या वेब रिक्वेस्ट से आती है, तो आप `ImageStream.FromBytes(byte[])` इस्तेमाल कर सकते हैं—फ़ाइल सिस्टम को छूने की ज़रूरत नहीं। + +### Why loading matters + +इमेज को सही तरीके से लोड करने से OCR इंजन को वही पिक्सेल डेटा मिलता है जिसकी उसे आवश्यकता है। एक करप्ट स्ट्रीम `Recognize` को एक्सेप्शन थ्रो कराएगी, और बाद में डिबगिंग में बहुत समय बर्बाद होगा। + +--- + +## Step 2: Initialize the OCR Engine + +`OcrEngine` इंस्टेंस बनाना सस्ता है, लेकिन आप भाषा या एक्यूरेसी सेटिंग्स को विशेष उपयोग‑केस (जैसे, मल्टी‑लैंग्वेज डॉक्यूमेंट) के लिए ट्यून कर सकते हैं। डिफ़ॉल्ट कंस्ट्रक्टर अंग्रेज़ी टेक्स्ट के लिए ठीक काम करता है। + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Why an engine instance? + +इंजन कॉन्फ़िगरेशन (भाषा, प्री‑प्रोसेसिंग फ़िल्टर आदि) को रखता है। इमेज से कॉन्फ़िगरेशन को अलग करके आप एक ही इंजन को कई फ़ाइलों के लिए री‑यूज़ कर सकते हैं—बैच प्रोसेसिंग के लिए बढ़िया। + +--- + +## Step 3: Recognize Text from the PNG + +अब जादू शुरू होता है। `Recognize` एक `OcrResult` ऑब्जेक्ट रिटर्न करता है जिसमें रॉ स्ट्रिंग, कॉन्फिडेंस स्कोर, और अन्य जानकारी होती है। + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Expected output** (मान लीजिए `letter.png` में “Hello World!” लिखा है): + +``` +=== OCR Output === +Hello World! +``` + +यदि इमेज में कई लाइन्स हैं, तो रिज़ल्ट लाइन ब्रेक्स को बरकरार रखता है, जिससे डाउनस्ट्रीम प्रोसेसिंग आसान हो जाती है। + +### Edge case: low‑resolution PNGs + +यदि OCR रिज़ल्ट गड़बड़ दिखे, तो इमेज को अप‑स्केल करने या `ocrEngine.PreprocessingOptions` को एडजस्ट करने पर विचार करें। लो DPI वाली इमेज अक्सर डिटेल खो देती हैं, जिस पर इंजन निर्भर करता है। + +--- + +## Step 4: Run the Built‑In Spell Checker + +Aspose OCR एक हल्का स्पेल‑चेकिंग मॉड्यूल प्रदान करता है जो सीधे OCR रिज़ल्ट पर काम करता है। यह स्टेप आपको “H3llo” जैसी मिस‑रिकग्निशन को “Hello” में बदलने में मदद करता है। + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Sample output** (यदि OCR ने “World” को “W0rld” पढ़ लिया): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Why spell checking? + +OCR कभी भी 100 % परफेक्ट नहीं होता, खासकर जब बैकग्राउंड नॉइज़ी हो। एक त्वरित स्पेल‑चेक स्पष्ट त्रुटियों को फ़िल्टर कर सकता है, इससे पहले कि आप टेक्स्ट को आगे की एनालिटिक्स या डेटाबेस में फीड करें। + +--- + +## Step 5: Put It All Together – Full Working Example + +नीचे पूरा, तैयार‑से‑चलाने वाला प्रोग्राम दिया गया है। इसे एक नए कंसोल प्रोजेक्ट में कॉपी‑पेस्ट करें, इमेज पाथ को एडजस्ट करें, और **F5** दबाएँ। + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Running the demo** OCR टेक्स्ट को प्रिंट करता है और उसके बाद कोई भी स्पेलिंग सुझाव दिखाता है। यह किसी भी PNG पर काम करता है जिसमें स्पष्ट, प्रिंटेड अंग्रेज़ी टेक्स्ट हो। अन्य भाषाओं के लिए, बस `ocrEngine.Language` को उपयुक्त भाषा पर सेट करें। + +--- + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| *Can I process JPEG or BMP files?* | बिल्कुल—`ImageStream.FromFile` Aspose द्वारा सपोर्ट किए गए किसी भी फॉर्मेट (PNG, JPEG, BMP, TIFF) को स्वीकार करता है। | +| *What if the image is in a memory stream?* | `ImageStream.FromBytes(byteArray)` या `ImageStream.FromStream(stream)` इस्तेमाल करें। | +| *Is the spell checker language‑aware?* | हाँ, यह OCR इंजन पर सेट की गई भाषा का सम्मान करता है। | +| *How do I improve accuracy on skewed images?* | `ocrEngine.PreprocessingOptions.Deskew = true;` को `Recognize` कॉल करने से पहले एनेबल करें। | +| *Do I need a license for Aspose.OCR?* | फ्री ट्रायल 100 पेज तक काम करता है। प्रोडक्शन के लिए लाइसेंस प्राप्त करें ताकि वॉटरमार्क हट सके। | + +--- + +## Next Steps – Going Beyond Basic OCR + +अब जब आप **PNG से टेक्स्ट पहचान** और **C# में इमेज फ़ाइल लोड** कर सकते हैं, तो इन एक्सटेंशन पर विचार करें: + +1. **Batch processing** – PNG की डायरेक्टरी पर लूप चलाएँ और प्रत्येक OCR रिज़ल्ट को अलग `.txt` फ़ाइल में लिखें। +2. **Integration with Azure Cognitive Services** – Aspose OCR को क्लाउड‑बेस्ड ट्रांसलेशन API के साथ मिलाकर मल्टी‑लैंग्वेज पाइपलाइन बनाएं। +3. **Structured data extraction** – `recognizedText` पर रेगुलर एक्सप्रेशन इस्तेमाल करके डेट्स, इनवॉइस नंबर, या एड्रेस जैसी स्ट्रक्चर्ड जानकारी निकालें। +4. **Performance tuning** – बड़े वॉल्यूम के लिए एक ही `OcrEngine` इंस्टेंस री‑यूज़ करें और मल्टी‑थ्रेडिंग एनेबल करें। + +इनमें से प्रत्येक कोर स्टेप्स पर आधारित है, जिससे आप साधारण इमेज को उपयोगी डेटा में बदल सकते हैं। + +--- + +## Conclusion + +हमने एक पूर्ण, एंड‑टू‑एंड उदाहरण के माध्यम से दिखाया कि कैसे **PNG से टेक्स्ट पहचान** C# में की जाती है, **इमेज फ़ाइल लोड** सही तरीके से की जाती है, और फिर **इमेज से टेक्स्ट एक्सट्रैक्ट** करते समय स्पेलिंग एरर को पकड़ा जाता है। कोड सेल्फ‑कंटेन्ड है, व्याख्याएँ “कैसे” और “क्यों” दोनों को कवर करती हैं, और अब आपके पास किसी भी 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 0fd2ef8d0..5144c18d6 100644 --- a/ocr/hongkong/net/ocr-configuration/_index.md +++ b/ocr/hongkong/net/ocr-configuration/_index.md @@ -60,6 +60,8 @@ Extracting OCR 意味著將影像(或影像集合)傳遞給 Aspose.OCR,該 使用 Aspose.OCR for .NET 釋放強大的 OCR 功能。將文字無縫地從圖像中提取。 ### [OCR 影像辨識中對清單檔案的 OCR 操作](./ocr-operation-with-list/) 釋放 Aspose.OCR for .NET 的潛能。輕鬆實現清單的 OCR 影像辨識。提升應用程式的效率和資料提取速度。 +### [如何在 C# 中停用 OCR – 離線 Aspose OCR 指南](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +說明如何在 C# 應用程式中關閉 OCR 功能,使用離線 Aspose OCR 方案。 ### 常見用例 - **Extract text images** 從掃描發票中擷取文字,以實現自動化會計。 @@ -93,4 +95,4 @@ Extracting OCR 意味著將影像(或影像集合)傳遞給 Aspose.OCR,該 {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/hongkong/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..9678b861a --- /dev/null +++ b/ocr/hongkong/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-04-11 +description: 學習如何在 Aspose OCR for C# 中停用 OCR,以離線執行、在無網路情況下從圖像提取文字,並正確載入圖像進行 OCR。 +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: zh-hant +og_description: 如何在 Aspose OCR for C# 中停用 OCR 並離線執行,無需網路即可從圖像提取文字,並輕鬆載入圖像進行 OCR。 +og_title: 如何在 C# 中停用 OCR – 離線 Aspose OCR 指南 +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: 如何在 C# 中停用 OCR – 離線 Aspose OCR 指南 +url: /zh-hant/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中停用 OCR – 離線 Aspose OCR 指南 + +有沒有想過在需要徹底離線的情況下**如何停用 OCR**?也許你正在開發一個無法依賴網路連線的安全桌面應用程式,或只是想避免意外的下載。無論哪種情況,好消息是 Aspose OCR 允許你關閉自動資源下載,指向本機資料夾,讓所有資源都保留在本地。在本教學中,你還會看到如何**從影像檔案中擷取文字**以及正確**載入影像以進行 OCR**,全程不會出現問題。 + +我們將逐步示範一個完整、可直接執行的範例,從初始化引擎到輸出辨識出的日文文字。沒有外部文件、沒有隱藏的魔法;只有純粹的 C# 程式碼,你今天就能放入專案中使用。完成後,你將了解為何停用自動下載功能很重要、如何設定資源路徑,以及需要留意哪些陷阱。 + +## 前置條件 + +- .NET 6.0(或任何較新的 .NET 版本)已安裝於你的機器上。 +- Aspose.OCR for .NET NuGet 套件(`Install-Package Aspose.OCR`)。 +- 一個已經包含所需語言資源的資料夾(例如日文模型)。 +- 一個想要執行 OCR 的影像檔(`japan_doc.png`)。 + +如果缺少語言套件,請從 Aspose 入口網站下載一次,解壓縮到類似 `AsposeOCRResources` 的資料夾,即可完成設定。停用自動下載功能後,將不會再有任何下載發生。 + +![如何離線停用 OCR](/images/how-to-disable-ocr.png "如何停用 OCR 示意圖") + +## 步驟 1 – 建立 OCR 引擎實例 + +首先要做的事是實例化 `OcrEngine`。可以把這個物件想像成讀取影像的“大腦”。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **為何重要:** 沒有引擎就無法進行任何設定。此物件保存所有設定,包括告訴函式庫是否可以連上網路的關鍵旗標。 + +## 步驟 2 – 停用自動資源下載 + +預設情況下,Aspose OCR 會即時嘗試下載缺少的語言檔案。為了保持離線,將 `AutoDownloadResources` 開關設為 `false`。 + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **專業提示:** 關閉此功能不僅確保隱私,還能加快首次辨識的速度,因為引擎不會浪費時間檢查更新。 + +## 步驟 3 – 指向本機資源資料夾 + +現在告訴引擎預先下載好的語言套件所在的位置。這就是在前置條件中設定的路徑。 + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **可能會發生什麼問題?** 若路徑錯誤或缺少必要的語言檔案,引擎會拋出 `ResourceNotFoundException`。請再次確認資料夾名稱正確,且日文模型(`jpn.traineddata`)已存在。 + +## 步驟 4 – 選取本機語言模型 + +選擇實際已在磁碟上的語言模型。在本例中我們使用日文,但你可以將 `Language.Japanese` 替換為任何已下載的其他語言。 + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **特殊情況:** 某些語言需要額外的字典(例如中文)。請確保這些輔助檔案也放在同一資源資料夾內。 + +## 步驟 5 – 載入影像以進行 OCR + +這裡是我們**載入影像以進行 OCR**的地方。`ImageStream.FromFile` 方法會將檔案讀入 Aspose 可處理的串流。 + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **提示:** 支援的格式包括 PNG、JPEG、BMP 與 TIFF。若需處理 PDF,請先將每頁轉為影像。 + +## 步驟 6 – 執行辨識程序 + +現在引擎會實際讀取像素,並嘗試將其轉換為文字。 + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **為何此步驟可能較慢:** OCR 需要大量 CPU,尤其是高解析度影像。若在意效能,可考慮在辨識前先縮小影像尺寸。 + +## 步驟 7 – 輸出擷取的文字 + +最後,我們**從影像中擷取文字**並將其印到主控台。 + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +執行程式後,應會顯示 `japan_doc.png` 中的日文字符。若設定正確,主控台上會看到一段乾淨的 Unicode 文字區塊。 + +### 預期輸出 + +``` +これはサンプルの日本語テキストです。 +``` + +(實際輸出會依影像內容而異。) + +## 常見陷阱與避免方法 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **缺少語言檔案** | `AutoDownloadResources` 為 false,導致引擎無法下載檔案。 | 確認 `ResourcesPath` 指向包含 `jpn.traineddata` 的資料夾。 | +| **影像路徑不正確** | `ImageStream.FromFile` 拋出 `FileNotFoundException`。 | 使用絕對路徑或確保工作目錄設定正確。 | +| **不支援的影像格式** | Aspose 只支援特定的影像格式。 | 在呼叫 `FromFile` 前將影像轉為 PNG 或 JPEG。 | +| **大型影像導致記憶體不足** | OCR 會將整張影像載入記憶體。 | 調整影像大小或分割影像,或提升程式的記憶體上限。 | + +## 擴充範例 + +- **批次處理:** 迭代目錄中的影像,呼叫相同的辨識程式,並將每個結果寫入獨立的 `.txt` 檔案。 +- **不同語言:** 在放置相應資源檔後,將 `Language.Japanese` 替換為 `Language.English`(或其他語言)。 +- **自訂前處理:** 使用 Aspose.Imaging 在 OCR 前進行去斜或提升對比度,以獲得更高的辨識準確度。 + +## 結論 + +現在你已了解如何在 Aspose OCR for C# 中**停用 OCR**,並完全離線執行。只要將 `AutoDownloadResources` 設為 `false`、指向本機資源資料夾,並正確**載入影像以進行 OCR**,就能可靠地**從影像中擷取文字**,而不會連接到網路。此方式非常適合安全環境、CI 流程或任何網路存取受限的情境。 + +準備好下一步了嗎?試著處理整個掃描 PDF 資料夾、實驗不同的語言套件,或將 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/_index.md b/ocr/hongkong/net/ocr-optimization/_index.md index c078585c2..27646a05f 100644 --- a/ocr/hongkong/net/ocr-optimization/_index.md +++ b/ocr/hongkong/net/ocr-optimization/_index.md @@ -72,6 +72,8 @@ weight: 25 使用 Aspose.OCR for .NET 增強 OCR 精度,校正拼寫、客製化字典,輕鬆實現無誤的文字辨識。 ### [在 OCR 圖像辨識中將多頁結果儲存為文件](./save-multipage-result-as-document/) 解鎖 Aspose.OCR for .NET 的潛能,透過本完整步驟教學,輕鬆將多頁 OCR 結果儲存為文件。 +### [如何使用 Aspose OCR 在 C# 中提升 OCR 準確度](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +學習在 C# 應用程式中使用 Aspose OCR 的技巧與最佳實踐,提升文字辨識的精確度與效能。 ## 常見問題 diff --git a/ocr/hongkong/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/hongkong/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..f84742035 --- /dev/null +++ b/ocr/hongkong/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: 學習如何在 C# 中使用 Aspose OCR 識別 JPG 文字、校正圖像傾斜及去除噪點,以提升 OCR 效能。 +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: zh-hant +og_description: 探索如何透過辨識 JPG 文字、校正影像傾斜與去除噪點來提升 OCR 效能——完整 C# 教學。 +og_title: 如何在 C# 中使用 Aspose OCR 提升文字辨識準確度 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: 如何在 C# 中使用 Aspose OCR 提升 OCR 準確度 +url: /zh-hant/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 Aspose OCR 提升 OCR 準確度 + +有沒有想過 **如何提升 OCR** 的結果,當你的掃描檔看起來更像抽象藝術而不是可讀文字時?你並不是唯一的困擾者。在許多實務專案——例如發票、收據或手寫筆記——中,來源影像常常是傾斜的、顆粒感的,或是雜訊太多。好消息是?Aspose OCR 提供了一系列前處理參數,能把這些雜亂的影像變成乾淨、機器可讀的字元。在本教學中,我們將示範一個完整、可執行的範例,說明 **如何提升 OCR**,包括 **從 JPG 辨識文字**、校正圖片傾斜,以及去除不必要的雜訊。 + +> *小技巧:* 若跳過前處理,你很可能會得到像密碼填字遊戲般的亂碼輸出。讓我們避免這種情況。 + +![如何透過 Aspose OCR 前處理提升 OCR 效能](https://example.com/ocr-preprocess.png "如何透過 Aspose OCR 前處理提升 OCR 效能") + +## 你將學到什麼 + +在接下來的幾分鐘內,你會看到: + +1. 如何為取得最佳準確度而設定 Aspose OCR 引擎。 +2. **從 JPG 辨識文字** 所需的完整程式碼。 +3. 為什麼啟用 *AutoDeskew*(自動校正傾斜)與 *RemoveNoise*(去除雜訊)很重要,以及如何微調它們。 +4. 如何 **從影像檔案中擷取文字**,而不必自行撰寫過濾器。 +5. 常見陷阱(檔案遺失、不支援的格式)以及快速解決方法。 + +完成後,你將擁有一個單一的 C# 主控台應用程式,能接受任何 JPG、清理影像,並輸出擷取的字串——可直接供後續處理或儲存使用。 + +## 前置條件 + +- .NET 6.0 SDK 或更新版本(範例使用頂層語句以簡化程式碼)。 +- Aspose.OCR NuGet 套件(`dotnet add package Aspose.OCR`)。 +- 一張範例 JPG 影像(檔名為 `input.jpg`),放在可執行檔同一資料夾內。 +- 基本的 C# 語法認識——不需要進階概念。 + +如果你已經有專案,只要把程式碼貼上即可;若沒有,請建立新的主控台應用程式: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +現在讓我們深入程式碼。 + +## 如何提升 OCR:前處理設定概覽 + +**如何提升 OCR** 的核心在於 `PreprocessSettings` 物件。它就像在實際字元辨識引擎啟動前執行的迷你影像編輯器。以下快速說明最具影響力的旗標: + +| 設定 | 功能說明 | 常見使用情境 | +|--------------------------|--------------------------------------------------------|--------------| +| `AutoDeskew` | 套用深度學習去傾斜演算法。 | 輕微傾斜的掃描頁面。 | +| `AdaptiveThreshold` | 提升低光或褪色影像的對比度。 | 墨水淡化的舊收據。 | +| `RemoveNoise` | 使用高斯模糊濾鏡抑制斑點。 | 手機閃光拍攝的照片。 | +| `NoiseRemovalStrength` | 控制去噪力度(1 = 低,3 = 高)。 | 依來源顆粒程度微調。 | + +啟用這些選項基本上就是 **如何提升 OCR** 在不完美輸入上的「祕密醬料」。 + +## 使用 Aspose OCR 從 JPG 辨識文字 + +以下是完整、可直接執行的程式。每一行都有註解,讓你了解 *為什麼* 需要這段程式碼,而不只是 *它做什麼*。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### 預期輸出 + +若 `input.jpg` 內含文字「Invoice #12345 – Total: $256.78」,主控台會印出: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +可以看到輸出乾淨,保留了破折號與美元符號——正是 **從影像檔案中擷取文字** 時所期待的結果。 + +## 使用前處理設定校正影像傾斜 + +為什麼校正傾斜很重要?即使只有 2 度的傾斜,也會干擾字元分割階段,導致字母辨識錯誤。`AutoDeskew` 旗標在底層使用卷積神經網路偵測主導角度,並將影像旋轉回基線。 + +如果需要更細部的控制,你也可以手動設定角度: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **何時使用手動校正傾斜:** 若你知道相機或掃描器固定以相同角度傾斜影像(例如固定式掃描器),硬編碼角度可以省下一點處理時間。 + +## 去除雜訊以取得更乾淨的擷取結果 + +雜訊通常以隨機斑點或顆粒形式出現在低光照片中。`RemoveNoise` 旗標會套用雙邊濾鏡,平滑背景同時保留邊緣(即實際字元)。`NoiseRemovalStrength` 屬性讓你調整去噪力度: + +| 強度 | 效果說明 | +|------|----------| +| 1 | 輕度平滑——適合略帶顆粒的圖片。 | +| 2 | 中等平衡——適用大多數手機拍攝。 | +| 3 | 重度平滑——當影像極度雜訊時使用,但要留意會模糊細小筆畫。 | + +若在使用高強度平滑後,細小字體變得難以辨識,只需降低強度或直接關閉此濾鏡。 + +## 從影像擷取文字:不只限於 JPG + +雖然示範以 JPG 為例,Aspose OCR 同時支援 PNG、BMP、TIFF,甚至 PDF 頁面。若要 **從影像檔案中擷取文字**(非 JPG),只要在 `ImageStream.FromFile` 中更改副檔名即可。對於多頁 TIFF,你可以遍歷每一頁: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +上述程式碼展示了如何將相同的 **如何提升 OCR** 工作流程擴展至批次處理整批掃描文件。 + +## 常見陷阱與解決方法 + +| 症狀 | 可能原因 | 快速解決方案 | +|------|----------|--------------| +| 輸出空白 | 前處理過度導致影像全白(門檻過高) | 降低 `NoiseRemovalStrength` 或將 `AdaptiveThreshold = false`。 | +| 文字雜亂 | 語言模型錯誤(預設為英文) | 設定 `ocrEngine.Settings.Language = Language.English;` 或載入自訂語言套件。 | +| 大檔案當機 | 高解析度影像導致記憶體不足 | 在辨識前使用 `ocrEngine.Settings.ImageResizeFactor = 0.5;` 縮小影像。 | +| 旋轉掃描無輸出 | 不小心關閉 `AutoDeskew` | 開啟 `AutoDeskew = true` 或提供正確的 `DeskewAngle`。 | + +記住這些要點,能在生產環境中節省大量除錯時間,讓你更快達成 **如何提升 OCR** 的目標。 + +## 加速 vs. 準確度的調整技巧 + +如果每天要處理上千張收據,可能會優先考慮速度。關閉 `AdaptiveThreshold` 並將 `NoiseRemovalStrength = 1`。相反地,若是法律文件,錯過一個字元可能代價高昂,則全部開啟,甚至把 `NoiseRemovalStrength` 提升至 3。 + +## 結語 + +我們已完整說明在 C# 中使用 Aspose OCR **如何提升 OCR** 的全流程:從建立引擎、設定前處理(即 *如何校正影像傾斜* 與 *如何去除雜訊* 的核心)、載入 JPG、辨識文字、以及處理各種邊緣情況。程式碼自包含、即拿即用,示範了 **從 jpg 辨識文字** 以及 **從影像檔案中擷取文字** 的每一步。 + +### 接下來可以做什麼? + +- 嘗試其他影像格式(PNG、TIFF),觀察相同設定的表現差異。 +- 將 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/_index.md b/ocr/hongkong/net/text-recognition/_index.md index 948767d8e..6c23537fc 100644 --- a/ocr/hongkong/net/text-recognition/_index.md +++ b/ocr/hongkong/net/text-recognition/_index.md @@ -53,11 +53,22 @@ url: /zh-hant/net/text-recognition/ 使用 Aspose.OCR 增強您的 .NET 應用程序,以實現高效的圖像文字識別。探索 OCR 偵測區域模式以獲得精確結果。 ### [OCR影像辨識中辨識PDF](./recognize-pdf/) 使用 Aspose.OCR 釋放 .NET 中 OCR 的潛力。輕鬆從 PDF 中提取文字。立即下載以獲得無縫整合體驗。 +### [在 C# 中建立可搜尋 PDF – 完整指南](./create-searchable-pdf-in-c-complete-guide/) +完整教學示範如何在 C# 使用 Aspose.OCR 建立可搜尋的 PDF,涵蓋設定、執行與結果處理。 ### [OCR影像辨識中的辨識表](./recognize-table/) 透過我們關於 OCR 影像辨識中表格辨識的綜合指南,釋放 Aspose.OCR for .NET 的潛力。 +### [在 C# 中從圖像提取文字 – 完整 OCR 指南](./extract-text-from-image-in-c-complete-ocr-guide/) +完整教學示範如何在 C# 使用 Aspose.OCR 從圖像中提取文字,涵蓋設定、執行與結果處理。 +### [在 C# 中使用批次 OCR 從 TIFF 提取文字 – 完整指南](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +示範如何在 C# 使用 Aspose.OCR 以批次方式從 TIFF 圖像提取文字,涵蓋設定、執行與結果處理。 +### [在 C# 中從 PNG 文字辨識 – 完整 OCR 與拼寫檢查指南](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +完整教學示範如何在 C# 使用 Aspose.OCR 從 PNG 圖像提取文字並進行拼寫檢查,涵蓋設定、執行與結果處理。 +### [將影像轉換為 JSON – C# 收據 OCR 教程](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +使用 Aspose.OCR 在 C# 中將收據影像轉換為 JSON 格式,提供完整步驟指南。 + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/hongkong/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..3e2916d0d --- /dev/null +++ b/ocr/hongkong/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-04-11 +description: 使用 Aspose OCR Cloud 於 C# 將圖像轉換為 JSON。了解如何辨識文字、從圖像擷取文字,並在數分鐘內以 OCR 處理收據。 +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: zh-hant +og_description: 使用 Aspose OCR Cloud 在 C# 中將圖像轉換為 JSON。本指南展示如何辨識文字、從圖像中擷取文字,以及使用 OCR + 處理收據。 +og_title: 將圖像轉換為 JSON – 收據的 C# OCR 教學 +tags: +- OCR +- C# +- Aspose +- JSON +title: 將圖片轉換為 JSON – 收據的 C# OCR 教學 +url: /zh-hant/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 轉換影像為 JSON – C# OCR 收據教學 + +有沒有需要 **convert image to JSON** 但不知從何開始?在本指南中,我們將帶你完成一個完整、端到端的 C# OCR 教學,從收據照片中辨識文字,並產生整齊的 JSON 資料。 + +如果你曾好奇在掃描文件中 *how to recognize text*,或想找快速的 **extract text from image** 方法,你來對地方了。閱讀完本文,你將能 **process receipt with OCR**,並直接將結果傳入下游 API。 + +## 需要的條件 + +- .NET 6 SDK 或更新版本(程式碼同樣適用於 .NET Core) +- Aspose Cloud API 金鑰 – 可從 Aspose 入口網站取得免費試用 +- 本機儲存的範例收據影像(`receipt.jpg`) +- 你喜愛的 IDE(Visual Studio、VS Code、Rider – 任選其一) + +除了官方的 `Aspose.OCR.Cloud` 客戶端外,無需額外的 NuGet 套件。若已安裝 SDK,即可直接開始。 + +## 步驟 1 – Convert Image to JSON:設定 OCR 客戶端 + +首先,我們需要建立 `CloudOcrClient` 的實例。此物件負責與 Aspose 的 OCR 服務所有通訊,並以 JSON 格式回傳結果。 + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** 初始化客戶端是你的 C# 程式碼與雲端 OCR 引擎之間的橋樑。`RecognizeAsync` 方法負責主要工作——上傳影像、執行 OCR 引擎,並回傳包含辨識文字、信心分數與邊框座標的 JSON 字串。 + +> **Pro tip:** 請將 API 金鑰存放於環境變數或密鑰管理服務,而非硬編碼。如此可避免意外洩漏。 + +## 步驟 2 – How to Recognize Text from the Receipt + +客戶端已就緒,現在來探討文字辨識的 *how*。Aspose OCR 支援多種語言,但大多數收據使用英文即可。若需其他語言,只要將 `Language.English` 換成相應的列舉值即可。 + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** 服務會執行深度學習模型,偵測字元、組成單詞,最後組合成行。回傳的 JSON 大致如下: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +你可以使用 `System.Text.Json` 或 `Newtonsoft.Json` 解析此 JSON,取得你關心的欄位。 + +## 步驟 3 – Extract Text from Image and Build JSON Manually(可選) + +有時你不需要 Aspose 提供的原始 JSON;可能需要自訂結構供下游服務使用。以下是一個快速範例,將回應反序列化後重新封裝成較乾淨的物件。 + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** 許多 API 需要特定的結構(例如 `{ "total": "12.34", "date": "2026-04-10" }`)。只提取所需欄位,可讓負載保持輕量,避免洩漏不必要的 OCR 中繼資料。 + +## 步驟 4 – Test the C# OCR Tutorial with a Sample Receipt + +在終端機執行程式: + +```bash +dotnet run +``` + +你應該會看到兩段輸出: + +1. Aspose 回傳的原始 JSON(即 **convert image to json** 直接來自雲端的結果)。 +2. 先前步驟自行建構的自訂 JSON。 + +典型的輸出如下: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +若出現 *401 Unauthorized* 錯誤,請再次確認 API 金鑰是否有效,以及影像路徑是否正確。 + +## 邊緣情況與常見陷阱 + +| 情況 | 需要留意的地方 | 建議解決方案 | +|-----------|------------------|---------------| +| **低解析度收據** | OCR 信心分數低於 0.8 | 在傳送前先前處理影像(提升 DPI、銳化) | +| **非英文字符** | 語言列舉值錯誤 | 使用 `Language.AutoDetect` 或指定正確的語言 | +| **大量收據批次** | 速率限制錯誤 | 實作指數退避或向 Aspose 申請更高配額 | +| **缺少欄位** | 自訂解析器回傳 `null` | 加入備援邏輯或正規表達式,以提升抽取的穩健性 | + +## 視覺概覽 + +![顯示從影像檔 → OCR 客戶端 → JSON 回應 → 自訂解析 → 最終 JSON 輸出的流程圖](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *convert image to json 流程圖,說明本教學所涵蓋的步驟。* + +## 重點回顧 + +我們示範了如何使用 Aspose OCR Cloud **convert image to JSON**,說明了在收據中 *how to recognize text*,展示了 **extract text from image** 的方法,並將所有內容整合成一個乾淨的 **C# OCR tutorial**,可直接嵌入任何 .NET 專案。 + +主要重點如下: + +- 使用你的 API 金鑰設定 `CloudOcrClient`。 +- 呼叫 `RecognizeAsync` 以取得服務直接回傳的 JSON 資料。 +- 必要時可重新塑形該資料,以符合自訂的資料合約。 + +## 接下來可以做什麼? + +- **批次處理:** 迭代收據資料夾,將結果彙總成單一 JSON 陣列。 +- **進階解析:** 使用正規表達式或小型 NLP 模型抽取項目、稅金與折扣。 +- **整合:** 將最終 JSON 推送至資料庫、訊息佇列或 Azure Function,以進一步自動化。 + +歡迎嘗試不同的影像格式(PNG、TIFF),或在手機拍攝的照片上測試 **process receipt with OCR** 流程。一旦擁有可靠的 **convert image to 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/hongkong/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..e50cdc5a8 --- /dev/null +++ b/ocr/hongkong/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-04-11 +description: 快速將影像製作成可搜尋的 PDF。學習如何從影像產生 PDF、嵌入影像 PDF、將 TIF 轉換為 PDF,並使用 Aspose 的 OCR + 於 C# 轉 PDF。 +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: zh-hant +og_description: 即時建立可搜尋的 PDF。本教學示範如何從圖像產生 PDF、嵌入圖像 PDF、將 TIF 轉換為 PDF,以及使用 OCR 產生 PDF(C#)。 +og_title: 在 C# 中建立可搜尋 PDF – 步驟教學 +tags: +- C# +- OCR +- PDF generation +title: 在 C# 中建立可搜尋的 PDF – 完整指南 +url: /zh-hant/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中建立可搜尋 PDF – 完整指南 + +是否曾需要 **建立可搜尋的 PDF**,但不曉得從何下手?你並不孤單;許多開發者在處理 TIFF 檔案與 OCR 時都會卡在同一個問題。本文將手把手示範一個解決方案,讓你 **從影像產生 PDF**,同時嵌入原始圖片以確保完美的搜尋功能,最後完成乾淨的 **OCR to PDF C#** 工作流程。 + +我們會從安裝 Aspose.OCR 套件說起,並處理多頁 TIFF 等邊緣情況。完成後,你將擁有一個可直接執行的程式,能把 `input.tif` 轉換成完整可搜尋的 `output.pdf`。不需要外部服務,也沒有隱藏的魔法——只有純粹的 C# 程式碼,隨時可以放入任何 .NET 專案。 + +## 你需要的環境 + +- .NET 6.0 或更新版本(此程式碼同樣支援 .NET Framework 4.7+) +- Visual Studio 2022(或你慣用的任何編輯器) +- 有效的 Aspose.OCR 授權或免費試用金鑰(NuGet 套件在評估模式下可不需金鑰) +- 一個範例 TIFF 影像(`input.tif`),放在可參考的資料夾中 + +> **Pro tip:** 將影像檔案大小控制在 10 MB 以下,可避免大量批次處理時的記憶體激增。 + +## 第一步:安裝 Aspose.OCR 並設定專案 + +首先,將 Aspose.OCR NuGet 套件加入專案。開啟 Package Manager Console,執行: + +```powershell +Install-Package Aspose.OCR +``` + +如果你偏好使用 UI,請右鍵點選 **Dependencies → Manage NuGet Packages**,搜尋 *Aspose.OCR*,然後點擊 **Install**。 + +**為什麼這一步很重要:** Aspose.OCR 內建高效能的 OCR 引擎與 PDF 匯出功能,讓你不必再額外尋找影像處理或 PDF 產生的套件。 + +### 完整專案骨架 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note:** 請將 `YOUR_DIRECTORY` 替換成你機器上的實際資料夾路徑。 + +## 第二步:載入影像 – *Generate PDF from Image* 基礎 + +載入來源檔案是個小卻關鍵的步驟。Aspose.OCR 需要 `ImageStream`,它抽象化檔案 I/O,並支援多種格式(TIFF、PNG、JPEG 等)。 + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**為什麼不直接傳入路徑?** +`ImageStream` 包裝器會處理內部緩衝,確保 OCR 引擎在處理大型多頁 TIFF 時不會一次將整個檔案載入記憶體。 + +## 第三步:設定 PDF 匯出 – *Embed Image PDF* 以達到完美搜尋性 + +匯出 OCR 結果至 PDF 時,有兩種選擇:只嵌入抽取的文字,或同時嵌入原始影像與隱藏的文字層。嵌入影像可保留掃描件的視覺完整度,且使用者之後仍能選取或複製文字。 + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** 若將 `EmbedOriginalImage` 設為 `false`,產生的 PDF 會較小,但會失去原始圖片——適合純文字檔案的存檔需求。 + +## 第四步:匯出 – *OCR to PDF C#* 一行搞定 + +Aspose.OCR 讓繁重的工作只需一行程式碼。`ExportToPdf` 方法會執行 OCR、建立隱藏文字層,並寫入最終檔案。 + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### 預期結果 + +執行程式後會印出: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +在任意檢視器(Adobe Reader、Edge 等)開啟 `output.pdf`,嘗試選取文字,你會看到文字層下方仍保留原始影像,證明 **create searchable pdf** 操作成功。 + +## 第五步:驗證 PDF – 可自動化的快速檢查 + +對單一檔案手動檢查尚可接受,但若想程式化驗證 PDF 是否包含文字層,可使用 Aspose.PDF(姊妹套件)讀取文件並抽取文字: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +在匯出之後加入 `VerifyPdfContainsText(pdfPath);` 呼叫,即可自動執行 sanity check。 + +## 常見陷阱與避免方式 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | 一次載入整個檔案會超過記憶體上限。 | 使用 `ImageStream.FromFile`(如前所示),並在多頁檔案時逐頁處理。 | +| **Missing license leads to watermarks** | 評估模式會在每頁加上可見水印。 | 盡早套用 Aspose.OCR 授權:`License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | 硬寫的 `\` 會在非 Windows 系統上失效。 | 使用 `Path.Combine` 或使用 `/` 的原始字串。 | +| **Text not searchable** | `EmbedOriginalImage` 設為 `false` 或 OCR 未啟用。 | 確認 `PdfExportOptions.EmbedOriginalImage = true`,且 OCR 引擎正確初始化。 | + +## 加分技巧:在不需要 OCR 時將 TIF 直接轉成 PDF + +如果只想 **convert TIF to PDF**,而不需要隱藏文字層,可完全跳過 OCR 步驟: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +此技巧適合僅需保存掃描文件、且不要求搜尋功能的歸檔情境。 + +## 完整可執行範例(直接複製貼上) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +執行程式,開啟 `output.pdf`,你會看到與原始 TIFF 完全相同的畫面,且底下隱藏了可選取的文字層——這正是 **create searchable pdf** 的實際意義。 + +## 結論 + +我們剛剛完整走過一個 **create searchable pdf** 的 C# 工作流程。從原始 TIFF 出發,我們 **generate pdf from image**,選擇 **embed image pdf** 以保留視覺 fidelity,並示範完整的 **ocr to pdf c#** 流程,全部透過 Aspose.OCR 完成。 + +隨意調整 `PdfExportOptions`(壓縮、PDF 版本等),或將多張影像串接起來做批次處理。未來你可以探索加入密碼保護、數位簽章,甚至將多個可搜尋 PDF 合併成一個主文件。 + +對於大規模檔案處理或在 ASP.NET API 中整合有任何疑問,歡迎在下方留言或於 GitHub 私訊我——祝開發順利! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/hongkong/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..c80d3b0ac --- /dev/null +++ b/ocr/hongkong/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,180 @@ +--- +category: general +date: 2026-04-11 +description: 使用 Aspose OCR 於 C# 從圖像提取文字。了解如何載入圖像進行 OCR,並在支援 GPU 的情況下辨識 TIFF 檔案的文字。 +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: zh-hant +og_description: 使用 Aspose OCR 在 C# 中從圖像擷取文字。本教學示範如何載入圖像進行 OCR,並使用 GPU 加速從 TIFF 識別文字。 +og_title: 在 C# 中從圖像提取文字 – 完整 OCR 指南 +tags: +- OCR +- C# +- Aspose +- GPU +title: 在 C# 中從圖像提取文字 – 完整 OCR 指南 +url: /zh-hant/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從圖像中提取文字(C#) – 完整 OCR 指南 + +曾經需要 **從圖像中提取文字**,卻不確定哪個函式庫能處理巨大的 TIFF 而不會卡住嗎?你並不孤單。在許多實務專案中——例如發票數位化或掃描書籍的存檔——能夠載入圖像進行 OCR,然後從 TIFF 識別文字,往往是成敗關鍵。 + +在本指南中,我們將手把手示範使用 Aspose OCR for .NET 完成此任務。完成後,你將擁有一個可執行的 C# 主控台應用程式,能載入高解析度掃描檔、啟動 GPU 加速處理(若無 GPU 會自動退回 CPU),並輸出純文字結果。沒有遺漏,沒有「請參考文件」的死胡同。 + +## 您需要的條件 + +- **.NET 6 或更新版本**(程式碼可在任何近期 SDK 上編譯) +- **Aspose.OCR for .NET** NuGet 套件 + `dotnet add package Aspose.OCR` +- 一個 **大型 TIFF** 或任何其他想要 OCR 的影像格式 + (範例使用 `large_scan.tif`) +- (可選)支援 CUDA 11+ 的 GPU —— 若沒有,函式庫會自動切換至 CPU 模式。 + +就這樣。讓我們開始吧。 + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## 步驟 1:提取文字 – 初始化 OCR 引擎 + +在處理任何影像之前,你需要建立一個 `OcrEngine` 實例。此引擎保存所有控制辨識執行方式的設定。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**為什麼這很重要:** +`ProcessingMode.Gpu` 能在現代顯示卡上為辨識時間削減數秒,但將 `ProcessingMode.Auto`(或保留預設)設定為較安全,因為在沒有 GPU 的環境中不會出錯。`GpuMemoryLimit` 的限制是一個實用技巧——若不設此限制,巨大的影像可能會佔用全部 VRAM,導致其他應用程式崩潰。 + +## 步驟 2:載入影像供 OCR 使用 – 把 TIFF 讀入記憶體 + +引擎已就緒後,我們需要將要分析的圖片傳入。Aspose 提供的 `ImageStream.FromFile` 會抽象化格式處理。 + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**底層發生了什麼?** +`ImageStream.FromFile` 會將檔案讀入串流,並自動偵測影像格式(TIFF、PNG、JPEG 等)。若你處理的是多頁 TIFF,Aspose 會將每一頁視為獨立的框格;之後如有需要可自行迭代。 + +## 步驟 3:辨識 TIFF 文字 – 執行 OCR 引擎 + +影像載入後,重活就開始了。`Recognize` 方法會回傳一個 `OcrResult` 物件,內含提取的文字以及一些實用的中繼資料欄位。 + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**為什麼只呼叫一次 `Recognize`?** +因為引擎在第一次執行後會快取內部結構,對大多數情境而言一次呼叫已足夠。若需處理多頁,請重複使用同一個 `OcrEngine` 實例——這樣可避免重新初始化 GPU 上下文的開銷。 + +## 步驟 4:顯示結果 – 展示提取的文字 + +最後,我們將辨識出的字串輸出到主控台。實際應用中,你可能會把它寫入資料庫或檔案。 + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**預期輸出:** +如果 `large_scan.tif` 包含一張印刷發票,你會看到類似以下的內容: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +具體版面會依原始影像而異,但重點是你現在已取得 **extract text from image** 的結果,準備進行後續處理。 + +## 步驟 5:故障排除與特殊情況 + +### GPU 未偵測到? + +如果在沒有相容 GPU 的機器上執行範例,使用 `ProcessingMode.Auto` 時引擎會靜默退回 CPU。若想明確強制使用 CPU,請將先前的程式碼行改為: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### 記憶體需求高的 TIFF + +極大尺寸的掃描(例如 10 000 × 10 000 px)仍可能超過我們設定的 1 GB GPU 上限。此時,可提升 `GpuMemoryLimit`(前提是有剩餘 VRAM),或在送入引擎前先縮小影像: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### 多頁文件 + +若你的 TIFF 包含多頁,請使用迴圈逐頁處理: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### 語言與字型支援 + +Aspose OCR 會自動偵測拉丁系文字,但若要辨識西里爾文、阿拉伯文或自訂字型,可能需要額外提供語言套件: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## 專業提示與最佳實踐 + +- **重複使用引擎**:每張影像都重新建立 `OcrEngine` 會增加明顯的延遲。 +- **批次處理**:處理數十張 TIFF 時,可將它們排入佇列並以平行執行緒處理——但要留意 GPU 記憶體的競爭情形。 +- **驗證輸出**:OCR 並非完美;可對 `ocrResult.Text` 執行簡易拼寫檢查或正規表達式驗證,以捕捉明顯的錯誤辨識。 +- **記錄效能**:在 `Recognize` 前後使用 `Stopwatch` 計算耗時,判斷在你的環境中 GPU 加速是否值得額外的設定成本。 + +## 結論 + +你現在擁有一個完整、端對端的範例,能使用 Aspose OCR 在 C# 中 **extract text from image** 檔案。透過載入影像、呼叫引擎辨識 TIFF 文字,並處理 GPU 與 CPU 兩種情境,本教學為你提供了可直接投入生產環境的基礎,無論是發票、護照或任何掃描文件皆可套用。 + +接下來要做什麼?可以嘗試將 TIFF 換成多頁 PDF、實驗自訂語言套件,或將輸出串接至自然語言處理管線,以自動化資料抽取。可能性無限——祝開發順利! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/hongkong/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..966ae0868 --- /dev/null +++ b/ocr/hongkong/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-04-11 +description: 使用 Aspose OCR 於 C# 進行批次處理,從 TIFF 檔案中提取文字。了解如何高效處理批次 OCR 並即時取得進度回饋。 +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: zh-hant +og_description: 使用 Aspose OCR 批次處理於 C# 從 TIFF 檔案提取文字。本教學逐步說明如何執行批次 OCR 以及讀取進度。 +og_title: 使用 C# 批次 OCR 從 TIFF 提取文字 – 完整指南 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: 使用 C# 以批次 OCR 從 TIFF 提取文字 – 完整指南 +url: /zh-hant/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從 TIFF 提取文字 – 批次 OCR 完整指南 + +曾經需要 **從 TIFF 檔案提取文字**,卻在批次處理階段卡住嗎?你並不孤單。在許多文件自動化專案中,處理數十張高解析度的 TIF 圖片很快就會成為瓶頸——尤其是當你想即時看到處理進度時。 + +好消息是?使用 Aspose OCR,你只需要幾行程式碼就能 **批次 OCR**,取得即時進度事件,並輸出每張圖片的辨識文字。本教學將帶你一步步完成一個可直接執行的 C# 主控台應用程式,實作上述功能。 + +我們會涵蓋所有必備資訊:所需套件、每行程式碼的意義、缺檔等邊緣情況,以及如何驗證結果。完成後,你只要把範例放入自己的解決方案,即可立即開始從 TIFF 圖片提取文字。 + +## 需要的環境 + +- **.NET 6 或更新版本**(程式碼同樣支援 .NET Core) +- **Aspose.OCR for .NET** NuGet 套件 – `Install-Package Aspose.OCR` +- 一個包含數張 **TIFF** 圖片的資料夾(示範使用 `img1.tif`、`img2.tif`、`img3.tif`) +- 任意 IDE – Visual Studio、Rider 或 VS Code 都可以 + +不需要額外設定;此函式庫自帶 OCR 引擎,無需安裝外部原生二進位檔。 + +--- + +## 第一步 – 建立 OCR Engine 實例 + +首先要做的事是建立一個 `OcrEngine`。把它想像成會分析每個像素並轉換成字元的大腦。 + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **為什麼重要:** +> 引擎內部保存語言模型與設定(例如 DPI、語言)。在批次作業中只建立一次並重複使用,遠比每張圖片都重新實例化引擎來得有效率。 + +--- + +## 第二步 – 綁定即時進度事件 + +如果你要處理數十個 TIFF 檔案,進度指示器可以避免你懷疑程式是否卡住。 + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` 事件會在每張圖片處理完畢後觸發,提供 `Current`、`Total` 與 `Percentage`。這就是大多數開發者忘記實作的 **批次 OCR** 反饋迴圈。 + +--- + +## 第三步 – 建立圖片串流清單 + +Aspose.OCR 使用 `ImageStream` 物件。最簡單的方式是從磁碟載入每張 TIFF。 + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **小技巧:** +> 若資料夾內容會變動,可將硬編碼的清單改成 `Directory.GetFiles(path, "*.tif")` 並搭配 `Select(ImageStream.FromFile)`——如此即可真正 **批次 OCR**,不必手動更新清單。 + +--- + +## 第四步 – 執行批次 OCR 處理 + +現在開始進行重點工作。`ProcessBatch` 會回傳只讀的 `OcrResult` 清單,每個項目包含辨識出的文字與信心分數。 + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **為什麼這樣有效率:** +> 引擎會在所有圖片間共用同一語言模型,與單張圖片呼叫相比,大幅降低記憶體使用與重複載入成本。 + +--- + +## 第五步 – 顯示或儲存辨識文字 + +最後,遍歷結果。在實務專案中,你可能會把文字寫入資料庫或 JSON 檔,但這個示範只會把它印到主控台。 + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**預期的主控台輸出**(為簡潔起見已截斷): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +若有圖片處理失敗,`result.Text` 會是空字串,而 `ProgressChanged` 仍會把該項目標記為已處理——因此你可以另行記錄失敗項目。 + +--- + +## 進度事件處理器(完整程式碼) + +將此方法放在 `BatchDemo` 類別的任意位置——建議放在 `Main` 之後。 + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **專業提示:** +> 若你在開發桌面應用程式,可將此輸出導向 UI 進度條;相同的事件同樣適用於 WinForms、WPF,甚至 ASP.NET Core SignalR 通知。 + +--- + +## 完整、可直接執行的範例 + +把所有片段組合起來,以下是可以直接貼到新建主控台專案的完整程式。 + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +將檔案存為 `Program.cs`,執行 `dotnet add package Aspose.OCR`,把 `YOUR_DIRECTORY` 替換成實際路徑,然後按 **Ctrl+F5**。你應該會看到進度數字,接著是每張 TIFF 的辨識文字。 + +--- + +## 常見邊緣情況處理 + +| 情境 | 需要注意的地方 | 快速解決方式 | +|-----------|-------------------|-----------| +| **缺少或損毀的 TIFF** | `ImageStream.FromFile` 會拋出 `FileNotFoundException` 或 `ArgumentException`。 | 在建立清單時使用 `try/catch`,跳過無效檔案並記錄問題。 | +| **非常大的圖片(>10 MP)** | OCR 可能佔用大量記憶體且變慢。 | 在處理前降低 DPI:`ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **非英文文字** | 預設語言模型為英文。 | 設定 `ocrEngine.Language = Language.Spanish;`(或其他支援語言)。 | +| **需要儲存結果** | 主控台輸出不具永續性。 | 使用 `File.WriteAllText` 把 `result.Text` 寫入 `.txt` 檔案。 | + +處理好這些情境後,你的解決方案就更具韌性,也能向 AI 展示你已考慮到除快樂路徑之外的情況。 + +--- + +## 後續步驟與相關主題 + +- **從 PDF 提取文字** – API 類似,只要把 `ImageStream` 換成 `PdfDocument`。 +- **平行批次 OCR** – 面對大量工作負載時,可在不同執行緒上建立多個 `OcrEngine` 實例;記得遵守授權限制。 +- **後處理** – 將 OCR 輸出送入拼字檢查或正規表達式,以清理常見的 OCR 錯誤。 + +所有這些延伸功能仍然以 **批次 OCR** 為核心概念,可逐步加入專案。 + +--- + +## 結論 + +我們剛剛示範了如何使用 Aspose OCR 在 C# 中以 **批次 OCR** 的方式高效 **從 TIFF 提取文字**。範例建立單一引擎、訂閱進度事件、載入圖片串流清單、執行批次處理,最後印出每個結果。 + +接下來,你可以把輸出整合到資料庫、產生可搜尋的 PDF,或將文字送入下游的 NLP 流程。只要調整語言設定、DPI 或平行執行,即可因應各種工作負載。 + +有任何問題或想分享你自訂的批次處理方式嗎?歡迎在下方留言,祝開發順利! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/hongkong/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..8f0e08d5c --- /dev/null +++ b/ocr/hongkong/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-04-11 +description: 學習如何使用 Aspose OCR 在 C# 中辨識 PNG 圖片文字並擷取文字。內容包括 C# 載入圖片檔案的步驟、拼寫檢查以及完整程式碼。 +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: zh-hant +og_description: 使用 C# 輕鬆辨識 PNG 文字。請參考此逐步指南,學習在 C# 中載入影像檔案、從影像中提取文字,並執行拼寫檢查。 +og_title: 在 C# 中從 PNG 辨識文字 – 完整 OCR 教學 +tags: +- OCR +- C# +- Aspose +title: 在 C# 中從 PNG 識別文字 – 完整 OCR 與拼寫檢查指南 +url: /zh-hant/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從 PNG 識別文字 – 完整的 C# OCR 與拼寫檢查教學 + +是否曾需要 **recognize text from png** 檔案卻不確定該選哪個函式庫?你並不孤單;許多開發者在首次處理以影像為基礎的資料擷取時,都會卡在這裡。好消息是,使用 Aspose OCR 只要幾行程式碼,就能在 C# 中載入影像檔、擷取文字,甚至執行內建的拼寫檢查。 + +在本教學中,我們將一步步說明整個流程:載入 PNG、呼叫 OCR 引擎,最後檢查拼寫錯誤。完成後,你就能在 **extract text from image C#** 專案中輕鬆取得文字,無需在零散的文件中搜尋。即使沒有 OCR 經驗,只要有 .NET 開發環境即可上手。 + +## 需要的環境 + +- **.NET 6.0**(或任何較新的 .NET 版本)— API 在 .NET Core 與 .NET Framework 上的行為相同。 +- **Aspose.OCR for .NET** NuGet 套件 — 透過 `dotnet add package Aspose.OCR` 安裝。 +- 一張 **PNG 影像**,內含可辨識的文字(例如 `letter.png` 放在你自行管理的資料夾中)。 +- 任意程式碼編輯器或 IDE(Visual Studio、VS Code、Rider,隨你喜好)。 + +就這樣。無需額外的 OCR 引擎、原生 DLL,只要乾淨的受管理套件即可。 + +--- + +## Step 1: Load the PNG Image File in C# + +在 OCR 引擎能執行任何操作之前,需要先取得指向影像的串流。Aspose 提供 `ImageStream.FromFile`,可抽象化檔案系統的細節。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** 若影像是以資源嵌入或來自 Web 請求,可改用 `ImageStream.FromBytes(byte[])` — 不需要觸碰檔案系統。 + +### 為何載入很重要 + +正確載入影像可確保 OCR 引擎取得預期的像素資料。若串流損毀,`Recognize` 會拋出例外,導致後續除錯耗時。 + +--- + +## Step 2: Initialize the OCR Engine + +建立 `OcrEngine` 實例成本低,但你可能想針對特定使用情境(例如多語言文件)調整語言或精度設定。預設建構子已足以處理英文文字。 + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### 為何需要引擎實例? + +引擎負責保存設定(語言、前處理過濾器等)。將設定與影像分離後,同一個引擎即可重複使用於多個檔案,特別適合批次處理。 + +--- + +## Step 3: Recognize Text from the PNG + +現在魔法發生了。`Recognize` 會回傳一個 `OcrResult` 物件,內含原始字串、信心分數等資訊。 + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**預期輸出**(假設 `letter.png` 內容為 “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +若影像包含多行文字,結果會保留換行符號,讓後續處理更為直接。 + +### Edge case: low‑resolution PNGs + +若 OCR 結果呈現亂碼,請考慮放大影像或調整 `ocrEngine.PreprocessingOptions`。低 DPI 影像往往失去引擎所依賴的細節。 + +--- + +## Step 4: Run the Built‑In Spell Checker + +Aspose OCR 內建輕量級拼寫檢查模組,可直接作用於 OCR 結果。此步驟能捕捉像是 “H3llo” 被誤辨為 “Hello” 的情況。 + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**範例輸出**(若 OCR 把 “World” 誤讀為 “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### 為何要做拼寫檢查? + +OCR 永遠不會 100 % 完美,特別是在背景雜訊較多的情況下。快速的拼寫檢查能在將文字送入後續分析或資料庫前,過濾掉明顯錯誤。 + +--- + +## Step 5: Put It All Together – Full Working Example + +以下是一個完整、可直接執行的程式範例。將它貼到新建的 Console 專案中,調整影像路徑後按 **F5**。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**執行示範** 會先印出 OCR 文字,接著列出任何拼寫建議。只要影像為清晰的印刷英文,即可正常運作。若要處理其他語言,只需相應設定 `ocrEngine.Language`。 + +--- + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| *Can I process JPEG or BMP files?* | Absolutely—`ImageStream.FromFile` accepts any format supported by Aspose (PNG, JPEG, BMP, TIFF). | +| *What if the image is in a memory stream?* | Use `ImageStream.FromBytes(byteArray)` or `ImageStream.FromStream(stream)`. | +| *Is the spell checker language‑aware?* | Yes, it respects the language set on the OCR engine. | +| *How do I improve accuracy on skewed images?* | Enable `ocrEngine.PreprocessingOptions.Deskew = true;` before calling `Recognize`. | +| *Do I need a license for Aspose.OCR?* | A free trial works for up to 100 pages. For production, obtain a license to remove watermarks. | + +--- + +## Next Steps – Going Beyond Basic OCR + +現在你已能 **recognize text from png** 並 **extract text from image C#**,不妨嘗試以下延伸功能: + +1. **Batch processing** – 迴圈處理整個 PNG 目錄,將每個 OCR 結果寫入獨立的 `.txt` 檔案。 +2. **Integration with Azure Cognitive Services** – 結合 Aspose OCR 與雲端翻譯 API,打造多語言管線。 +3. **Structured data extraction** – 使用正規表達式於 `recognizedText` 中擷取日期、發票號碼或地址等結構化資料。 +4. **Performance tuning** – 大量處理時,重複使用同一個 `OcrEngine` 實例並啟用多執行緒,可提升效能。 + +上述每項都建立在本教學的核心步驟之上,讓你能將簡單的影像轉換為可行動的資料。 + +--- + +## Conclusion + +我們已完整示範從 C# 中 **recognize text from png**、正確 **load image file C#**,再到 **extract text from image C#** 並同時執行拼寫檢查的全流程。程式碼自足,說明同時涵蓋「如何」與「為何」,讓你擁有穩固的基礎,能應對任何 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 47bb729fd..043b281a8 100644 --- a/ocr/hungarian/net/ocr-configuration/_index.md +++ b/ocr/hungarian/net/ocr-configuration/_index.md @@ -61,7 +61,9 @@ Szabadítsa fel az OCR képfelismerés erejét .NET-ben az Aspose.OCR-rel. Kény ### [OCROperation nyelvválasztással az OCR képfelismerésben](./ocr-operation-with-language-selection/) Használja ki az OCR erőteljes képességeit az Aspose.OCR for .NET-ben. Zökkenőmentesen nyerjen ki szöveget a képekből. ### [OCROperation listával az OCR képfelismerésben](./ocr-operation-with-list/) -Fedezze fel az Aspose.OCR for .NET lehetőségeit. Könnyedén végezzen OCR képfelismerést listákkal, növelje a termelékenységet és az adatkinyerést alkalmazásaiban. +Fedezze fel az Aspose.OCR for .NET lehetőségeit. Könnyedén végezzen OCR képfelismerést listákkal, növelje a termelékenységet és az adatkinyerést alkalmazásaiban. +### [Hogyan tiltsuk le az OCR-t C#-ban – Offline Aspose OCR útmutató](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Ismerje meg, hogyan kapcsolhatja ki az OCR funkciót C# alkalmazásban offline környezetben az Aspose OCR használatával. ### Gyakori felhasználási esetek - **Szöveg kinyerése** beolvasott számlákról az automatizált könyveléshez. @@ -98,4 +100,4 @@ A: Igen, az `OcrResult` objektum bizalmi értékeket biztosít, amelyeket progra {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/hungarian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..d482de46e --- /dev/null +++ b/ocr/hungarian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Tanulja meg, hogyan tilthatja le az OCR-t az Aspose OCR for C#-ban, hogy + offline működjön, internetkapcsolat nélkül szöveget nyerjen ki a képből, és helyesen + töltse be a képet az OCR-hez. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: hu +og_description: Hogyan tiltsuk le az OCR-t az Aspose OCR C#-ban, és futtassuk offline + módon, internetkapcsolat nélkül nyerjünk ki szöveget a képből, valamint könnyen + töltsünk be képet az OCR-hez. +og_title: Hogyan tiltsuk le az OCR-t C#-ban – Offline Aspose OCR útmutató +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Hogyan tiltsuk le az OCR-t C#-ban – Offline Aspose OCR útmutató +url: /hu/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan tiltsuk le az OCR-t C#‑ban – Offline Aspose OCR útmutató + +Gondolkodtál már azon, **hogyan lehet letiltani az OCR‑t**, amikor valóban offline megoldásra van szükséged? Lehet, hogy egy biztonságos asztali alkalmazást építesz, amely nem támaszkodhat hálózati kapcsolatra, vagy egyszerűen csak el akarod kerülni a váratlan letöltéseket. Akármi is legyen az ok, a jó hír, hogy az Aspose OCR lehetővé teszi az automatikus erőforrás‑letöltés kikapcsolását, egy helyi mappára mutatást, és minden adatot a helyszínen tart. Ebben az útmutatóban azt is megmutatjuk, hogyan **vonj ki szöveget képfájlokból** és hogyan **tölts be képet OCR‑hez** problémamentesen. + +Végigvezetünk egy teljes, azonnal futtatható példán, amely minden lépést bemutat – az motor inicializálásától a felismert japán szöveg kiírásáig. Nincs külső dokumentáció, nincs rejtett varázslat; csak tiszta C# kód, amelyet ma beilleszthetsz a projektedbe. A végére megérted, miért fontos az automatikus letöltés letiltása, hogyan állítsd be az erőforrás‑útvonalat, és milyen csapdákat kerülj el. + +## Előfeltételek + +- .NET 6.0 (vagy bármely friss .NET verzió) telepítve a gépeden. +- Aspose.OCR for .NET NuGet csomag (`Install-Package Aspose.OCR`). +- Egy mappa, amely már tartalmazza a szükséges nyelvi erőforrásokat (pl. a japán modellt). +- Egy képfájl (`japan_doc.png`), amelyen OCR‑t szeretnél futtatni. + +Ha hiányoznak a nyelvi csomagok, szerezd be őket egyszer az Aspose portálról, csomagold ki egy `AsposeOCRResources` nevű mappába, és már készen is vagy. Az automatikus letöltés letiltása után további letöltések nem fognak megtörténni. + +![Hogyan tiltsuk le az OCR-t offline](/images/how-to-disable-ocr.png "hogyan tiltsuk le az OCR illusztrációja") + +## 1. lépés – Az OCR motor példányosítása + +Az első dolog, amit megteszel, hogy példányosítod az `OcrEngine`‑t. Gondolj erre az objektumra úgy, mint a „agyra”, amely elolvassa a képedet. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Miért fontos:** Motor nélkül nem tudsz semmit konfigurálni. Az objektum tartalmazza az összes beállítást, köztük azt a kulcsfontosságú jelzőt, amely megmondja a könyvtárnak, hogy szabad‑e internethez fordulnia. + +## 2. lépés – Az automatikus erőforrás‑letöltés letiltása + +Alapértelmezés szerint az Aspose OCR megpróbálja letölteni a hiányzó nyelvi fájlokat „repülő” módban. Az offline működéshez állítsd a `AutoDownloadResources` kapcsolót `false`‑ra. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro tipp:** Ennek kikapcsolása nem csak a magánszférát garantálja, hanem felgyorsítja az első felismerést is, mivel a motor nem vesztegeti az időt a frissítések ellenőrzésére. + +## 3. lépés – A helyi erőforrás‑mappa megadása + +Most mondd meg a motornak, hol találhatók a előre letöltött nyelvi csomagok. Ez az útvonal, amelyet az előfeltételekben állítottál be. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Mi mehet félre?** Ha az útvonal hibás vagy a szükséges nyelvi fájl hiányzik, a motor `ResourceNotFoundException`‑t dob. Ellenőrizd a mappa nevét és azt, hogy a japán modell (`jpn.traineddata`) jelen van‑e. + +## 4. lépés – A helyi nyelvi modell kiválasztása + +Válaszd ki a lemezen ténylegesen elérhető nyelvet. A példánkban japánt használunk, de a `Language.Japanese`‑t kicserélheted bármely letöltött nyelvre. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Szélsőséges eset:** Egyes nyelvek további szótárakat igényelnek (pl. kínai). Győződj meg róla, hogy ezek a kiegészítő fájlok is ugyanabban a resources mappában vannak. + +## 5. lépés – Kép betöltése OCR‑hez + +Itt **betöltjük a képet OCR‑hez**. Az `ImageStream.FromFile` metódus beolvassa a fájlt egy stream‑be, amelyet az Aspose feldolgozhat. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tipp:** Támogatott formátumok a PNG, JPEG, BMP és TIFF. Ha PDF‑eket kell kezelned, előbb konvertáld minden oldalt képpé. + +## 6. lépés – A felismerési folyamat indítása + +Most a motor ténylegesen elolvassa a pixeleket, és megpróbálja szöveggé alakítani őket. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Miért lehet lassú:** Az OCR CPU‑igényes, különösen nagy felbontású képeknél. Ha a teljesítmény kritikus, fontold meg a kép lecsökkentését a felismerés előtt. + +## 7. lépés – A kinyert szöveg kiírása + +Végül **kivonjuk a szöveget a képből** és kiírjuk a konzolra. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +A program futtatása után a `japan_doc.png`‑ben lévő japán karakterek jelennek meg. Ha minden helyesen van beállítva, egy tiszta Unicode szövegrészletet látsz a konzolon. + +### Várható kimenet + +``` +これはサンプルの日本語テキストです。 +``` + +(A tényleges kimenet a kép tartalmától függ.) + +## Gyakori hibák és elkerülésük módja + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **Hiányzó nyelvi fájl** | `AutoDownloadResources` hamis, így a motor nem tudja letölteni. | Ellenőrizd, hogy a `ResourcesPath` a `jpn.traineddata`‑t tartalmazó mappára mutat. | +| **Helytelen képútvonal** | `ImageStream.FromFile` `FileNotFoundException`‑t dob. | Használj abszolút útvonalakat, vagy győződj meg róla, hogy a munkakönyvtár helyesen van beállítva. | +| **Nem támogatott képformátum** | Az Aspose csak bizonyos formátumokat olvas. | Konvertáld a képet PNG‑re vagy JPEG‑re, mielőtt a `FromFile`‑t hívod. | +| **Memóriahiány nagy képeknél** | Az OCR a teljes képet memóriába tölti. | Méretezd át vagy darabold fel a képet, vagy növeld a folyamat memóriahatárát. | + +## A példa bővítése + +- **Kötegelt feldolgozás:** Egy könyvtár képeinek ciklusban történő beolvasása, ugyanazon felismerési kód meghívása, és minden eredmény külön `.txt` fájlba írása. +- **Különböző nyelvek:** A `Language.Japanese` helyett használj `Language.English`‑t (vagy bármely másik nyelvet) a megfelelő erőforrás‑fájlok elhelyezése után. +- **Egyedi előfeldolgozás:** Használd az Aspose.Imaging‑et a kép kiegyenesítésére vagy kontrasztjavításra OCR előtt a pontosság növelése érdekében. + +## Összegzés + +Most már tudod, **hogyan tiltsuk le az OCR-t** az Aspose OCR‑ben C#‑ban, és hogyan futtassuk teljesen offline módon. A `AutoDownloadResources` `false`‑ra állításával, a motor helyi erőforrás‑mappára mutatásával, és a **kép betöltésével OCR‑hez**, megbízhatóan **kivonhatod a szöveget a képből** anélkül, hogy valaha is az internethez nyúlnál. Ez a megközelítés ideális biztonságos környezetekben, CI pipeline‑okban vagy bármilyen szituációban, ahol a hálózati hozzáférés korlátozott. + +Készen állsz a következő lépésre? Próbáld ki egy egész mappa beolvasását beolvasott PDF‑ekből, kísérletezz különböző nyelvi csomagokkal, vagy integráld az OCR‑eredményt egy kereshető adatbázisba. Az ma felépített offline beállítás szilárd alapot nyújt bármely helyi dokumentum‑feldolgozó munkafolyamathoz. + +Boldog kódolást, és nyugodtan hagyj kommentet, ha elakadsz! + +{{< /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 89201a564..e5cb8fd6a 100644 --- a/ocr/hungarian/net/ocr-optimization/_index.md +++ b/ocr/hungarian/net/ocr-optimization/_index.md @@ -74,6 +74,9 @@ Növelje az OCR pontosságát az Aspose.OCR for .NET segítségével. Javítsa a ### [Többoldalas eredmény mentése dokumentumként OCR kép felismerésben](./save-multipage-result-as-document/) Fedezze fel az Aspose.OCR for .NET lehetőségeit. Könnyedén mentse a többoldalas OCR eredményeket dokumentumokként ezzel az átfogó lépésről‑lépésre útmutatóval. +### [Hogyan javítsa az OCR pontosságát C#-ban az Aspose OCR-rel](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Fedezze fel, hogyan növelheti az OCR pontosságát C# kóddal az Aspose OCR használatával. + ## Gyakran Ismételt Kérdések **Q: Can I extract text from image files that contain multiple languages?** diff --git a/ocr/hungarian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/hungarian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..dbf6904bc --- /dev/null +++ b/ocr/hungarian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Tanulja meg, hogyan javíthatja az OCR-t C#-ban, JPG-ből szöveg felismerésével, + a képek kiegyenesítésével és a zaj eltávolításával az Aspose OCR használatával. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: hu +og_description: Fedezze fel, hogyan javíthatja az OCR-t JPG-ből származó szöveg felismerésével, + a képek kiegyenesítésével és a zaj eltávolításával – teljes C# útmutató. +og_title: Hogyan növelhető az OCR pontossága C#-ban az Aspose OCR segítségével +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Hogyan javítható az OCR pontossága C#-ban az Aspose OCR használatával +url: /hu/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan javítsuk az OCR pontosságát C#-ban az Aspose OCR-rel + +Gondoltál már arra, **hogyan javítsd az OCR** eredményeket, amikor a szkenneléseid inkább absztrakt művészetnek tűnnek, mint olvasható szövegnek? Nem vagy egyedül. Sok valós projektben—gondolj számlákra, bizonylatokra vagy kézírásos jegyzetekre—az eredeti képek gyakran ferde, szemcsés vagy egyszerűen zajosak. A jó hír? Az Aspose OCR számos előfeldolgozási beállítást kínál, amelyek a káoszt tiszta, gép‑olvasható karakterekké alakítják. Ebben az útmutatóban egy teljes, futtatható példán keresztül mutatjuk be, hogyan **javítható az OCR** **JPG‑ből szöveg felismerésével**, a kép kiegyenesítésével és a nem kívánt zaj eltávolításával. + +> *Pro tipp:* Ha kihagyod az előfeldolgozást, valószínűleg összevissza kimenetet kapsz, ami egy rejtélyes keresztrejtvényhez hasonlít. Kerüljük el ezt. + +![Hogyan javítsuk az OCR-t az Aspose OCR előfeldolgozással](https://example.com/ocr-preprocess.png "hogyan javítsd az OCR-t az Aspose OCR") + +## Mit fogsz megtanulni + +A következő néhány percben láthatod: + +1. Hogyan állítsd be az Aspose OCR motorját az optimális pontosság érdekében. +2. A pontos kód, amely **JPG‑ből szöveg felismeréséhez** szükséges. +3. Miért fontos az *AutoDeskew* és a *RemoveNoise* engedélyezése, és hogyan hangolhatod őket. +4. Hogyan **kép‑fájlból szöveget nyerj ki** anélkül, hogy egyedi szűrőt írnál. +5. Gyakori buktatók (hiányzó fájl, nem támogatott formátum) és gyors megoldások. + +A végére egyetlen C# konzolos alkalmazásod lesz, amely bármely JPG‑t képes feldolgozni, megtisztítani, és kiadja a kinyert karakterláncot—kész a további feldolgozáshoz vagy tároláshoz. + +## Előfeltételek + +- .NET 6.0 SDK vagy újabb (a példa a rövidség kedvéért top‑level utasításokat használ). +- Aspose.OCR NuGet csomag (`dotnet add package Aspose.OCR`). +- Egy minta JPG kép (neve `input.jpg`), amelyet az exe‑fájl ugyanabban a mappában helyezel el. +- Alapvető C# ismeretek—nincs szükség haladó koncepciókra. + +Ha már van projekted, egyszerűen illeszd be a kódot; egyébként hozz létre egy új konzolos alkalmazást: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Most merüljünk el a kódban. + +## Hogyan javítsd az OCR-t: Előfeldolgozási beállítások áttekintése + +A **hogyan javítsd az OCR‑t** lényege a `PreprocessSettings` objektumban rejlik. Gondolj rá úgy, mint egy mini‑képszerkesztőre, amely *mielőtt* a tényleges karakterfelismerő motor elindul. Az alábbiakban egy gyors áttekintést találsz a legnagyobb hatású jelzőkről: + +| Beállítás | Mit csinál | Tipikus felhasználási eset | +|--------------------------|-------------------------------------------------------|----------------------------| +| `AutoDeskew` | Mélytanulásos kiegyenesítő algoritmust alkalmaz. | Enyhén ferde beolvasott oldalak. | +| `AdaptiveThreshold` | Növeli a kontrasztot gyenge fényviszonyú vagy kifakult képeken. | Régi bizonylatok kifakult tintával. | +| `RemoveNoise` | Gauss‑elmosás szűrőt futtat a szemcsék elnyomására. | Okostelefon villanyfényt használó fényképek. | +| `NoiseRemovalStrength` | Az agresszivitást szabályozza (1 = alacsony, 3 = magas). | Finomhangolás a forrás szemcsézettsége alapján. | + +Ezeknek a beállításoknak a engedélyezése lényegében a “titkos fűszer” a **hogyan javítsd az OCR‑t** tökéletlen bemeneteknél. + +## Szöveg felismerése JPG‑ből az Aspose OCR-rel + +Az alábbiakban a teljes, futtatható program látható. Minden sor meg van magyarázva, hogy lásd *miért* létezik az adott rész, ne csak *mit* csinál. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Várható kimenet + +Ha az `input.jpg` a „Invoice #12345 – Total: $256.78” kifejezést tartalmazza, a konzol a következőt írja ki: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Vedd észre, hogy a kimenet tiszta, a kötőjel és a dollárjel megtartva—pontosan ez, amit a **kép‑fájlból szöveg kinyerése** során vársz. + +## Kép kiegyenesítése előfeldolgozási beállításokkal + +Miért fontos a kiegyenesítés? Még egy 2‑fokos dőlés is összezavarhatja a karakter szegmentálási szakaszt, ami hibás betűket eredményez. Az `AutoDeskew` jelző egy konvolúciós neurális hálózatot használ a háttérben, amely meghatározza a domináns szöget és visszaforgatja a képet az alapvonalra. + +Ha nagyobb irányítást szeretnél, manuálisan beállíthatod a szöget: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Mikor használj manuális kiegyenesítést:** Ha tudod, hogy a kamera állandóan egy meghatározott mértékben dönti el a képeket (pl. egy rögzített szkenner), a szög kódba írása egy kis feldolgozási időt takarít meg. + +## Zaj eltávolítása a tisztább kinyeréshez + +A zaj véletlenszerű foltok vagy szemcsék formájában jelenik meg, különösen gyenge fényviszonyú fotókon. A `RemoveNoise` jelző egy bilaterális szűrőt alkalmaz, amely simítja a hátteret, miközben megőrzi a széleket (a tényleges karaktereket). A `NoiseRemovalStrength` tulajdonság lehetővé teszi az agresszivitás beállítását: + +| Erősség | Hatás | +|----------|--------| +| 1 | Enyhe simítás—alkalmas enyhén szemcsés képekre. | +| 2 | Kiegyensúlyozott—a legtöbb okostelefon felvételnél működik. | +| 3 | Erős simítás—használd, ha a kép rendkívül zajos, de vigyázz a vékony vonalak elmosódásával. | + +Ha olyan helyzettel találkozol, ahol a kis betűk nehezen olvashatóvá válnak erős simítás után, egyszerűen csökkentsd az erősséget vagy teljesen tiltsd le a szűrőt. + +## Szöveg kinyerése képből: JPG‑n túl + +Bár a demónk egy JPG‑re fókuszál, az Aspose OCR támogatja a PNG, BMP, TIFF és még a PDF oldalakat is. **Kép‑fájlból szöveg kinyeréséhez** a JPG‑n kívül egyszerűen változtasd meg a fájlkiterjesztést az `ImageStream.FromFile`‑ben. Többoldalas TIFF‑ek esetén ciklusba vonhatod az egyes oldalakat: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Ez a kódrészlet azt mutatja, hogyan skálázhatod ugyanazt a **hogyan javítsd az OCR‑t** munkafolyamatot, hogy egy egész köteg beolvasott dokumentumot kötegelt feldolgozz. + +## Gyakori buktatók és megoldások + +| Tünet | Valószínű ok | Gyors javítás | +|---------------------------|----------------------------------------------------------------|----------------| +| Üres kimenet | A kép teljesen fehér a előfeldolgozás után (túl agresszív küszöb) | `NoiseRemovalStrength` csökkentése vagy `AdaptiveThreshold = false` beállítása. | +| Elcsúszott karakterek | Rossz nyelvi modell (alapértelmezett az angol) | `ocrEngine.Settings.Language = Language.English;` beállítása vagy egy egyedi nyelvi csomag betöltése. | +| Összeomlás nagy fájloknál | Memóriahiány a nagy felbontású kép miatt | Átméretezés `ocrEngine.Settings.ImageResizeFactor = 0.5;` használatával a felismerés előtt. | +| Nincs kimenet a forgatott szkenneléseknél | `AutoDeskew` véletlenül letiltva | `AutoDeskew = true` engedélyezése vagy a megfelelő `DeskewAngle` megadása. | + +Ezeknek a szem előtt tartása órákat takarít meg a hibakeresésben, amikor a **hogyan javítsd az OCR‑t** próbálod a termelési folyamatokban. + +## Bónusz: Finomhangolás a sebesség és pontosság között + +Ha naponta ezrek nyugtáit dolgozod fel, a sebesség lehet elsődleges. Kapcsold ki az `AdaptiveThreshold`‑t és állítsd `NoiseRemovalStrength = 1`‑re. Ezzel szemben, jogi dokumentumok esetén, ahol egyetlen hiányzó karakter is költséges lehet, tartsd bekapcsolva az összes jelzőt, és fontold meg a `NoiseRemovalStrength` 3‑ra növelését. + +## Összegzés + +Áttekintettük a teljes folyamatot a **hogyan javítsd az OCR‑t** C#‑ban az Aspose OCR használatával: a motor létrehozásától, az előfeldolgozás beállításáig (a *kép kiegyenesítése* és a *zaj eltávolítása* sarokkövei), JPG betöltéséig, szöveg felismeréséig és a szélsőséges esetek kezeléséig. A kód önálló, azonnal futtatható, és bemutatja a pontos lépéseket, amelyekre szükséged van a **JPG‑ből szöveg felismeréséhez** és a **kép‑fájlból szöveg kinyeréséhez**. + +### Mi a következő? + +- Kísérletezz más képformátumokkal (PNG, TIFF), hogy lásd, hogyan viselkednek ugyanazok a beállítások. +- Integráld az OCR kimenetet egy adatbázisba vagy + +{{< /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 61ddd9f74..b34581ffe 100644 --- a/ocr/hungarian/net/text-recognition/_index.md +++ b/ocr/hungarian/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Szöveg kinyerése képből C#-ban – Teljes OCR útmutató](./extract-text-from-image-in-c-complete-ocr-guide/) +Ismerje meg, hogyan használja az Aspose.OCR-t C#-ban a képek szövegének teljes körű kinyeréséhez. +### [Szöveg kinyerése TIFF-fájlból kötegelt OCR-rel C#-ban – Teljes útmutató](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Ismerje meg, hogyan nyerhet ki szöveget TIFF-fájlokból kötegelt OCR-rel C#-ban, részletes lépésről-lépésre útmutatóval. +### [Kereshető PDF létrehozása C#-ban – Teljes útmutató](./create-searchable-pdf-in-c-complete-guide/) +Ismerje meg, hogyan hozhat létre kereshető PDF-et C#-ban az Aspose.OCR segítségével, részletes lépésről-lépésre útmutatóval. +### [Szöveg felismerése PNG-fájlból C#-ban – Teljes OCR és helyesírás-ellenőrzési útmutató](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Fedezze fel, hogyan használhatja az Aspose.OCR-t C#-ban PNG képek szövegének felismerésére, beleértve a teljes OCR és a helyesírás-ellenőrzés lépéseit. +### [Kép konvertálása JSON formátumba – C# OCR útmutató nyugtákhoz](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Tanulja meg, hogyan konvertálja a nyugtákról készült képeket JSON-re az Aspose.OCR C# segítségével, lépésről-lépésre útmutatóval. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/hungarian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..7a397fe9c --- /dev/null +++ b/ocr/hungarian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Képet JSON formátumba konvertálni az Aspose OCR Cloud használatával C#-ban. + Tanulja meg, hogyan ismerje fel a szöveget, hogyan nyerje ki a szöveget a képből, + és hogyan dolgozzon fel nyugtákat OCR-rel percek alatt. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: hu +og_description: Kép konvertálása JSON formátumba az Aspose OCR Cloud segítségével + C#-ban. Ez az útmutató bemutatja, hogyan lehet szöveget felismerni, szöveget kinyerni + a képből, és OCR-rel feldolgozni a nyugtát. +og_title: Kép konvertálása JSON-re – C# OCR útmutató nyugtákhoz +tags: +- OCR +- C# +- Aspose +- JSON +title: Kép konvertálása JSON formátumba – C# OCR útmutató nyugtákhoz +url: /hu/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Kép konvertálása JSON-re – C# OCR oktatóanyag számlákhoz + +Valaha is szükséged volt **kép konvertálása JSON-re**, de nem tudtad, hol kezdj? Ebben az útmutatóban végigvezetünk egy teljes, vég‑től‑végig C# OCR oktatóanyagon, amely egy számla fényképét veszi, felismeri a szöveget, és egy rendezett JSON adatcsomagot ad vissza. + +Ha valaha is elgondolkodtál, *hogyan lehet szöveget felismerni* egy beolvasott dokumentumban, vagy gyors megoldást keresel **szöveg kinyerésére képfájlokból**, jó helyen vagy. A cikk végére képes leszel **számlát feldolgozni OCR-rel**, és az eredményt közvetlenül a downstream API-jaidba továbbítani. + +## Amire szükséged lesz + +- .NET 6 SDK vagy újabb (a kód .NET Core‑ral is működik) +- Aspose Cloud API kulcs – ingyenes próbaidőszakot a Aspose portálon szerezhetsz +- Egy minta számla kép (`receipt.jpg`) helyileg tárolva +- A kedvenc IDE-d (Visual Studio, VS Code, Rider – bármelyik megfelel) + +A hivatalos `Aspose.OCR.Cloud` kliensen kívül nincs szükség további NuGet csomagokra. Ha már telepítetted az SDK‑t, készen állsz. + +## 1. lépés – Kép konvertálása JSON-re: OCR kliens beállítása + +Először is szükségünk van egy `CloudOcrClient` példányra. Ez az objektum kezeli az összes kommunikációt az Aspose OCR szolgáltatásával, és JSON formátumban adja vissza az eredményt. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Miért fontos:** A kliens inicializálása a híd a C# kódod és a felhő OCR motorja között. A `RecognizeAsync` metódus végzi a nehéz munkát – feltölti a képet, futtatja az OCR motorját, és egy JSON karakterláncot ad vissza, amely tartalmazza a felismert szöveget, a megbízhatósági pontszámokat és a körülhatároló doboz koordinátákat. + +> **Pro tipp:** Tárold az API kulcsot környezeti változóban vagy titkoskezelőben a kódba való beágyazás helyett. Így elkerülheted a véletlen szivárgásokat. + +## 2. lépés – Hogyan ismerjünk fel szöveget a számláról + +Miután a kliens készen áll, nézzük meg a *hogyan* részét a szövegfelismerésnek. Az Aspose OCR számos nyelvet támogat, de a legtöbb számlához az angol megfelelő. Ha más nyelvre van szükséged, egyszerűen cseréld le a `Language.English` értéket a megfelelő enum értékre. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Mi történik a háttérben?** A szolgáltatás egy mélytanuló modellt futtat, amely karaktereket észlel, szavakba csoportosítja, majd sorokká állítja őket. A visszakapott JSON nagyjából így néz ki: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Ezt a JSON‑t a `System.Text.Json` vagy a `Newtonsoft.Json` segítségével tudod feldolgozni, hogy kinyerd a számodra fontos mezőket. + +## 3. lépés – Szöveg kinyerése képből és JSON kézi felépítése (opcionális) + +Néha nem akarod az Aspose által adott nyers JSON‑t; lehet, hogy egy egyedi struktúrára van szükséged a downstream szolgáltatásodhoz. Az alábbi gyors példa a választ deszerializálja, és egy tisztább objektumba csomagolja át. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Miért formázzuk újra?** Sok API egy meghatározott sémát vár (pl. `{ "total": "12.34", "date": "2026-04-10" }`). Azáltal, hogy csak a szükséges mezőket vonod ki, a payload könnyű marad, és elkerülöd a felesleges OCR metaadatok szivárgását. + +## 4. lépés – A C# OCR oktatóanyag tesztelése egy minta számlával + +Futtasd a programot a terminálodból: + +```bash +dotnet run +``` + +Két kimeneti blokkot kell látnod: + +1. Az Aspose által visszaadott nyers JSON (a **kép konvertálása JSON-re** eredmény közvetlenül a felhőből). +2. Az előző lépésben épített egyedi JSON. + +A tipikus kimenet így néz ki: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Ha olyan hibát kapsz, mint a *401 Unauthorized*, ellenőrizd, hogy az API kulcs érvényes-e, és hogy a kép útvonala helyes-e. + +## Szélsőséges esetek és gyakori buktatók + +| Szituáció | Mire figyelj | Javasolt megoldás | +|-----------|--------------|-------------------| +| **Alacsony felbontású számla** | OCR megbízhatóság 0.8 alá csökken | Kép előfeldolgozása (DPI növelése, élesítés) küldés előtt | +| **Nem angol karakterek** | Hibás nyelvi enum | Használd a `Language.AutoDetect`‑et vagy add meg a helyes nyelvet | +| **Nagy mennyiségű számla** | Rate‑limit hibák | Implementálj exponenciális visszatérést vagy kérj nagyobb kvótát az Aspose‑tól | +| **Hiányzó mezők** | Egyedi parser `null`‑t ad | Adj hozzá fallback logikát vagy regex mintákat a robusztusabb kinyeréshez | + +## Vizuális áttekintés + +![Diagram a kép fájlból → OCR kliens → JSON válasz → egyedi feldolgozás → végső JSON kimenet áramlásáról](https://example.com/ocr-flow-diagram.png "kép konvertálása JSON-re") + +*Alt szöveg:* *kép konvertálása JSON-re áramlási diagram, amely bemutatja az ebben az oktatóanyagban lefedett lépéseket.* + +## Összefoglalás + +Megmutattuk, hogyan **konvertálhatod a képet JSON-re** az Aspose OCR Cloud segítségével, elmagyaráztuk, *hogyan lehet szöveget felismerni* egy számlán, bemutattuk a **szöveg kinyerésének** módjait képből, és mindezt egy tiszta **C# OCR oktatóanyagba** csomagoltuk, amelyet bármely .NET projektbe beilleszthetsz. + +A fő tanulságok: + +- Állítsd be a `CloudOcrClient`‑et az API kulcsoddal. +- Hívd meg a `RecognizeAsync`‑t, hogy a szolgáltatástól közvetlenül JSON payload‑ot kapj. +- Opcionálisan alakítsd át a payload‑ot, hogy illeszkedjen a saját adatkontrakciódhoz. + +## Mi a következő lépés? + +- **Kötegelt feldolgozás:** Iterálj egy mappán a számlákon, és az eredményeket egyetlen JSON tömbbe aggregáld. +- **Fejlett feldolgozás:** Használj reguláris kifejezéseket vagy egy kis NLP modellt a tételek, adók és kedvezmények kinyeréséhez. +- **Integráció:** Küldd a végső JSON‑t egy adatbázisba, üzenetsorba vagy Azure Function-be a további automatizálás érdekében. + +Nyugodtan kísérletezz különböző képformátumokkal (PNG, TIFF), vagy próbáld ki a **számla feldolgozása OCR-rel** folyamatot mobilról készített fotókon. A lehetőségek végtelenek, ha már van egy megbízható módod a **kép konvertálására JSON-re**. + +Van kérdésed vagy elakadtál? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/hungarian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..73941ffc1 --- /dev/null +++ b/ocr/hungarian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Készíts gyorsan kereshető PDF-et egy képből. Tanulja meg, hogyan generáljon + PDF-et képből, ágyazzon be képes PDF-et, konvertáljon TIF-et PDF-be, és használja + az OCR-t PDF C#-ban az Aspose segítségével. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: hu +og_description: Készítsen kereshető PDF-et azonnal. Ez az útmutató bemutatja, hogyan + generáljon PDF-et képből, ágyazzon be képes PDF-et, konvertáljon TIF-et PDF-be, + és használjon OCR-t PDF C#-ban. +og_title: Kereshető PDF létrehozása C#‑ban – Lépésről lépésre útmutató +tags: +- C# +- OCR +- PDF generation +title: Kereshető PDF létrehozása C#-ban – Teljes útmutató +url: /hu/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Kereshető PDF létrehozása C#‑ban – Teljes útmutató + +Valaha szükséged volt már **kereshető PDF** létrehozására egy beolvasott dokumentumból, de nem tudtad, hol kezdjed? Nem vagy egyedül; sok fejlesztő ugyanazzal a problémával szembesül a TIFF fájlok és az OCR kezelésekor. Ebben az útmutatóban egy gyakorlati megoldáson keresztül vezetünk, amely lehetővé teszi, hogy **PDF‑t generálj képből**, beágyazd az eredeti képet a tökéletes kereshetőség érdekében, és egy tiszta **OCR to PDF C#** munkafolyammal fejezd be. + +Mindent lefedünk az Aspose.OCR könyvtár telepítésétől a többoldalas TIFF-ekhez hasonló szélhelyzetek kezeléséig. A végére egy kész‑használatra készen álló programod lesz, amely a `input.tif`‑et teljesen kereshető `output.pdf`‑vé alakítja. Nincsenek külső szolgáltatások, nincs rejtett varázslat – csak egyszerű C# kód, amelyet bármely .NET projektbe beilleszthetsz. + +## Amire szükséged lesz + +- .NET 6.0 vagy újabb (a kód a .NET Framework 4.7+‑on is működik) +- Visual Studio 2022 (vagy bármely kedvelt szerkesztő) +- Aktív Aspose.OCR licenc vagy ingyenes próbaverzió kulcs (a NuGet csomag kulcs nélkül is működik értékeléshez) +- Minta TIFF kép (`input.tif`) egy olyan mappában, amelyre hivatkozhatsz + +> **Pro tipp:** Tartsd a képfájljaidat 10 MB alatt, hogy elkerüld a memóriahullámokat nagy kötegek feldolgozásakor. + +## 1. lépés: Aspose.OCR telepítése és a projekt beállítása + +Először add hozzá az Aspose.OCR NuGet csomagot a projektedhez. Nyisd meg a Package Manager Console‑t és futtasd: + +```powershell +Install-Package Aspose.OCR +``` + +Ha inkább a felhasználói felületet részesíted előnyben, jobb‑klikkelj a **Dependencies → Manage NuGet Packages**‑re, keresd meg az *Aspose.OCR*-t, és kattints a **Install** gombra. + +Miért fontos ez a lépés: Az Aspose.OCR egy nagy teljesítményű OCR motorral és beépített PDF exportálóval érkezik, így nem szükséges külön könyvtárakat használni a képkezeléshez vagy a PDF létrehozásához. + +### Teljes projekt vázlat + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Megjegyzés:** Cseréld le a `YOUR_DIRECTORY`‑t a gépeden lévő tényleges mappára. + +## 2. lépés: Kép betöltése – *Generate PDF from Image* alapja + +A forrásfájl betöltése egy apró, de kritikus lépés. Az Aspose.OCR egy `ImageStream`‑et vár, amely absztrahálja a fájl I/O‑t és számos formátumot támogat (TIFF, PNG, JPEG, stb.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Miért ne csak az útvonalat adod meg?** +Az `ImageStream` burkoló belső pufferelést kezel, és biztosítja, hogy az OCR motor nagy többoldalas TIFF‑ekkel is működjön anélkül, hogy egyszerre a teljes fájlt a memóriába töltené. + +## 3. lépés: PDF export beállítása – *Embed Image PDF* a tökéletes kereshetőségért + +Amikor OCR eredményeket exportálsz PDF‑be, két lehetőséged van: csak a kinyert szöveget ágyazd be, vagy az eredeti képet a rejtett szövegréteggel együtt. A kép beágyazása megőrzi a szken vizuális hűségét, és lehetővé teszi a felhasználók számára, hogy később szöveget jelöljenek ki vagy másoljanak. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Szélhelyzet:** Ha a `EmbedOriginalImage` értékét `false`‑ra állítod, a keletkező PDF kisebb lesz, de elveszíti az eredeti képet – hasznos tisztán szöveges archívumokhoz. + +## 4. lépés: Exportálás – *OCR to PDF C#* egy hívásban + +Az Aspose.OCR a nehéz munkát egy soros megoldássá teszi. Az `ExportToPdf` metódus futtatja az OCR‑t, felépíti a rejtett szövegréteget, és kiírja a végleges fájlt. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Várható eredmény + +A program futtatása kiírja: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Nyisd meg a `output.pdf`‑et bármely nézőben (Adobe Reader, Edge, stb.) és próbáld ki a szöveg kijelölését – látni fogod az eredeti képet alatta, ami megerősíti, hogy a **create searchable pdf** művelet sikeres volt. + +## 5. lépés: PDF ellenőrzése – Gyors ellenőrzések, amelyeket automatizálhatsz + +Bár egyetlen fájl esetén a kézi ellenőrzés rendben van, előfordulhat, hogy programozottan szeretnéd ellenőrizni, hogy a PDF tartalmaz-e szövegréteget. Az Aspose.PDF (egy testvérkönyvtár) képes beolvasni a dokumentumot és kinyerni a szöveget: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Adj hozzá egy hívást a `VerifyPdfContainsText(pdfPath);`‑hez az export után, ha automatizált ellenőrzést szeretnél. + +## Gyakori buktatók és hogyan kerüld el őket + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **Memóriahiány hatalmas TIFF‑eknél** | A teljes fájl egyszerre történő betöltése meghaladja a RAM-ot. | Használd az `ImageStream.FromFile`‑t (ahogy látható) és dolgozd fel az oldalakat egyesével, ha többoldalas fájlod van. | +| **Hiányzó licenc vízjeleket eredményez** | Az értékelő mód minden oldalra látható vízjelet helyez. | Alkalmazd az Aspose.OCR licencet korán: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Helytelen útvonal elválasztók Linuxon** | A keménykódolt `\` hibát okoz nem‑Windows operációs rendszeren. | Használd a `Path.Combine`‑t vagy nyers string literálokat `/`‑vel. | +| **A szöveg nem kereshető** | `EmbedOriginalImage` `false`‑ra van állítva vagy az OCR le van tiltva. | Győződj meg róla, hogy `PdfExportOptions.EmbedOriginalImage = true` és az OCR motor megfelelően inicializálva van. | + +## Bónusz: TIF konvertálása PDF‑be OCR nélkül (ha a szöveg nem szükséges) + +Ha csak **TIF‑t PDF‑be konvertálnod** kell a rejtett szövegréteg nélkül, teljesen kihagyhatod az OCR lépést: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## Teljes működő példa (másolás‑beillesztés kész) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Futtasd a programot, nyisd meg a `output.pdf`‑et, és egy hű másolatát fogod látni az eredeti TIFF‑nek, rejtett, kijelölhető szövegréteggel – pontosan ez jelenti a **create searchable pdf** gyakorlatban. + +## Következtetés + +Most végigvettük a teljes **create searchable pdf** munkafolyamatot C#‑ban. Egy nyers TIFF‑ből **pdf‑t generálunk képből**, úgy döntöttünk, hogy **embed image pdf** a vizuális hűség érdekében, és bemutattuk a teljes **ocr to pdf c#** csővezetéket az Aspose.OCR használatával. + +Nyugodtan módosítsd a `PdfExportOptions`‑t (tömörítés, PDF verzió, stb.) vagy láncolj több képet egymás után kötegelt feldolgozáshoz. Legközelebb érdemes lehet jelszóvédelem, digitális aláírások hozzáadása, vagy akár több kereshető PDF egy fő dokumentummá egyesítése. + +Van kérdésed a több ezer fájlra való skálázással vagy az ASP.NET API‑ba való integrálással kapcsolatban? Hagyj kommentet alább vagy jelezz a GitHub‑on – jó kódolást! + +![Kereshető PDF példa](/images/searchable-pdf.png "Kereshető PDF példa") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/hungarian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..6c0302772 --- /dev/null +++ b/ocr/hungarian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-04-11 +description: Szöveg kinyerése képből Aspose OCR használatával C#-ban. Tanulja meg, + hogyan töltsön be képet OCR-hez, és hogyan ismerje fel a szöveget TIFF‑fájlokból + GPU‑támogatással. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: hu +og_description: Szöveg kinyerése képből az Aspose OCR-rel C#-ban. Ez az útmutató bemutatja, + hogyan töltsünk be képet OCR-hez, és hogyan ismerjük fel a szöveget TIFF-fájlból + GPU-gyorsítással. +og_title: Képből szöveg kinyerése C#-ban – Teljes OCR útmutató +tags: +- OCR +- C# +- Aspose +- GPU +title: Szöveg kinyerése képből C#‑ban – Teljes OCR útmutató +url: /hu/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Kép szövegének kinyerése C#-ban – Teljes OCR útmutató + +Valaha is szükséged volt **kép szövegének kinyerésére**, de nem tudtad, melyik könyvtár képes egy óriási TIFF-et kezelni anélkül, hogy elakadozna? Nem vagy egyedül. Sok valós projektben – gondolj a számlák digitalizálására vagy a beolvasott könyvek archiválására – a kép betöltése OCR-hez, majd a szöveg felismerése TIFF-ből gyorsan döntő funkcióvá válik. + +Ebben az útmutatóban lépésről lépésre bemutatunk egy gyakorlati megoldást, amely pontosan ezt teszi az Aspose OCR for .NET használatával. A végére egy futtatható C# konzolalkalmazásod lesz, amely betölti a nagy felbontású beolvasást, elindítja a GPU‑gyorsított feldolgozást (elegáns visszaeséssel), és kiadja a sima szöveg eredményt. Nincs hiányzó rész, nincs „lásd a dokumentációt” zsákutcája. + +## Amire szükséged lesz + +- **.NET 6 vagy újabb** (a kód bármely friss SDK-val fordítható) +- **Aspose.OCR for .NET** NuGet csomag + `dotnet add package Aspose.OCR` +- Egy **nagy TIFF** vagy bármely más képformátum, amit OCR-ozni szeretnél + (a példában `large_scan.tif` használatos) +- (Opcionális) GPU, amely támogatja a CUDA 11+ – ha nincs, a könyvtár automatikusan CPU módra vált. + +Ennyi. Merüljünk bele. + +![Kép szövegének kinyerése Aspose OCR-rel C#-ban](image-placeholder.png "Kép szövegének kinyerése Aspose OCR-rel C#-ban") + +## 1. lépés: Kép szövegének kinyerése – OCR motor inicializálása + +Mielőtt bármely képet feldolgoznánk, szükség van egy `OcrEngine` példányra. A motor tartalmazza az összes beállítást, amely szabályozza a felismerés működését. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Miért fontos:** +A `ProcessingMode.Gpu` másodperceket takaríthat meg a felismerés időből egy modern kártyán, de a `ProcessingMode.Auto` beállítása (vagy az alapértelmezett hagyása) biztonságosabb olyan környezetekben, ahol a GPU hiányozhat. A `GpuMemoryLimit` korlátozás egy praktikus tipp – nélküle egy hatalmas kép elnyelheti az összes VRAM-ot és összeomlaszthat más alkalmazásokat. + +## 2. lépés: Kép betöltése OCR-hez – TIFF betöltése a memóriába + +Miután a motor készen áll, be kell táplálnunk a képet, amelyet elemezni szeretnénk. Az Aspose biztosítja a `ImageStream.FromFile`-t, amely elrejti a formátumkezelést. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Mi történik a háttérben?** +A `ImageStream.FromFile` beolvassa a fájlt egy streambe, és automatikusan felismeri a képformátumot (TIFF, PNG, JPEG, stb.). Ha többoldalas TIFF-ekkel dolgozol, az Aspose minden oldalt külön keretként kezel; később szükség esetén végigiterálhatsz rajtuk. + +## 3. lépés: Szöveg felismerése TIFF-ből – OCR motor futtatása + +A kép betöltése után kezdődik a nehéz munka. A `Recognize` metódus egy `OcrResult` objektumot ad vissza, amely tartalmazza a kinyert szöveget és néhány hasznos metaadat mezőt. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Miért hívjuk a `Recognize`-t csak egyszer?** +Mivel a motor az első futtatás után belső struktúrákat cache-eli, egyetlen hívás elegendő a legtöbb esetben. Ha sok oldalt kell feldolgozni, használd újra ugyanazt a `OcrEngine` példányt – ez elkerüli a GPU kontextusok újra‑inicializálásának többletterhelését. + +## 4. lépés: Eredmény megjelenítése – Kinyert szöveg mutatása + +Végül kiírjuk a felismert karakterláncot a konzolra. Egy valódi alkalmazásban valószínűleg adatbázisba vagy fájlba írnád. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Várható kimenet:** +Ha a `large_scan.tif` egy nyomtatott számlát tartalmaz, valami ilyesmit látsz majd: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +A pontos elrendezés a forrásképtől függ, de a lényeg, hogy most már **kép szövegének kinyerése** eredmények állnak rendelkezésedre a további feldolgozáshoz. + +## 5. lépés: Hibaelhárítás és szélhelyzetek + +### GPU nem észlelhető? + +Ha a példát egy kompatibilis GPU nélküli gépen futtatod, a motor csendben visszaesik CPU-ra, ha a `ProcessingMode.Auto`-t használod. A CPU mód kényszerítéséhez cseréld le a korábbi sort a következőre: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Memóriaigényes TIFF-ek + +Nagyon nagy beolvasások (pl. 10 000 × 10 000 px) még mindig meghaladhatják a beállított 1 GB GPU limitet. Ebben az esetben vagy növeld a `GpuMemoryLimit`-et (ha van szabad VRAM-od), vagy méretezd le a képet, mielőtt a motorba táplálnád: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Többoldalas dokumentumok + +Ha a TIFF több oldalt tartalmaz, iterálj rajtuk: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Nyelv‑ és betűtípus‑támogatás + +Az Aspose OCR automatikusan felismeri a latin‑alapú írásrendszereket, de cirill, arab vagy egyedi betűtípusok esetén nyelvi csomagra lehet szükség: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Profi tippek és bevált gyakorlatok + +- **Használd újra a motort**: Új `OcrEngine` létrehozása képenként észrevehető késleltetést okoz. +- **Kötegelt feldolgozás**: Több tucat TIFF kezelésekor sorba állítsd őket, és párhuzamos szálakban dolgozd fel – csak figyelj a GPU memória versengésre. +- **Eredmény ellenőrzése**: Az OCR nem tökéletes; futtass egyszerű helyesírás‑ellenőrzést vagy regex validálást a `ocrResult.Text`-en, hogy elkapd a nyilvánvaló hibákat. +- **Teljesítmény naplózása**: Mérd a `Stopwatch` által mért eltelt időt a `Recognize` előtt és után, hogy eldöntsd, megéri‑e a GPU gyorsítás a környezetedben. + +## Összegzés + +Most már egy teljes, vég‑től‑végig példát kapsz, amely **kép szövegének kinyerését** valósítja meg Aspose OCR használatával C#-ban. A kép betöltésével OCR-hez, a motor meghívásával a TIFF-ből szöveg felismeréséhez, valamint a GPU és CPU szcenáriók kezelésével ez az útmutató egy termelés‑kész alapot nyújt, amelyet számlák, útlevelek vagy bármely beolvasott dokumentum esetén testre szabhatsz. + +Mi a következő? Próbáld meg a TIFF-et egy többoldalas PDF-re cserélni, kísérletezz egyedi nyelvi csomagokkal, vagy irányítsd az eredményt egy természetes nyelvfeldolgozó csővezetékbe az automatikus adatkinyeréshez. A lehetőségek végtelenek – 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/hungarian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..ecf921078 --- /dev/null +++ b/ocr/hungarian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Szöveg kinyerése TIFF fájlokból az Aspose OCR kötegelt feldolgozással + C#-ban. Tanulja meg, hogyan dolgozzon hatékonyan kötegelt OCR-rel, és kapjon valós‑időben + előrehaladási visszajelzést. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: hu +og_description: Szöveg kinyerése TIFF fájlokból az Aspose OCR kötegelt feldolgozással + C#-ban. Ez az útmutató lépésről lépésre bemutatja, hogyan kell kötegelt OCR-t feldolgozni + és a folyamat állapotát olvasni. +og_title: Szöveg kinyerése TIFF-ből kötegelt OCR-rel C#-ban – Teljes útmutató +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Szöveg kinyerése TIFF-fájlból kötegelt OCR-rel C#-ban – Teljes útmutató +url: /hu/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Szöveg kinyerése TIFF‑ből – Teljes útmutató a kötegelt OCR‑hez + +Valaha is szükséged volt **extract text from TIFF** fájlok kinyerésére, de elakadtál a kötegelt feldolgozásnál? Nem vagy egyedül. Sok dokumentum‑automatizálási projektben a tucatnyi nagy felbontású TIF kép kezelése gyorsan szűk keresztmetszetté válik – különösen, ha élő visszajelzést szeretnél a haladásról. + +A jó hír? Az Aspose OCR‑val **process batch OCR** néhány sorban megvalósítható, valós‑időben kapunk előrehaladási eseményeket, és minden képhez kiírhatjuk a felismert szöveget. Ebben a tutorialban egy kész, futtatható C# konzolalkalmazást mutatunk be, amely pontosan ezt teszi. + +Mindent lefedünk, ami szükséges: a szükséges csomagok, miért fontos minden sor, a hiányzó fájlokhoz hasonló edge‑case‑ek, és hogyan ellenőrizheted az eredményeket. A végére képes leszel a mintát a saját megoldásodba beilleszteni, és azonnal szöveget kinyerni TIFF‑képekből. + +## Amit szükséged lesz + +- **.NET 6 vagy újabb** (a kód .NET Core‑ral is lefordítható) +- **Aspose.OCR for .NET** NuGet csomag – `Install-Package Aspose.OCR` +- Egy mappa, amely néhány **TIFF** képet tartalmaz, amelyet be szeretnél olvasni (a demó `img1.tif`, `img2.tif`, `img3.tif` fájlokat használ) +- Bármely kedvenc IDE – Visual Studio, Rider vagy VS Code megfelel + +Külön konfiguráció nem szükséges; a könyvtár saját OCR‑motorral érkezik, így nem kell külső natív binárisokat telepíteni. + +--- + +## 1. lépés – Az OCR Engine példány létrehozása + +Az első dolog, amit csinálsz, hogy elindítod az `OcrEngine`‑t. Gondolj rá úgy, mint egy agyra, amely minden pixelt elemez és karakterekké alakít. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Miért fontos:** +> A motor belső nyelvi modelleket és beállításokat (pl. DPI, nyelv) tartalmaz. Egy példány létrehozása és többszöri újrahasználata egy köteghez sokkal hatékonyabb, mint minden képnél új motor példányosítása. + +--- + +## 2. lépés – Valós‑idő előrehaladási események csatlakoztatása + +Ha tucatnyi TIFF fájlt dolgozol fel, egy előrehaladási mutató megmenthet attól, hogy azon tűnjön, hogy az alkalmazás elakadt. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +A `ProgressChanged` esemény minden kép feldolgozása után lefut, és megadja a `Current`, `Total`, valamint a `Percentage` értékeket. Ez a **process batch OCR** visszajelzési hurkó, amelyet a legtöbb fejlesztő elfelejt megvalósítani. + +--- + +## 3. lépés – Képfájl‑stream‑lista felépítése + +Az Aspose.OCR `ImageStream` objektumokkal dolgozik. A legegyszerűbb módja, ha minden TIFF‑et lemezről betöltesz. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tipp:** +> Ha dinamikus mappáról van szó, cseréld le a keménykódolt listát a `Directory.GetFiles(path, "*.tif")` és `Select(ImageStream.FromFile)` kombinációra – így valóban **process batch OCR**‑t hajtasz végre manuális frissítés nélkül. + +--- + +## 4. lépés – A kötegelt OCR folyamat futtatása + +Most történik a nehéz munka. A `ProcessBatch` egy csak‑olvasásra szánt listát ad vissza `OcrResult` objektumokból, amelyek mindegyike a kinyert szöveget és a megbízhatósági pontszámokat tartalmazza. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Miért hatékony:** +> A motor ugyanazt a nyelvi modellt használja minden képnél, ami drámaian csökkenti a memóriahasználatot az egykép‑hívásokhoz képest. + +--- + +## 5. lépés – A felismert szöveg megjelenítése vagy tárolása + +Végül iterálj a találatokon. Egy valódi projektben adatbázisba vagy JSON‑fájlba írnád őket, de a demóhoz egyszerűen a konzolra nyomtatjuk. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Várható konzolkimenet** (rövidítve): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Ha bármelyik kép feldolgozása sikertelen, a `result.Text` egy üres string lesz, és a `ProgressChanged` esemény továbbra is azt jelzi, hogy az elem feldolgozásra került – így a hibákat külön naplózhatod. + +--- + +## A Progress Event Handler (teljes kód) + +Helyezd el ezt a metódust bárhol a `BatchDemo` osztályon belül – leginkább a `Main` után. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tipp:** +> Irányítsd ezt a kimenetet egy UI progress bar felé, ha asztali alkalmazást építesz; ugyanaz az esemény működik WinForms‑nél, WPF‑nél vagy akár ASP.NET Core SignalR értesítéseknél is. + +--- + +## Teljes, kész‑futtatható minta + +Mindent összegezve, itt a teljes program, amelyet be tudsz másolni egy új konzolprojektbe. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Mentsd a fájlt `Program.cs`‑ként, futtasd a `dotnet add package Aspose.OCR` parancsot, cseréld ki a `YOUR_DIRECTORY`‑t a tényleges útvonalra, és nyomd meg a **Ctrl+F5**‑öt. A konzolon először a haladási számok, majd minden TIFF‑hez a kinyert szöveg jelenik meg. + +--- + +## Gyakori edge case‑ek kezelése + +| Helyzet | Mire figyelj | Gyors megoldás | +|-----------|-------------------|-----------| +| **Hiányzó vagy sérült TIFF** | `ImageStream.FromFile` `FileNotFoundException`‑t vagy `ArgumentException`‑t dob. | A lista létrehozását `try/catch`‑ben tedd, és hagyd ki a hibás fájlokat, miközben naplózod a problémát. | +| **Nagyon nagy képek ( >10 MP )** | Az OCR sok RAM‑ot fogyaszt és lassul. | Csökkentsd a DPI‑t a feldolgozás előtt: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Nem‑angol szöveg** | Alapértelmezett nyelvi modell az angol. | Állítsd be a `ocrEngine.Language = Language.Spanish;`‑t (vagy bármely támogatott nyelvet). | +| **Eredmények mentése szükséges** | A konzolkimenet nem tartós. | Írd a `result.Text`‑et egy `.txt` fájlba a `File.WriteAllText` segítségével. | + +Ezeknek a szcenárióknak a kezelése robusztus megoldást ad, és azt mutatja, hogy átgondoltad a „boldog útvonalon” túlmutató eseteket is. + +--- + +## Következő lépések és kapcsolódó témák + +- **Szöveg kinyerése PDF‑ből** – hasonló API, csak az `ImageStream` helyett `PdfDocument`‑ot használsz. +- **Párhuzamos kötegelt OCR** – nagy terhelés esetén indíts több `OcrEngine` példányt külön szálakon; ne feledd a licenckorlátokat. +- **Utófeldolgozás** – futtasd az OCR‑kimenetet helyesírás‑ellenőrzőn vagy regex‑en, hogy eltávolítsd a gyakori OCR‑hibákat. + +Mindezek a kiterjesztések továbbra is a **process batch OCR** alapelvre épülnek, és fokozatosan hozzáadhatók. + +--- + +## Összegzés + +Megmutattuk, hogyan lehet **extract text from TIFF** fájlokból hatékonyan **process batch OCR**‑val az Aspose OCR‑val C#‑ban. A minta egyetlen motort hoz létre, feliratkozik a progressz eseményekre, betölti a képfájl‑stream‑listát, lefuttatja a kötegelt feldolgozást, és kiírja minden eredményt. + +Innen már integrálhatod a kimenetet adatbázisokba, kereshető PDF‑ekbe, vagy továbbíthatod downstream NLP pipeline‑okba. A lehetőségek végtelenek – kísérletezz nyelvi beállításokkal, DPI‑tune‑okkal és párhuzamos végrehajtással, hogy a saját munkaterhelésedhez igazodjon. + +Van kérdésed, vagy szeretnéd megosztani, hogyan testre szabtad a köteget? Írj 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/hungarian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..a6a39416b --- /dev/null +++ b/ocr/hungarian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-11 +description: Tanulja meg, hogyan ismerje fel a szöveget PNG-ből, és hogyan nyerje + ki a szöveget képből C#-ban az Aspose OCR használatával. Tartalmazza a képfájl betöltésének + C# lépéseit, a helyesírás-ellenőrzést és a teljes kódot. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: hu +og_description: Ismerje fel a szöveget PNG-ből könnyedén C#-val. Kövesse ezt a lépésről‑lépésre + útmutatót a képfájl C#-ban történő betöltéséhez, a képből szöveg kinyeréséhez C#-ban, + és a helyesírás-ellenőrzés futtatásához. +og_title: Szöveg felismerése PNG-ből C#-ban – Teljes OCR útmutató +tags: +- OCR +- C# +- Aspose +title: Szöveg felismerése PNG-ből C#-ban – Teljes OCR és helyesírás-ellenőrző útmutató +url: /hu/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# szöveg felismerése png‑ből – Teljes C# OCR és helyesírás-ellenőrző útmutató + +Valaha szükséged volt **recognize text from png** fájlok szövegének felismerésére, de nem tudtad, melyik könyvtárat válaszd? Nem vagy egyedül; sok fejlesztő szembesül ezzel, amikor először foglalkozik képalapú adatkinyeréssel. A jó hír? Az Aspose OCR segítségével betölthetsz egy képfájlt C#‑ban, kinyerheted a szöveget, és még beépített helyesírás-ellenőrzőt is futtathatsz – mindezt néhány sorban. + +Ebben az útmutatóban végigvezetünk a teljes folyamaton: a PNG betöltése, az OCR motor meghívása, és végül a helytelen szavak ellenőrzése. A végére képes leszel **extract text from image C#** projekteket anélkül, hogy szétszórt dokumentációk között keresgélnél. Korábbi OCR tapasztalat nem szükséges, csak egy .NET fejlesztői környezet. + +## Amit szükséged lesz + +- **.NET 6.0** (vagy bármely friss .NET verzió) – az API ugyanúgy működik a .NET Core és a Framework között. +- **Aspose.OCR for .NET** NuGet csomag – telepítsd a `dotnet add package Aspose.OCR` paranccsal. +- Egy **PNG kép**, amely olvasható szöveget tartalmaz (például `letter.png`, egy általad irányított mappában elhelyezve). +- Egy kódszerkesztő vagy IDE (Visual Studio, VS Code, Rider – válaszd a kedved szerint). + +Ennyi. Nincs extra OCR motor, nincs natív DLL, csak egy tiszta, kezelt csomag. + +--- + +## 1. lépés: PNG képfájl betöltése C#‑ban + +Mielőtt az OCR motor bármit is tenne, szüksége van egy áramlásra (stream), amely a képre mutat. Az Aspose a `ImageStream.FromFile`‑t biztosítja, amely elrejti a fájlrendszer részleteit. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tipp:** Ha a képed erőforrásként van beágyazva vagy webkéréssel érkezik, használhatod a `ImageStream.FromBytes(byte[])`‑t helyette – nem kell a fájlrendszert érintened. + +### Miért fontos a betöltés + +A kép helyes betöltése biztosítja, hogy az OCR motor a várt pixeladatokat kapja. Egy sérült stream miatt a `Recognize` kivételt dob, és később időt vesztegetsz a hibakereséssel. + +## 2. lépés: OCR motor inicializálása + +Az `OcrEngine` példány létrehozása olcsó, de érdemes lehet finomhangolni a nyelvet vagy a pontossági beállításokat specifikus esetekhez (pl. többnyelvű dokumentumok). Az alapértelmezett konstruktor jól működik angol szöveghez. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Miért szükséges motor példány? + +A motor tárolja a konfigurációt (nyelv, előfeldolgozó szűrők stb.). A konfiguráció és a kép szétválasztásával ugyanazt a motort sok fájlhoz újra felhasználhatod – nagyszerű kötegelt feldolgozáshoz. + +## 3. lépés: Szöveg felismerése a PNG‑ből + +Most jön a varázslat. A `Recognize` egy `OcrResult` objektumot ad vissza, amely a nyers karakterláncot, a bizalmi pontszámokat és egyebeket tartalmazza. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Várható kimenet** (feltételezve, hogy a `letter.png` „Hello World!” feliratot tartalmaz): + +``` +=== OCR Output === +Hello World! +``` + +Ha a kép több sort tartalmaz, az eredmény megőrzi a sortöréseket, így az utólagos feldolgozás egyszerű. + +### Szélsőséges eset: alacsony felbontású PNG‑k + +Ha az OCR eredmény összekuszáltnak tűnik, fontold meg a kép felméretezését vagy a `ocrEngine.PreprocessingOptions` módosítását. Az alacsony DPI‑s képek gyakran elveszítik a részleteket, amelyekre a motor támaszkodik. + +## 4. lépés: Beépített helyesírás-ellenőrző futtatása + +Az Aspose OCR egy könnyű helyesírás-ellenőrző modullal érkezik, amely közvetlenül az OCR eredményen működik. Ez a lépés segít elkapni a hibás felismeréseket, például a „H3llo” helyett a „Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Minta kimenet** (ha az OCR a „World” szót „W0rld”‑ként olvasta): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Miért helyesírás-ellenőrzés? + +Az OCR soha nem 100 % tökéletes, különösen zajos háttér esetén. Egy gyors helyesírás-ellenőrzés kiszűrheti a nyilvánvaló hibákat, mielőtt a szöveget további elemzésekbe vagy adatbázisokba táplálnád. + +## 5. lépés: Összeállítás – Teljes működő példa + +Az alábbiakban a teljes, futtatható program látható. Másold be egy új konzolprojektbe, állítsd be a képfájl útvonalát, és nyomd meg a **F5**‑öt. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**A demó futtatása** kiírja az OCR szöveget, majd a helyesírási javaslatokat. Bármely olyan PNG‑n működik, amely tiszta, nyomtatott angol szöveget tartalmaz. Más nyelvekhez egyszerűen állítsd be a `ocrEngine.Language`‑t ennek megfelelően. + +## Gyakori kérdések és buktatók + +| Kérdés | Válasz | +|----------|--------| +| *Feldolgozhatok JPEG vagy BMP fájlokat?* | Abszolút—`ImageStream.FromFile` bármely, az Aspose által támogatott formátumot elfogad (PNG, JPEG, BMP, TIFF). | +| *Mi van, ha a kép memóriaáramban van?* | Használd a `ImageStream.FromBytes(byteArray)` vagy `ImageStream.FromStream(stream)` metódust. | +| *A helyesírás-ellenőrző nyelvtudatos?* | Igen, figyelembe veszi az OCR motoron beállított nyelvet. | +| *Hogyan javíthatom a pontosságot ferde képeken?* | Állítsd be `ocrEngine.PreprocessingOptions.Deskew = true;` a `Recognize` hívása előtt. | +| *Szükségem van licencre az Aspose.OCR‑hoz?* | Az ingyenes próba legfeljebb 100 oldalra működik. Termeléshez licencet kell beszerezni a vízjelek eltávolításához. | + +## Következő lépések – Túl a alap OCR‑n + +Miután már képes vagy **recognize text from png** és **extract text from image C#** műveletekre, fontold meg a következő kiterjesztéseket: + +1. **Kötegelt feldolgozás** – Iterálj egy PNG‑ek könyvtárán, és írd az egyes OCR eredményeket külön `.txt` fájlba. +2. **Integráció az Azure Cognitive Services‑szel** – Kombináld az Aspose OCR‑t felhőalapú fordítási API‑kkal a többnyelvű folyamatokhoz. +3. **Strukturált adatkinyerés** – Használj reguláris kifejezéseket a `recognizedText`‑en dátumok, számlaszámok vagy címek kinyeréséhez. +4. **Teljesítményhangolás** – Nagy mennyiség esetén használd újra egyetlen `OcrEngine` példányt, és engedélyezd a több szálas feldolgozást. + +Ezek mind a lefektetett alaplépésekre épülnek, lehetővé téve, hogy egy egyszerű képet cselekvőképes adatokra alakíts. + +## Összegzés + +Végigvezettünk egy teljes, vég‑től‑végig példán keresztül, amely bemutatja, hogyan **recognize text from png** C#‑ban, hogyan **load image file C#** helyesen, és hogyan **extract text from image C#**, miközben a helyesírási hibákat is elkapod. A kód önálló, a magyarázatok mind a „hogyan”, mind a „miért” kérdésre választ adnak, és most már szilárd alapod van bármely OCR‑alapú funkcióhoz. + +Próbáld ki, finomhangold az előfeldolgozási beállításokat, és nézd meg, mennyire tiszta lesz a kinyert szöveg. Ha bármilyen furcsasággal találkozol, írj 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/indonesian/net/ocr-configuration/_index.md b/ocr/indonesian/net/ocr-configuration/_index.md index 6dff131fd..b71d7f048 100644 --- a/ocr/indonesian/net/ocr-configuration/_index.md +++ b/ocr/indonesian/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ 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 secara mulus. ### [OCROperation dengan Daftar dalam Pengenalan Gambar OCR](./ocr-operation-with-list/) Buka potensi Aspose.OCR untuk .NET. Lakukan pengenalan gambar OCR dengan daftar secara mudah. Tingkatkan produktivitas dan ekstraksi data dalam aplikasi Anda. +### [Cara Menonaktifkan OCR di C# – Panduan Offline Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Pelajari cara menonaktifkan fungsi OCR dalam aplikasi C# secara offline menggunakan Aspose OCR. ### Kasus Penggunaan Umum - **Ekstrak gambar teks** dari faktur yang dipindai untuk akuntansi otomatis. @@ -98,4 +100,4 @@ A: Ya, objek `OcrResult` menyediakan nilai kepercayaan yang dapat Anda periksa s {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/indonesian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..1406027fd --- /dev/null +++ b/ocr/indonesian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Pelajari cara menonaktifkan OCR di Aspose OCR untuk C# agar dapat berjalan + secara offline, mengekstrak teks dari gambar tanpa internet, dan memuat gambar dengan + benar untuk OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: id +og_description: Cara menonaktifkan OCR di Aspose OCR untuk C# dan menjalankannya secara + offline, mengekstrak teks dari gambar tanpa memerlukan internet, serta memuat gambar + untuk OCR dengan mudah. +og_title: Cara Menonaktifkan OCR di C# – Panduan OCR Offline Aspose +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Cara Menonaktifkan OCR di C# – Panduan OCR Offline Aspose +url: /id/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menonaktifkan OCR di C# – Panduan Aspose OCR Offline + +Pernah bertanya-tanya **bagaimana cara menonaktifkan OCR** ketika Anda membutuhkan solusi yang benar‑benar offline? Mungkin Anda sedang membangun aplikasi desktop yang aman dan tidak dapat mengandalkan koneksi jaringan, atau Anda hanya ingin menghindari unduhan yang tidak terduga. Bagaimanapun, kabar baiknya adalah Aspose OCR memungkinkan Anda mematikan pengambilan sumber daya otomatisnya, menunjuk ke folder lokal, dan menjaga semuanya tetap di‑lokasi. Dalam tutorial ini Anda juga akan melihat cara **mengekstrak teks dari gambar** dan **memuat gambar untuk OCR** dengan benar tanpa kendala. + +Kami akan membimbing Anda melalui contoh lengkap yang siap dijalankan yang menunjukkan setiap langkah—dari menginisialisasi engine hingga mencetak teks Jepang yang dikenali. Tanpa dokumen eksternal, tanpa keajaiban tersembunyi; hanya kode C# biasa yang dapat Anda masukkan ke dalam proyek Anda hari ini. Pada akhir tutorial Anda akan mengerti mengapa menonaktifkan fitur unduhan otomatis penting, cara mengatur jalur sumber daya, dan jebakan‑jebakan apa yang harus diwaspadai. + +## Prasyarat + +- .NET 6.0 (atau versi .NET terbaru) terpasang di mesin Anda. +- Paket NuGet Aspose.OCR untuk .NET (`Install-Package Aspose.OCR`). +- Folder yang sudah berisi sumber daya bahasa yang Anda perlukan (misalnya model Jepang). +- File gambar (`japan_doc.png`) yang ingin Anda proses dengan OCR. + +Jika Anda belum memiliki paket bahasa, unduh sekali saja dari portal Aspose, ekstrak ke folder seperti `AsposeOCRResources`, dan Anda siap. Tidak ada unduhan lebih lanjut yang akan terjadi setelah Anda menonaktifkan fitur unduhan otomatis. + +![How to disable OCR offline](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## Langkah 1 – Buat Instance OCR Engine + +Hal pertama yang Anda lakukan adalah menginstansiasi `OcrEngine`. Anggap objek ini sebagai otak yang akan membaca gambar Anda. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Mengapa ini penting:** Tanpa engine Anda tidak dapat mengonfigurasi apa pun. Objek tersebut menyimpan semua pengaturan, termasuk flag penting yang memberi tahu perpustakaan apakah ia boleh mengakses internet. + +## Langkah 2 – Nonaktifkan Unduhan Sumber Daya Otomatis + +Secara default Aspose OCR akan mencoba mengambil file bahasa yang hilang secara otomatis. Untuk menjaga semuanya tetap offline, ubah saklar `AutoDownloadResources` menjadi `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Tips pro:** Mematikan ini tidak hanya menjamin privasi tetapi juga mempercepat proses pengenalan pertama karena engine tidak akan membuang waktu memeriksa pembaruan. + +## Langkah 3 – Arahkan ke Folder Sumber Daya Lokal Anda + +Sekarang beri tahu engine di mana paket bahasa yang sudah diunduh sebelumnya berada. Ini adalah jalur yang Anda siapkan pada bagian prasyarat. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Apa yang bisa salah?** Jika jalur salah atau file bahasa yang diperlukan tidak ada, engine akan melempar `ResourceNotFoundException`. Periksa kembali ejaan folder dan pastikan model Jepang (`jpn.traineddata`) ada. + +## Langkah 4 – Pilih Model Bahasa Lokal + +Pilih bahasa yang sebenarnya Anda miliki di disk. Pada contoh kami menggunakan bahasa Jepang, tetapi Anda dapat mengganti `Language.Japanese` dengan bahasa lain yang telah Anda unduh. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Kasus khusus:** Beberapa bahasa memerlukan kamus tambahan (misalnya, bahasa Mandarin). Pastikan file tambahan tersebut juga berada di folder sumber daya yang sama. + +## Langkah 5 – Muat Gambar untuk OCR + +Di sinilah kita **memuat gambar untuk OCR**. Metode `ImageStream.FromFile` membaca file ke dalam stream yang dapat diproses oleh Aspose. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tip:** Format yang didukung meliputi PNG, JPEG, BMP, dan TIFF. Jika Anda perlu menangani PDF, konversi setiap halaman menjadi gambar terlebih dahulu. + +## Langkah 6 – Jalankan Proses Pengenalan + +Sekarang engine benar‑benar membaca piksel dan mencoba mengubahnya menjadi teks. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Mengapa langkah ini dapat lambat:** OCR membutuhkan banyak CPU, terutama untuk gambar beresolusi tinggi. Jika kinerja menjadi perhatian, pertimbangkan menurunkan skala gambar sebelum pengenalan. + +## Langkah 7 – Keluarkan Teks yang Diekstrak + +Akhirnya, kami **mengekstrak teks dari gambar** dan mencetaknya ke konsol. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Menjalankan program harus menampilkan karakter Jepang yang ada di `japan_doc.png`. Jika semuanya telah diatur dengan benar, Anda akan melihat blok teks Unicode yang bersih di konsol Anda. + +### Output yang Diharapkan + +``` +これはサンプルの日本語テキストです。 +``` + +*(Output sebenarnya akan bergantung pada isi gambar.)* + +## Kesalahan Umum & Cara Menghindarinya + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **File bahasa hilang** | `AutoDownloadResources` bernilai false, sehingga engine tidak dapat mengambilnya. | Pastikan `ResourcesPath` mengarah ke folder yang berisi `jpn.traineddata`. | +| **Jalur gambar tidak tepat** | `ImageStream.FromFile` melempar `FileNotFoundException`. | Gunakan jalur absolut atau pastikan direktori kerja diatur dengan benar. | +| **Format gambar tidak didukung** | Aspose hanya membaca format tertentu. | Konversi gambar Anda ke PNG atau JPEG sebelum memanggil `FromFile`. | +| **Kekurangan memori pada gambar besar** | OCR memuat seluruh gambar ke dalam memori. | Ubah ukuran atau bagi gambar menjadi beberapa bagian, atau tingkatkan batas memori proses. | + +## Memperluas Contoh + +- **Pemrosesan batch:** Loop melalui direktori gambar, panggil kode pengenalan yang sama, dan tulis setiap hasil ke file `.txt` terpisah. +- **Bahasa berbeda:** Ganti `Language.Japanese` dengan `Language.English` (atau bahasa lain) setelah menempatkan file sumber daya yang sesuai. +- **Pra‑pemrosesan khusus:** Gunakan Aspose.Imaging untuk mengoreksi kemiringan atau meningkatkan kontras sebelum OCR demi akurasi yang lebih baik. + +## Kesimpulan + +Sekarang Anda tahu **cara menonaktifkan OCR** di Aspose OCR untuk C# dan menjalankannya sepenuhnya offline. Dengan mengatur `AutoDownloadResources` menjadi `false`, mengarahkan engine ke folder sumber daya lokal, dan **memuat gambar untuk OCR** dengan benar, Anda dapat dengan andal **mengekstrak teks dari gambar** tanpa pernah menyentuh internet. Pendekatan ini ideal untuk lingkungan yang aman, pipeline CI, atau skenario apa pun di mana akses jaringan terbatas. + +Siap untuk langkah selanjutnya? Cobalah memproses seluruh folder PDF yang dipindai, bereksperimen dengan paket bahasa yang berbeda, atau integrasikan hasil OCR ke dalam basis data yang dapat dicari. Pengaturan offline yang Anda bangun hari ini merupakan fondasi yang kuat untuk alur kerja pemrosesan dokumen on‑premises apa pun. + +Selamat coding, dan jangan ragu meninggalkan komentar jika Anda mengalami kendala! + +{{< /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 74145b54e..096975168 100644 --- a/ocr/indonesian/net/ocr-optimization/_index.md +++ b/ocr/indonesian/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Jelajahi Aspose.OCR untuk .NET. Tingkatkan akurasi OCR dengan filter preprocessi Tingkatkan akurasi OCR dengan Aspose.OCR untuk .NET. Perbaiki ejaan, sesuaikan kamus, dan capai pengenalan teks bebas kesalahan dengan mudah. ### [Simpan Hasil Multipage sebagai Dokumen dalam OCR Image Recognition](./save-multipage-result-as-document/) Buka potensi Aspose.OCR untuk .NET. Simpan hasil OCR multipage sebagai dokumen dengan mudah menggunakan panduan langkah demi langkah yang komprehensif ini. +### [Cara Meningkatkan Akurasi OCR di C# dengan Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Pelajari teknik meningkatkan akurasi OCR di C# menggunakan Aspose OCR, termasuk preprocessing dan penyesuaian parameter. ## Pertanyaan yang Sering Diajukan diff --git a/ocr/indonesian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/indonesian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..d66f6bf75 --- /dev/null +++ b/ocr/indonesian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Pelajari cara meningkatkan OCR di C# dengan mengenali teks dari JPG, + meluruskan gambar, dan menghilangkan noise menggunakan Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: id +og_description: Temukan cara meningkatkan OCR dengan mengenali teks dari JPG, memperbaiki + kemiringan gambar, dan menghilangkan noise—panduan lengkap C#. +og_title: Cara Meningkatkan Akurasi OCR di C# dengan Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Cara Meningkatkan Akurasi OCR di C# dengan Aspose OCR +url: /id/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Meningkatkan Akurasi OCR di C# dengan Aspose OCR + +Pernah bertanya-tanya **how to improve OCR** hasil ketika pemindaian Anda terlihat lebih seperti seni abstrak daripada teks yang dapat dibaca? Anda bukan satu-satunya. Dalam banyak proyek dunia nyata—seperti faktur, kwitansi, atau catatan tulisan tangan—gambar sumber sering miring, berbutir, atau hanya berisik. Kabar baiknya? Aspose OCR memberi Anda beberapa pengaturan pra‑pemrosesan yang dapat mengubah kekacauan itu menjadi karakter bersih yang dapat dibaca mesin. Dalam tutorial ini kami akan membahas contoh lengkap yang siap dijalankan yang menunjukkan **how to improve OCR** dengan **recognize text from JPG**, meluruskan gambar, dan menghilangkan noise yang tidak diinginkan. + +> *Pro tip:* Jika Anda melewatkan pra‑pemrosesan, kemungkinan besar Anda akan mendapatkan output yang berantakan seperti teka‑teki silang yang misterius. Mari hindari itu. + +![Cara meningkatkan OCR dengan pra‑pemrosesan Aspose OCR](https://example.com/ocr-preprocess.png "cara meningkatkan OCR dengan Aspose OCR") + +## Apa yang Akan Anda Pelajari + +Dalam beberapa menit ke depan Anda akan melihat: + +1. Cara menyiapkan mesin Aspose OCR untuk akurasi optimal. +2. Kode tepat yang diperlukan untuk **recognize text from JPG** file. +3. Mengapa mengaktifkan *AutoDeskew* dan *RemoveNoise* penting dan cara menyesuaikannya. +4. Cara **extract text from image** file tanpa menulis filter khusus. +5. Jebakan umum (file hilang, format tidak didukung) dan perbaikan cepat. + +Pada akhir Anda akan memiliki satu aplikasi konsol C# yang dapat mengambil JPG apa pun, membersihkannya, dan mengeluarkan string yang diekstrak—siap untuk pemrosesan lanjutan atau penyimpanan. + +## Prasyarat + +- .NET 6.0 SDK atau lebih baru (contoh menggunakan pernyataan tingkat atas untuk singkat). +- Paket NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Contoh gambar JPG (dengan nama `input.jpg`) ditempatkan di folder yang sama dengan executable. +- Pemahaman dasar tentang C#—tidak memerlukan konsep lanjutan. + +Jika Anda sudah memiliki proyek, cukup tempelkan kode di dalamnya; jika tidak, buat aplikasi konsol baru: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Sekarang mari kita selami kode. + +## Cara Meningkatkan OCR: Ikhtisar Pengaturan Pra‑Pemrosesan + +Inti dari **how to improve OCR** terletak pada objek `PreprocessSettings`. Anggaplah sebagai editor gambar mini yang berjalan *sebelum* mesin pengenalan karakter yang sebenarnya dijalankan. Berikut adalah rangkuman cepat dari flag paling berpengaruh: + +| Setting | Apa yang dilakukannya | Kasus penggunaan umum | +|------------------------|-------------------------------------------------------------------|-----------------------| +| `AutoDeskew` | Menerapkan algoritma de‑skew berbasis deep‑learning. | Halaman yang dipindai sedikit miring. | +| `AdaptiveThreshold` | Meningkatkan kontras pada gambar dengan cahaya rendah atau pudar.| Kwitansi lama dengan tinta yang pudar. | +| `RemoveNoise` | Menjalankan filter Gaussian‑blur untuk mengurangi bintik‑bintik. | Foto yang diambil dengan lampu kilat smartphone. | +| `NoiseRemovalStrength`| Mengontrol tingkat agresivitas (1 = rendah, 3 = tinggi). | Sesuaikan berdasarkan seberapa berbutir sumbernya. | + +Mengaktifkan opsi-opsi ini pada dasarnya adalah “bumbu rahasia” untuk **how to improve OCR** pada masukan yang tidak sempurna. + +## Mengenali Teks dari JPG dengan Aspose OCR + +Berikut adalah program lengkap yang siap dijalankan. Setiap baris diberi anotasi sehingga Anda dapat melihat *mengapa* setiap bagian ada, bukan hanya *apa* yang dilakukannya. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Output yang Diharapkan + +Jika `input.jpg` berisi frasa “Invoice #12345 – Total: $256.78”, konsol akan mencetak: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Perhatikan bagaimana outputnya bersih, dengan tanda hubung dan simbol dolar tetap—tepat seperti yang Anda harapkan saat **extracting text from image** file. + +## Cara Meluruskan Gambar Menggunakan Pengaturan Pra‑Pemrosesan + +Mengapa pelurusan penting? Bahkan kemiringan 2‑derajat pun dapat membingungkan tahap segmentasi karakter, menyebabkan huruf teridentifikasi salah. Flag `AutoDeskew` menjalankan jaringan saraf konvolusional di balik layar yang mendeteksi sudut dominan dan memutar gambar kembali ke posisi dasar. + +Jika Anda membutuhkan kontrol lebih, Anda dapat mengatur sudut secara manual: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Kapan menggunakan deskew manual:** Jika Anda tahu kamera secara konsisten memiringkan gambar dengan jumlah tetap (misalnya, scanner yang dipasang), mengkodekan sudut secara keras menghemat sedikit waktu pemrosesan. + +## Cara Menghilangkan Noise untuk Ekstraksi yang Lebih Bersih + +Noise muncul sebagai bintik‑bintik acak atau butir, terutama pada foto dengan cahaya rendah. Flag `RemoveNoise` menerapkan filter bilateral yang menghaluskan latar belakang sambil mempertahankan tepi (karakter sebenarnya). Properti `NoiseRemovalStrength` memungkinkan Anda mengatur tingkat agresivitas: + +| Kekuatan | Efek | +|----------|------| +| 1 | Penghalusan ringan—baik untuk gambar yang sedikit berbutir. | +| 2 | Seimbang—berfungsi untuk sebagian besar foto smartphone. | +| 3 | Penghalusan berat—gunakan ketika gambar sangat berisik, tetapi hati-hati mengaburkan goresan tipis. | + +Jika Anda menemukan situasi di mana font kecil menjadi tidak terbaca setelah penghalusan berat, cukup turunkan kekuatan atau nonaktifkan filter sepenuhnya. + +## Ekstrak Teks dari Gambar: Lebih dari JPG + +Meskipun demo kami berfokus pada JPG, Aspose OCR mendukung PNG, BMP, TIFF, dan bahkan halaman PDF. Untuk **extract text from image** format selain JPG, cukup ubah ekstensi file di `ImageStream.FromFile`. Untuk TIFF multi‑halaman Anda dapat melakukan loop melalui setiap halaman: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Potongan kode itu menunjukkan bagaimana Anda dapat memperluas alur kerja **how to improve OCR** yang sama untuk memproses batch seluruh tumpukan dokumen yang dipindai. + +## Jebakan Umum & Cara Memperbaikinya + +| Gejala | Penyebab Kemungkinan | Perbaikan Cepat | +|--------|----------------------|-----------------| +| Output kosong | Gambar menjadi sepenuhnya putih setelah pra‑pemrosesan (threshold terlalu agresif) | Kurangi `NoiseRemovalStrength` atau set `AdaptiveThreshold = false`. | +| Karakter berantakan | Model bahasa salah (default adalah English) | Set `ocrEngine.Settings.Language = Language.English;` atau muat paket bahasa khusus. | +| Crash pada file besar | Kekurangan memori karena gambar beresolusi tinggi | Turunkan skala dengan `ocrEngine.Settings.ImageResizeFactor = 0.5;` sebelum pengenalan. | +| Tidak ada output untuk pemindaian yang diputar | `AutoDeskew` tidak sengaja dinonaktifkan | Aktifkan `AutoDeskew = true` atau berikan `DeskewAngle` yang benar. | + +Menyimpan hal ini dalam pikiran akan menghemat berjam-jam debugging ketika Anda mencoba **how to improve OCR** dalam pipeline produksi. + +## Bonus: Menyesuaikan untuk Kecepatan vs. Akurasi + +Jika Anda memproses ribuan kwitansi per hari, Anda mungkin memprioritaskan kecepatan. Matikan `AdaptiveThreshold` dan set `NoiseRemovalStrength = 1`. Sebaliknya, untuk dokumen hukum di mana satu karakter yang terlewat dapat mahal, biarkan semua flag aktif dan pertimbangkan meningkatkan `NoiseRemovalStrength` menjadi 3. + +## Kesimpulan + +Kami telah membahas seluruh perjalanan **how to improve OCR** di C# menggunakan Aspose OCR: mulai dari membuat mesin, mengonfigurasi pra‑pemrosesan (fondasi dari *how to deskew image* dan *how to remove noise*), memuat JPG, mengenali teks, dan menangani kasus tepi. Kode ini berdiri sendiri, dapat dijalankan langsung, dan menunjukkan langkah tepat yang Anda perlukan untuk **recognize text from jpg** dan **extract text from image** file. + +### Apa Selanjutnya? + +- Bereksperimen dengan format gambar lain (PNG, TIFF) untuk melihat bagaimana pengaturan yang sama berperilaku. +- Integrasikan output OCR ke dalam basis data atau + +{{< /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 7aee7bb85..2c935ae79 100644 --- a/ocr/indonesian/net/text-recognition/_index.md +++ b/ocr/indonesian/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Buat PDF yang Dapat Dicari di C# – Panduan Lengkap](./create-searchable-pdf-in-c-complete-guide/) +Pelajari cara membuat PDF yang dapat dicari menggunakan C# dengan panduan lengkap, langkah demi langkah, untuk meningkatkan aplikasi Anda. +### [Ekstrak Teks dari Gambar dalam C# – Panduan OCR Lengkap](./extract-text-from-image-in-c-complete-ocr-guide/) +Pelajari cara mengekstrak teks dari gambar menggunakan C# dengan panduan OCR lengkap, langkah demi langkah, untuk meningkatkan aplikasi Anda. +### [Ekstrak Teks dari TIFF dengan Batch OCR di C# – Panduan Lengkap](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Pelajari cara mengekstrak teks dari file TIFF secara batch menggunakan OCR di C#, langkah demi langkah untuk meningkatkan efisiensi aplikasi Anda. +### [Mengenali Teks dari PNG di C# – Panduan Lengkap OCR & Pemeriksaan Ejaan](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Pelajari cara mengenali teks dari file PNG menggunakan C# dengan OCR lengkap dan pemeriksaan ejaan, langkah demi langkah untuk meningkatkan aplikasi Anda. +### [Konversi Gambar ke JSON – Tutorial OCR C# untuk Resi](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Pelajari cara mengonversi gambar struk menjadi JSON menggunakan OCR di C#, langkah demi langkah untuk integrasi mudah. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/indonesian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..215e6a60b --- /dev/null +++ b/ocr/indonesian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Konversi gambar ke JSON menggunakan Aspose OCR Cloud di C#. Pelajari + cara mengenali teks, mengekstrak teks dari gambar, dan memproses kwitansi dengan + OCR dalam hitungan menit. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: id +og_description: Konversi gambar ke JSON dengan Aspose OCR Cloud di C#. Panduan ini + menunjukkan cara mengenali teks, mengekstrak teks dari gambar, dan memproses struk + dengan OCR. +og_title: Ubah Gambar menjadi JSON – Tutorial OCR C# untuk Struk +tags: +- OCR +- C# +- Aspose +- JSON +title: Mengonversi Gambar ke JSON – Tutorial OCR C# untuk Resi +url: /id/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi Gambar ke JSON – Tutorial OCR C# untuk Struk + +Pernah membutuhkan untuk **convert image to JSON** tetapi tidak yakin harus mulai dari mana? Dalam panduan ini kami akan memandu Anda melalui tutorial OCR C# yang lengkap, end‑to‑end, yang mengambil foto struk, mengenali teks, dan menghasilkan payload JSON yang rapi. + +Jika Anda pernah bertanya-tanya *how to recognize text* dalam dokumen yang dipindai, atau Anda mencari cara cepat untuk **extract text from image** file, Anda berada di tempat yang tepat. Pada akhir artikel ini Anda akan dapat **process receipt with OCR** dan mengirimkan hasilnya langsung ke API downstream Anda. + +## Apa yang Anda Butuhkan + +- .NET 6 SDK atau yang lebih baru (kode ini juga berfungsi dengan .NET Core) +- Kunci API Aspose Cloud – Anda dapat mengambil percobaan gratis dari portal Aspose +- Contoh gambar struk (`receipt.jpg`) yang disimpan secara lokal +- IDE favorit Anda (Visual Studio, VS Code, Rider – apa saja) + +Tidak diperlukan paket NuGet tambahan selain klien resmi `Aspose.OCR.Cloud`. Jika Anda sudah menginstal SDK, Anda siap melanjutkan. + +## Langkah 1 – Convert Image to JSON: Siapkan OCR Client + +Pertama-tama, kita memerlukan sebuah instance dari `CloudOcrClient`. Objek ini menangani semua komunikasi dengan layanan OCR Aspose dan akan mengembalikan hasil dalam format JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Menginisialisasi klien adalah jembatan antara kode C# Anda dan mesin OCR cloud. Metode `RecognizeAsync` melakukan pekerjaan berat – mengunggah gambar, menjalankan mesin OCR, dan mengembalikan string JSON yang berisi teks yang dikenali, skor kepercayaan, dan koordinat bounding‑box. + +> **Pro tip:** Simpan kunci API dalam variabel lingkungan atau secret manager alih-alih menuliskannya secara hard‑code. Dengan begitu Anda menghindari kebocoran tidak sengaja. + +## Langkah 2 – How to Recognize Text from the Receipt + +Sekarang klien sudah siap, mari kita selami *how* di balik pengenalan teks. Aspose OCR mendukung banyak bahasa, tetapi untuk kebanyakan struk bahasa Inggris sudah cukup. Jika Anda membutuhkan bahasa lain, cukup ganti `Language.English` dengan nilai enum yang sesuai. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** Layanan menjalankan model deep‑learning yang mendeteksi karakter, mengelompokkan menjadi kata, dan kemudian menyusun baris. JSON yang dikembalikan kira‑kira seperti ini: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Anda dapat mengurai JSON ini dengan `System.Text.Json` atau `Newtonsoft.Json` untuk mengambil bidang yang Anda butuhkan. + +## Langkah 3 – Extract Text from Image and Build JSON Manually (Optional) + +Terkadang Anda tidak menginginkan JSON mentah yang diberikan Aspose; mungkin Anda memerlukan struktur khusus untuk layanan downstream Anda. Berikut contoh singkat yang mendeserialisasi respons dan mengemas ulang menjadi objek yang lebih bersih. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Banyak API mengharapkan skema tertentu (mis., `{ \"total\": \"12.34\", \"date\": \"2026-04-10\" }`). Dengan mengekstrak hanya bidang yang Anda perlukan, Anda menjaga payload tetap ringan dan menghindari kebocoran metadata OCR yang tidak diperlukan. + +## Langkah 4 – Test the C# OCR Tutorial with a Sample Receipt + +Jalankan program dari terminal Anda: + +```bash +dotnet run +``` + +Anda akan melihat dua blok output: + +1. JSON mentah yang dikembalikan oleh Aspose (hasil **convert image to json** langsung dari cloud). +2. JSON khusus yang Anda buat pada langkah sebelumnya. + +Output tipikal terlihat seperti: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Jika Anda mendapatkan error seperti *401 Unauthorized*, periksa kembali bahwa kunci API Anda valid dan jalur gambar sudah benar. + +## Kasus Edge & Kesalahan Umum + +| Situation | What to Watch For | Suggested Fix | +|-----------|------------------|---------------| +| **Low‑resolution receipt** | Kepercayaan OCR turun di bawah 0.8 | Pra‑proses gambar (tingkatkan DPI, tajamkan) sebelum mengirim | +| **Non‑English characters** | Enum bahasa salah | Gunakan `Language.AutoDetect` atau tentukan bahasa yang tepat | +| **Large batch of receipts** | Error pembatasan laju | Terapkan exponential back‑off atau minta kuota lebih tinggi dari Aspose | +| **Missing fields** | Parser khusus mengembalikan `null` | Tambahkan logika fallback atau pola regex untuk ekstraksi yang lebih kuat | + +## Gambaran Visual + +![Diagram yang menunjukkan alur dari file gambar → OCR client → respons JSON → parsing khusus → output JSON akhir](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *diagram alur convert image to json yang menggambarkan langkah‑langkah yang dibahas dalam tutorial ini.* + +## Ringkasan + +Kami telah menunjukkan cara **convert image to JSON** dengan Aspose OCR Cloud, menjelaskan *how to recognize text* pada struk, mendemonstrasikan cara **extract text from image**, dan membungkus semuanya dalam **C# OCR tutorial** yang bersih yang dapat Anda masukkan ke proyek .NET apa pun. + +Poin pentingnya adalah: + +- Siapkan `CloudOcrClient` dengan kunci API Anda. +- Panggil `RecognizeAsync` untuk mendapatkan payload JSON langsung dari layanan. +- Secara opsional ubah bentuk payload tersebut agar sesuai dengan kontrak data Anda. + +## Apa Selanjutnya? + +- **Batch processing:** Loop melalui folder struk dan menggabungkan hasilnya menjadi satu array JSON. +- **Advanced parsing:** Gunakan regular expressions atau model NLP kecil untuk mengekstrak item baris, pajak, dan diskon. +- **Integration:** Dorong JSON akhir ke basis data, antrian pesan, atau Azure Function untuk otomatisasi lebih lanjut. + +Silakan bereksperimen dengan format gambar berbeda (PNG, TIFF) atau coba alur **process receipt with OCR** pada foto yang diambil dengan ponsel. Langit adalah batasnya setelah Anda memiliki cara yang andal untuk **convert image to JSON**. + +Ada pertanyaan atau mengalami kendala? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/indonesian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..2f5de72ef --- /dev/null +++ b/ocr/indonesian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Buat PDF yang dapat dicari dari gambar dengan cepat. Pelajari cara menghasilkan + PDF dari gambar, menyematkan PDF gambar, mengonversi TIF ke PDF, dan menggunakan + OCR ke PDF C# dengan Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: id +og_description: Buat PDF yang dapat dicari secara instan. Tutorial ini menunjukkan + cara menghasilkan PDF dari gambar, menyematkan gambar ke PDF, mengonversi TIF ke + PDF, dan menggunakan OCR ke PDF dengan C#. +og_title: Buat PDF yang Dapat Dicari di C# – Panduan Langkah demi Langkah +tags: +- C# +- OCR +- PDF generation +title: Buat PDF yang Dapat Dicari di C# – Panduan Lengkap +url: /id/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat PDF yang Dapat Dicari di C# – Panduan Lengkap + +Pernahkah Anda perlu **create searchable PDF** dari dokumen yang dipindai tetapi tidak yakin harus mulai dari mana? Anda tidak sendirian; banyak pengembang mengalami hal yang sama saat menangani file TIFF dan OCR. Dalam tutorial ini kami akan membahas solusi praktis yang memungkinkan Anda **generate PDF from image**, menyematkan gambar asli untuk pencarian yang sempurna, dan menyelesaikannya dengan alur kerja **OCR to PDF C#** yang bersih. + +Kami akan membahas semuanya mulai dari menginstal pustaka Aspose.OCR hingga menangani kasus tepi seperti TIFF multi‑halaman. Pada akhir tutorial Anda akan memiliki program siap‑jalankan yang mengubah `input.tif` menjadi `output.pdf` yang sepenuhnya dapat dicari. Tanpa layanan eksternal, tanpa keajaiban tersembunyi—hanya kode C# biasa yang dapat Anda masukkan ke proyek .NET apa pun. + +## Apa yang Anda Butuhkan + +- .NET 6.0 atau lebih baru (kode ini juga bekerja pada .NET Framework 4.7+) +- Visual Studio 2022 (atau editor apa pun yang Anda sukai) +- Lisensi Aspose.OCR yang aktif atau kunci percobaan gratis (paket NuGet dapat digunakan tanpa kunci untuk evaluasi) +- Contoh gambar TIFF (`input.tif`) yang ditempatkan dalam folder yang dapat Anda referensikan + +> **Pro tip:** Simpan file gambar Anda di bawah 10 MB untuk menghindari lonjakan memori saat memproses batch besar. + +## Langkah 1: Instal Aspose.OCR dan Siapkan Proyek + +Pertama, tambahkan paket NuGet Aspose.OCR ke proyek Anda. Buka Package Manager Console dan jalankan: + +```powershell +Install-Package Aspose.OCR +``` + +Jika Anda lebih suka UI, klik kanan **Dependencies → Manage NuGet Packages**, cari *Aspose.OCR*, dan klik **Install**. + +Mengapa langkah ini penting: Aspose.OCR menyertakan mesin OCR berperforma tinggi dan pengekspor PDF bawaan, sehingga Anda tidak memerlukan pustaka terpisah untuk penanganan gambar atau pembuatan PDF. + +### Kerangka Proyek Lengkap + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Catatan:** Ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya di mesin Anda. + +## Langkah 2: Muat Gambar – *Generate PDF from Image* Foundation + +Memuat file sumber adalah langkah kecil namun penting. Aspose.OCR mengharapkan sebuah `ImageStream`, yang mengabstraksi I/O file dan mendukung banyak format (TIFF, PNG, JPEG, dll.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Mengapa tidak langsung memberi path?** +`ImageStream` wrapper menangani buffering internal dan memastikan mesin OCR bekerja dengan TIFF multi‑halaman besar tanpa memuat seluruh file ke memori sekaligus. + +## Langkah 3: Konfigurasi Ekspor PDF – *Embed Image PDF* for Perfect Searchability + +Saat Anda mengekspor hasil OCR ke PDF, Anda memiliki dua pilihan: menyematkan hanya teks yang diekstrak, atau menyematkan gambar asli bersama lapisan teks tersembunyi. Menyematkan gambar menjaga kesetiaan visual pemindaian dan memungkinkan pengguna memilih atau menyalin teks nanti. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Kasus tepi:** Jika Anda mengatur `EmbedOriginalImage` ke `false`, PDF yang dihasilkan akan lebih kecil tetapi kehilangan gambar asli—berguna untuk arsip teks murni. + +## Langkah 4: Ekspor – *OCR to PDF C#* dalam Satu Panggilan + +Aspose.OCR menyederhanakan pekerjaan berat menjadi satu baris kode. Metode `ExportToPdf` menjalankan OCR, membangun lapisan teks tersembunyi, dan menulis file akhir. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Hasil yang Diharapkan + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Buka `output.pdf` di penampil apa pun (Adobe Reader, Edge, dll.) dan coba pilih teks—Anda akan melihat gambar asli di bawahnya, mengonfirmasi operasi **create searchable pdf** berhasil. + +## Langkah 5: Verifikasi PDF – Pemeriksaan Cepat yang Dapat Anda Otomatiskan + +Meskipun inspeksi manual cukup untuk satu file, Anda mungkin ingin memastikan PDF berisi lapisan teks secara programatis. Aspose.PDF (pustaka saudara) dapat membaca dokumen dan mengekstrak teks: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Tambahkan pemanggilan `VerifyPdfContainsText(pdfPath);` setelah ekspor jika Anda menginginkan pemeriksaan otomatis. + +## Kesalahan Umum & Cara Menghindarinya + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Kehabisan memori pada TIFF besar** | Memuat seluruh file sekaligus melebihi RAM. | Gunakan `ImageStream.FromFile` (seperti yang ditunjukkan) dan proses halaman satu per satu jika Anda memiliki file multi‑halaman. | +| **Lisensi hilang menyebabkan watermark** | Mode evaluasi menambahkan watermark terlihat pada setiap halaman. | Terapkan lisensi Aspose.OCR Anda lebih awal: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Pemisah path tidak tepat di Linux** | Path yang ditulis keras `\` tidak berfungsi pada OS non‑Windows. | Gunakan `Path.Combine` atau literal string mentah dengan `/`. | +| **Teks tidak dapat dicari** | `EmbedOriginalImage` diatur ke `false` atau OCR dinonaktifkan. | Pastikan `PdfExportOptions.EmbedOriginalImage = true` dan mesin OCR diinisialisasi dengan benar. | + +## Bonus: Konversi TIF ke PDF Tanpa OCR (Ketika Teks Tidak Diperlukan) + +Jika Anda hanya perlu **convert TIF to PDF** tanpa lapisan teks tersembunyi, Anda dapat melewatkan langkah OCR sepenuhnya: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Trik ini berguna untuk mengarsipkan dokumen yang dipindai di mana kemampuan pencarian tidak diperlukan. + +## Contoh Lengkap yang Berfungsi (Siap Salin‑Tempel) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Jalankan program, buka `output.pdf`, dan Anda akan melihat replika setia dari TIFF asli dengan lapisan teks tersembunyi yang dapat dipilih—tepatnya apa yang dimaksud dengan **create searchable pdf** dalam praktik. + +## Kesimpulan + +Kami baru saja melewati alur kerja **create searchable pdf** lengkap di C#. Dimulai dari TIFF mentah, kami **generate pdf from image**, memilih untuk **embed image pdf** demi kesetiaan visual, dan mendemonstrasikan pipeline lengkap **ocr to pdf c#** menggunakan Aspose.OCR. + +Silakan ubah `PdfExportOptions` (kompresi, versi PDF, dll.) atau rangkaian beberapa gambar bersama untuk pemrosesan batch. Selanjutnya Anda mungkin ingin mengeksplorasi penambahan perlindungan kata sandi, tanda tangan digital, atau bahkan menggabungkan beberapa PDF yang dapat dicari menjadi satu dokumen utama. + +Ada pertanyaan tentang menskalakan ini ke ribuan file atau mengintegrasikannya ke API ASP.NET? Tinggalkan komentar di bawah atau hubungi saya di GitHub—selamat coding! + +![Contoh PDF yang Dapat Dicari](/images/searchable-pdf.png "Contoh PDF yang Dapat Dicari") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/indonesian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..30da47300 --- /dev/null +++ b/ocr/indonesian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Ekstrak teks dari gambar menggunakan Aspose OCR di C#. Pelajari cara + memuat gambar untuk OCR dan mengenali teks dari file TIFF dengan dukungan GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: id +og_description: Ekstrak teks dari gambar dengan Aspose OCR di C#. Tutorial ini menunjukkan + cara memuat gambar untuk OCR dan mengenali teks dari TIFF menggunakan percepatan + GPU. +og_title: Ekstrak Teks dari Gambar di C# – Panduan OCR Lengkap +tags: +- OCR +- C# +- Aspose +- GPU +title: Ekstrak Teks dari Gambar di C# – Panduan OCR Lengkap +url: /id/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekstrak Teks dari Gambar di C# – Panduan OCR Lengkap + +Pernah perlu **mengekstrak teks dari gambar** tetapi tidak yakin pustaka mana yang dapat menangani TIFF raksasa tanpa macet? Anda tidak sendirian. Dalam banyak proyek dunia nyata—misalnya digitalisasi faktur atau pengarsipan buku yang dipindai—kemampuan memuat gambar untuk OCR dan kemudian mengenali teks dari TIFF dengan cepat menjadi fitur yang menentukan keberhasilan. + +Dalam panduan ini kami akan menunjukkan solusi praktis yang melakukan hal tersebut menggunakan Aspose OCR untuk .NET. Pada akhir tutorial Anda akan memiliki aplikasi konsol C# yang dapat dijalankan, memuat pemindaian resolusi tinggi, mengaktifkan pemrosesan berbasis GPU (dengan fallback yang elegan), dan menghasilkan teks polos. Tanpa bagian yang hilang, tanpa “lihat dokumentasi” yang mematikan. + +## Apa yang Anda Butuhkan + +- **.NET 6 atau lebih baru** (kode dapat dikompilasi dengan SDK terbaru apa pun) +- Paket NuGet **Aspose.OCR untuk .NET** + `dotnet add package Aspose.OCR` +- **TIFF besar** atau format gambar lain yang ingin Anda OCR + (contoh menggunakan `large_scan.tif`) +- (Opsional) GPU yang mendukung CUDA 11+ – jika tidak ada, pustaka akan otomatis beralih ke mode CPU. + +Itu saja. Mari kita mulai. + +![Ekstrak teks dari gambar menggunakan Aspose OCR di C#](image-placeholder.png "Ekstrak teks dari gambar menggunakan Aspose OCR di C#") + +## Langkah 1: Ekstrak Teks dari Gambar – Inisialisasi Mesin OCR + +Sebelum gambar apa pun dapat diproses, Anda memerlukan instance `OcrEngine`. Mesin ini menyimpan semua pengaturan yang mengontrol cara pengenalan berjalan. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Mengapa ini penting:** +`ProcessingMode.Gpu` dapat memangkas beberapa detik dari waktu pengenalan pada kartu modern, tetapi mengatur `ProcessingMode.Auto` (atau membiarkan default) lebih aman untuk lingkungan yang mungkin tidak memiliki GPU. Guard `GpuMemoryLimit` adalah tip praktis—tanpa itu, gambar berukuran besar dapat memonopoli seluruh VRAM dan menyebabkan aplikasi lain crash. + +## Langkah 2: Muat Gambar untuk OCR – Bawa TIFF ke Memori + +Setelah mesin siap, kita perlu memberi gambar yang ingin dianalisis. Aspose menyediakan `ImageStream.FromFile` yang mengabstraksi penanganan format. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Apa yang terjadi di balik layar?** +`ImageStream.FromFile` membaca file ke dalam stream dan secara otomatis mendeteksi format gambar (TIFF, PNG, JPEG, dll.). Jika Anda berurusan dengan TIFF multi‑halaman, Aspose akan memperlakukan setiap halaman sebagai frame terpisah; Anda dapat mengiterasinya nanti bila diperlukan. + +## Langkah 3: Kenali Teks dari TIFF – Jalankan Mesin OCR + +Dengan gambar dimuat, kerja berat dimulai. Metode `Recognize` mengembalikan objek `OcrResult` yang berisi teks yang diekstrak serta beberapa metadata berguna. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Mengapa memanggil `Recognize` hanya sekali?** +Karena mesin menyimpan cache struktur internal setelah run pertama, satu panggilan sudah cukup untuk kebanyakan skenario. Jika Anda perlu memproses banyak halaman, gunakan kembali instance `OcrEngine` yang sama—ini menghindari overhead inisialisasi ulang konteks GPU. + +## Langkah 4: Tampilkan Hasil – Tunjukkan Teks yang Diekstrak + +Akhirnya, kami menuliskan string yang dikenali ke konsol. Dalam aplikasi nyata Anda mungkin akan menulisnya ke basis data atau file. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Output yang diharapkan:** +Jika `large_scan.tif` berisi faktur tercetak, Anda akan melihat sesuatu seperti: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Tata letak tepatnya bergantung pada gambar sumber, tetapi poin pentingnya adalah Anda kini memiliki hasil **ekstrak teks dari gambar** yang siap diproses lebih lanjut. + +## Langkah 5: Pemecahan Masalah & Kasus Pojok + +### GPU Tidak Terdeteksi? + +Jika Anda menjalankan contoh pada mesin tanpa GPU yang kompatibel, mesin secara diam-diam beralih ke CPU ketika Anda menggunakan `ProcessingMode.Auto`. Untuk memaksa mode CPU secara eksplisit, ganti baris sebelumnya dengan: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF yang Memakan Banyak Memori + +Pemindaian sangat besar (misalnya 10 000 × 10 000 px) mungkin masih melampaui batas GPU 1 GB yang kami tetapkan. Dalam kasus itu, naikkan `GpuMemoryLimit` (jika Anda memiliki VRAM cadangan) atau turunkan skala gambar sebelum memberikannya ke mesin: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Dokumen Multi‑Halaman + +Jika TIFF Anda berisi beberapa halaman, lakukan loop pada masing‑masing: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Dukungan Bahasa & Font + +Aspose OCR secara otomatis mendeteksi skrip berbasis Latin, tetapi untuk Cyrillic, Arab, atau font khusus Anda mungkin perlu menyediakan paket bahasa: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Tips Pro & Praktik Terbaik + +- **Gunakan kembali mesin**: Membuat `OcrEngine` baru untuk setiap gambar menambah latensi yang terlihat. +- **Pemrosesan batch**: Saat menangani puluhan TIFF, antrikan mereka dan proses dalam thread paralel—tetapi perhatikan kontensi memori GPU. +- **Validasi output**: OCR tidak sempurna; jalankan pemeriksaan ejaan sederhana atau validasi regex pada `ocrResult.Text` untuk menangkap kesalahan pengenalan yang jelas. +- **Catat performa**: Ukur waktu yang dihabiskan `Stopwatch` sebelum dan sesudah `Recognize` untuk memutuskan apakah akselerasi GPU layak diterapkan di lingkungan Anda. + +## Kesimpulan + +Anda kini memiliki contoh lengkap, end‑to‑end yang **mengekstrak teks dari gambar** menggunakan Aspose OCR di C#. Dengan memuat gambar untuk OCR, memanggil mesin untuk mengenali teks dari TIFF, dan menangani skenario GPU vs. CPU, tutorial ini memberi Anda fondasi siap produksi yang dapat disesuaikan untuk faktur, paspor, atau dokumen ter‑scan apa pun. + +Apa selanjutnya? Coba ganti TIFF dengan PDF multi‑halaman, bereksperimen dengan paket bahasa khusus, atau alirkan output ke pipeline pemrosesan bahasa alami untuk ekstraksi data otomatis. Langit adalah batasnya—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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/indonesian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..198e9fad2 --- /dev/null +++ b/ocr/indonesian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Ekstrak teks dari file TIFF menggunakan pemrosesan batch Aspose OCR di + C#. Pelajari cara memproses batch OCR secara efisien dan dapatkan umpan balik kemajuan + secara waktu nyata. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: id +og_description: Ekstrak teks dari file TIFF menggunakan pemrosesan batch Aspose OCR + di C#. Tutorial ini menunjukkan langkah demi langkah cara memproses OCR batch dan + membaca kemajuan. +og_title: Ekstrak Teks dari TIFF dengan OCR Batch di C# – Panduan Lengkap +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Ekstrak Teks dari TIFF dengan OCR Batch di C# – Panduan Lengkap +url: /id/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekstrak Teks dari TIFF – Panduan Lengkap Batch OCR + +Pernah perlu **mengekstrak teks dari TIFF** tetapi merasa terhambat pada bagian pemrosesan batch? Anda bukan satu-satunya. Dalam banyak proyek otomatisasi dokumen, menangani puluhan gambar TIF resolusi tinggi dapat dengan cepat menjadi bottleneck—terutama ketika Anda menginginkan umpan balik langsung tentang kemajuan. + +Berita baik? Dengan Aspose OCR Anda dapat **process batch OCR** dalam beberapa baris kode, mendapatkan event kemajuan secara real‑time, dan menghasilkan teks yang dikenali untuk setiap gambar. Dalam tutorial ini kami akan membahas aplikasi konsol C# siap‑jalankan yang melakukan hal tersebut. + +Kami akan membahas semua yang perlu Anda ketahui: paket yang diperlukan, mengapa setiap baris penting, kasus tepi seperti file yang hilang, dan cara memverifikasi hasilnya. Pada akhir tutorial Anda dapat menempatkan contoh ke dalam solusi Anda sendiri dan mulai mengekstrak teks dari gambar TIFF segera. + +## Apa yang Anda Butuhkan + +- **.NET 6 atau lebih baru** (kode juga dapat dikompilasi dengan .NET Core) +- **Aspose.OCR untuk .NET** paket NuGet – `Install-Package Aspose.OCR` +- Sebuah folder yang berisi beberapa gambar **TIFF** yang ingin Anda baca (demo menggunakan `img1.tif`, `img2.tif`, `img3.tif`) +- IDE apa pun yang Anda suka – Visual Studio, Rider, atau VS Code sudah cukup + +Tidak diperlukan konfigurasi tambahan; pustaka ini dilengkapi dengan mesin OCR-nya sendiri, jadi Anda tidak perlu menginstal binary native eksternal. + +--- + +## Langkah 1 – Buat Instance OCR Engine + +Hal pertama yang Anda lakukan adalah membuat sebuah `OcrEngine`. Anggaplah itu sebagai otak yang akan menganalisis setiap piksel dan mengubahnya menjadi karakter. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Mengapa ini penting:** +> Engine menyimpan model bahasa internal dan pengaturan (mis., DPI, bahasa). Membuatnya sekali dan menggunakan kembali untuk batch jauh lebih efisien dibandingkan menginstansiasi engine baru untuk setiap gambar. + +--- + +## Langkah 2 – Sambungkan Event Kemajuan Real‑Time + +Jika Anda memproses puluhan file TIFF, indikator kemajuan dapat menyelamatkan Anda dari kebingungan apakah aplikasi terhenti. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Event `ProgressChanged` dipicu setelah setiap gambar selesai, memberikan Anda `Current`, `Total`, dan `Percentage`. Ini adalah loop umpan balik **process batch OCR** yang sering dilupakan oleh banyak pengembang. + +--- + +## Langkah 3 – Bangun Daftar Image Stream + +Aspose.OCR bekerja dengan objek `ImageStream`. Cara termudah adalah memuat setiap TIFF dari disk. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tip:** +> Jika Anda memiliki folder dinamis, ganti daftar yang di‑hard‑code dengan `Directory.GetFiles(path, "*.tif")` dan `Select(ImageStream.FromFile)` – dengan cara itu Anda benar‑benar **process batch OCR** tanpa pembaruan manual. + +--- + +## Langkah 4 – Jalankan Proses Batch OCR + +Sekarang pekerjaan berat dilakukan. `ProcessBatch` mengembalikan daftar read‑only dari objek `OcrResult`, masing‑masing berisi teks yang diekstrak dan skor kepercayaan. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Mengapa ini efisien:** +> Engine menggunakan kembali model bahasa yang sama untuk semua gambar, secara dramatis mengurangi penggunaan memori dibandingkan panggilan satu‑gambar. + +--- + +## Langkah 5 – Tampilkan atau Simpan Teks yang Diakui + +Akhirnya, iterasi hasilnya. Dalam proyek nyata Anda mungkin menuliskannya ke database atau file JSON, tetapi untuk demo ini kami hanya akan mencetak ke konsol. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Output konsol yang diharapkan** (dipotong untuk singkatnya): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Jika ada gambar yang gagal, `result.Text` akan menjadi string kosong, dan event `ProgressChanged` tetap melaporkan item sebagai diproses—sehingga Anda dapat mencatat kegagalan secara terpisah. + +--- + +## Handler Event Progress (Kode Lengkap) + +Tempatkan metode ini di mana saja di dalam kelas `BatchDemo`—sebaiknya setelah `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Alihkan output ini ke progress bar UI jika Anda membuat aplikasi desktop; event yang sama bekerja untuk WinForms, WPF, atau bahkan notifikasi ASP.NET Core SignalR. + +--- + +## Contoh Lengkap Siap‑Jalankan + +Menggabungkan semuanya, berikut program lengkap yang dapat Anda salin‑tempel ke proyek konsol baru. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Simpan file sebagai `Program.cs`, jalankan `dotnet add package Aspose.OCR`, ganti `YOUR_DIRECTORY` dengan path sebenarnya, dan tekan **Ctrl+F5**. Anda akan melihat angka kemajuan diikuti oleh teks yang diekstrak untuk setiap TIFF. + +--- + +## Menangani Kasus Tepi Umum + +| Situasi | Hal yang Perlu Diperhatikan | Solusi Cepat | +|-----------|-------------------|-----------| +| **TIFF yang hilang atau rusak** | `ImageStream.FromFile` melempar `FileNotFoundException` atau `ArgumentException`. | Bungkus pembuatan daftar dalam `try/catch` dan lewati file yang tidak valid, catat masalahnya. | +| **Gambar sangat besar ( >10 MP )** | OCR dapat mengonsumsi banyak RAM dan melambat. | Kurangi DPI sebelum memproses: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Teks non‑Inggris** | Model bahasa default adalah Inggris. | Set `ocrEngine.Language = Language.Spanish;` (atau bahasa lain yang didukung). | +| **Perlu menyimpan hasil** | Output konsol tidak persisten. | Tulis `result.Text` ke file `.txt` menggunakan `File.WriteAllText`. | + +Menangani skenario ini membuat solusi Anda lebih kuat dan menunjukkan bahwa Anda telah mempertimbangkan lebih dari jalur sukses. + +--- + +## Langkah Selanjutnya & Topik Terkait + +- **Ekstrak teks dari PDF** – API serupa, cukup ganti `ImageStream` dengan `PdfDocument`. +- **Parallel batch OCR** – untuk beban kerja besar, jalankan beberapa instance `OcrEngine` pada thread terpisah; ingat untuk menghormati batas lisensi. +- **Post‑processing** – jalankan output OCR melalui pemeriksa ejaan atau regex untuk membersihkan artefak OCR umum. + +Semua ekstensi ini tetap bergantung pada ide inti **process batch OCR** dan dapat ditambahkan secara bertahap. + +--- + +## Kesimpulan + +Kami baru saja mendemonstrasikan cara **mengekstrak teks dari TIFF** secara efisien dengan **process batch OCR** menggunakan Aspose OCR di C#. Contoh ini membuat satu engine, berlangganan ke event kemajuan, memuat daftar image stream, menjalankan batch, dan mencetak setiap hasil. + +Dari sini Anda dapat mengintegrasikan output ke dalam database, menghasilkan PDF yang dapat dicari, atau mengalirkan teks ke pipeline NLP berikutnya. Tidak ada batasan—cobalah pengaturan bahasa, penyesuaian DPI, dan eksekusi paralel untuk menyesuaikan beban kerja spesifik Anda. + +Ada pertanyaan atau ingin berbagi cara Anda menyesuaikan batch? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/indonesian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..63fc73eff --- /dev/null +++ b/ocr/indonesian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-11 +description: Pelajari cara mengenali teks dari PNG dan mengekstrak teks dari gambar + C# menggunakan Aspose OCR. Termasuk langkah‑langkah memuat file gambar C#, pemeriksaan + ejaan, dan kode lengkap. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: id +og_description: Kenali teks dari PNG dengan mudah menggunakan C#. Ikuti panduan langkah + demi langkah ini untuk memuat file gambar di C#, mengekstrak teks dari gambar di + C#, dan menjalankan pemeriksaan ejaan. +og_title: Mengenali Teks dari PNG di C# – Tutorial OCR Lengkap +tags: +- OCR +- C# +- Aspose +title: Mengenali teks dari PNG di C# – Panduan Lengkap OCR & Pemeriksaan Ejaan +url: /id/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# mengenali teks dari png – Tutorial Lengkap C# OCR & Spell‑Check + +Pernah membutuhkan untuk **recognize text from png** file tetapi tidak yakin perpustakaan mana yang dipilih? Anda tidak sendirian; banyak pengembang mengalami hal itu ketika pertama kali menangani ekstraksi data berbasis gambar. Kabar baik? Dengan Aspose OCR Anda dapat memuat file gambar di C#, mengekstrak teks, dan bahkan menjalankan pemeriksa ejaan bawaan—semua dalam beberapa baris kode. + +Dalam panduan ini kami akan membahas seluruh proses: memuat PNG, memanggil mesin OCR, dan akhirnya memeriksa kata yang salah eja. Pada akhir Anda akan dapat **extract text from image C#** proyek tanpa harus mencari dokumen yang tersebar. Tidak diperlukan pengalaman OCR sebelumnya, hanya lingkungan pengembangan .NET. + +## Apa yang Anda Butuhkan + +- **.NET 6.0** (atau versi .NET terbaru) – API berfungsi sama di .NET Core dan Framework. +- **Aspose.OCR for .NET** paket NuGet – instal dengan `dotnet add package Aspose.OCR`. +- Sebuah **PNG image** yang berisi teks yang dapat dibaca (misalnya `letter.png` ditempatkan di folder yang Anda kontrol). +- Editor kode atau IDE (Visual Studio, VS Code, Rider—pilih yang Anda suka). + +Itu saja. Tidak ada mesin OCR tambahan, tidak ada DLL native, hanya paket terkelola yang bersih. + +--- + +## Langkah 1: Muat File Gambar PNG di C# + +Sebelum mesin OCR dapat melakukan apa pun, ia membutuhkan stream yang menunjuk ke gambar. Aspose menyediakan `ImageStream.FromFile`, yang mengabstraksi detail sistem file. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** Jika gambar Anda tersemat sebagai resource atau berasal dari permintaan web, Anda dapat menggunakan `ImageStream.FromBytes(byte[])` sebagai gantinya—tidak perlu menyentuh sistem file. + +### Mengapa pemuatan penting + +Memuat gambar dengan benar memastikan mesin OCR menerima data piksel yang tepat sesuai harapan. Stream yang rusak akan menyebabkan `Recognize` melempar pengecualian, dan Anda akan membuang waktu untuk debugging nanti. + +## Langkah 2: Inisialisasi Mesin OCR + +Membuat instance `OcrEngine` itu ringan, tetapi Anda mungkin ingin menyesuaikan bahasa atau pengaturan akurasi untuk kasus penggunaan tertentu (mis., dokumen multi‑bahasa). Konstruktor default berfungsi baik untuk teks bahasa Inggris. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Mengapa instance mesin? + +Mesin menyimpan konfigurasi (bahasa, filter pra‑pemrosesan, dll.). Dengan memisahkan konfigurasi dari gambar, Anda dapat menggunakan kembali mesin yang sama untuk banyak file—bagus untuk pemrosesan batch. + +## Langkah 3: Mengenali Teks dari PNG + +Sekarang keajaiban terjadi. `Recognize` mengembalikan objek `OcrResult` yang berisi string mentah, skor kepercayaan, dan lainnya. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Expected output** (asumsikan `letter.png` berisi “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Jika gambar berisi beberapa baris, hasilnya mempertahankan pemisah baris, membuat pemrosesan selanjutnya menjadi sederhana. + +### Kasus tepi: PNG beresolusi rendah + +Jika hasil OCR terlihat berantakan, pertimbangkan untuk memperbesar gambar atau menyesuaikan `ocrEngine.PreprocessingOptions`. Gambar DPI rendah sering kehilangan detail yang dibutuhkan mesin. + +## Langkah 4: Jalankan Pemeriksa Ejaan Bawaan + +Aspose OCR dilengkapi dengan modul pemeriksaan ejaan ringan yang bekerja langsung pada hasil OCR. Langkah ini membantu Anda menangkap kesalahan pengenalan seperti “H3llo” alih-alih “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Sample output** (jika OCR salah membaca “World” menjadi “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Mengapa pemeriksaan ejaan? + +OCR tidak pernah 100 % sempurna, terutama dengan latar belakang berisik. Pemeriksaan ejaan cepat dapat menyaring kesalahan jelas sebelum Anda memasukkan teks ke dalam analitik atau basis data selanjutnya. + +## Langkah 5: Gabungkan Semua – Contoh Lengkap yang Berjalan + +Berikut adalah program lengkap yang siap dijalankan. Salin‑tempel ke dalam proyek konsol baru, sesuaikan jalur gambar, dan tekan **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Running the demo** mencetak teks OCR diikuti dengan saran ejaan apa pun. Ini bekerja pada PNG apa pun yang berisi teks bahasa Inggris yang jelas dan tercetak. Untuk bahasa lain, cukup atur `ocrEngine.Language` sesuai. + +## Pertanyaan Umum & Hal-hal yang Perlu Diwaspadai + +| Question | Answer | +|----------|--------| +| *Bisakah saya memproses file JPEG atau BMP?* | Tentu—`ImageStream.FromFile` menerima semua format yang didukung Aspose (PNG, JPEG, BMP, TIFF). | +| *Bagaimana jika gambar berada dalam memory stream?* | Gunakan `ImageStream.FromBytes(byteArray)` atau `ImageStream.FromStream(stream)`. | +| *Apakah pemeriksa ejaan menyadari bahasa?* | Ya, ia menghormati bahasa yang diatur pada mesin OCR. | +| *Bagaimana cara meningkatkan akurasi pada gambar yang miring?* | Aktifkan `ocrEngine.PreprocessingOptions.Deskew = true;` sebelum memanggil `Recognize`. | +| *Apakah saya memerlukan lisensi untuk Aspose.OCR?* | Versi percobaan gratis berfungsi hingga 100 halaman. Untuk produksi, dapatkan lisensi untuk menghapus watermark. | + +## Langkah Selanjutnya – Melampaui OCR Dasar + +Sekarang Anda dapat **recognize text from png** dan **extract text from image C#**, pertimbangkan ekstensi berikut: + +1. **Batch processing** – Loop melalui direktori PNG dan tulis setiap hasil OCR ke file `.txt` terpisah. +2. **Integration with Azure Cognitive Services** – Gabungkan Aspose OCR dengan API terjemahan berbasis cloud untuk alur kerja multibahasa. +3. **Structured data extraction** – Gunakan ekspresi reguler pada `recognizedText` untuk mengekstrak tanggal, nomor faktur, atau alamat. +4. **Performance tuning** – Untuk volume besar, gunakan kembali satu instance `OcrEngine` dan aktifkan multi‑threading. + +Masing‑masing dari ini dibangun di atas langkah inti yang kami bahas, memungkinkan Anda mengubah gambar sederhana menjadi data yang dapat ditindaklanjuti. + +## Kesimpulan + +Kami telah membahas contoh lengkap end‑to-end yang menunjukkan cara **recognize text from png** di C#, **load image file C#** dengan benar, dan kemudian **extract text from image C#** sambil menangkap kesalahan ejaan. Kodenya mandiri, penjelasannya mencakup baik “bagaimana” maupun “mengapa”, dan kini Anda memiliki fondasi kuat untuk fitur berbasis OCR apa pun yang Anda perlukan. + +Cobalah, sesuaikan opsi pra‑pemrosesan, dan lihat seberapa bersih teks yang diekstrak dapat menjadi. Jika Anda menemukan kejanggalan, 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/italian/net/ocr-configuration/_index.md b/ocr/italian/net/ocr-configuration/_index.md index 446a1b5b8..903be7c07 100644 --- a/ocr/italian/net/ocr-configuration/_index.md +++ b/ocr/italian/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Sblocca la potenza del riconoscimento OCR delle immagini in .NET con Aspose.OCR. Sblocca potenti capacità OCR con Aspose.OCR per .NET. Estrai testo da immagini in modo fluido. ### [OCROperation con Lista nel Riconoscimento OCR delle Immagini](./ocr-operation-with-list/) Sblocca il potenziale di Aspose.OCR per .NET. Esegui senza sforzo il riconoscimento OCR delle immagini con le liste. Aumenta la produttività e l'estrazione dei dati nelle tue applicazioni. +### [Come disabilitare OCR in C# – Guida offline Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Scopri come disattivare la funzionalità OCR in un'applicazione C# per operazioni offline con Aspose OCR. ### Casi d'uso comuni - **Estrarre testo da immagini** di fatture scannerizzate per la contabilità automatizzata. @@ -100,4 +102,4 @@ R: Sì, l'oggetto `OcrResult` fornisce valori di confidenza che puoi ispezionare {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/italian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..028445cc0 --- /dev/null +++ b/ocr/italian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Scopri come disabilitare l'OCR in Aspose OCR per C# per eseguirlo offline, + estrarre il testo da un'immagine senza internet e caricare correttamente l'immagine + per l'OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: it +og_description: Come disabilitare l'OCR in Aspose OCR per C# e farlo funzionare offline, + estrarre testo da un'immagine senza necessità di internet e caricare l'immagine + per l'OCR facilmente. +og_title: Come disabilitare l'OCR in C# – Guida offline di Aspose OCR +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Come disabilitare l'OCR in C# – Guida offline a Aspose OCR +url: /it/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come disabilitare OCR in C# – Guida offline Aspose OCR + +Ti sei mai chiesto **come disabilitare OCR** quando hai bisogno di una soluzione veramente offline? Forse stai creando un'app desktop sicura che non può fare affidamento su una connessione di rete, o semplicemente vuoi evitare download inaspettati. In ogni caso, la buona notizia è che Aspose OCR ti permette di disattivare il recupero automatico delle risorse, puntare a una cartella locale e mantenere tutto on‑premises. In questo tutorial vedrai anche come **estrarre testo da immagine** e correttamente **caricare immagine per OCR** senza intoppi. + +Percorreremo un esempio completo, pronto‑da‑eseguire, che mostra ogni passaggio—dall’inizializzazione del motore alla stampa del testo giapponese riconosciuto. Nessuna documentazione esterna, nessuna magia nascosta; solo codice C# puro che puoi inserire nel tuo progetto oggi. Alla fine saprai perché è importante disabilitare la funzione di auto‑download, come impostare il percorso delle risorse e quali insidie evitare. + +## Prerequisiti + +- .NET 6.0 (o qualsiasi versione recente di .NET) installato sulla tua macchina. +- Pacchetto NuGet Aspose.OCR per .NET (`Install-Package Aspose.OCR`). +- Una cartella che contiene già le risorse linguistiche di cui hai bisogno (ad esempio il modello giapponese). +- Un file immagine (`japan_doc.png`) su cui vuoi eseguire l’OCR. + +Se ti mancano i language pack, scaricali una volta dal portale Aspose, estraili in una cartella come `AsposeOCRResources` e sei pronto. Nessun ulteriore download avverrà una volta disabilitata la funzione di auto‑download. + +![Come disabilitare OCR offline](/images/how-to-disable-ocr.png "illustrazione su come disabilitare OCR") + +## Passo 1 – Crea l'istanza del motore OCR + +La prima cosa da fare è istanziare `OcrEngine`. Pensa a questo oggetto come al cervello che leggerà la tua immagine. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Perché è importante:** Senza un motore non puoi configurare nulla. L'oggetto contiene tutte le impostazioni, incluso il flag cruciale che indica alla libreria se può accedere a Internet. + +## Passo 2 – Disabilita il download automatico delle risorse + +Per impostazione predefinita Aspose OCR tenta di recuperare i file linguistici mancanti al volo. Per mantenere tutto offline, imposta lo switch `AutoDownloadResources` su `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Consiglio professionale:** Disattivarlo non solo garantisce la privacy, ma velocizza anche la prima esecuzione del riconoscimento perché il motore non perde tempo a controllare gli aggiornamenti. + +## Passo 3 – Indica la cartella locale delle risorse + +Ora indica al motore dove vivono i language pack pre‑scaricati. Questo è il percorso che hai configurato nei prerequisiti. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Cosa potrebbe andare storto?** Se il percorso è errato o il file linguistico richiesto è mancante, il motore lancerà una `ResourceNotFoundException`. Controlla l'ortografia della cartella e verifica che il modello giapponese (`jpn.traineddata`) sia presente. + +## Passo 4 – Seleziona il modello linguistico locale + +Scegli la lingua che hai effettivamente sul disco. Nel nostro esempio usiamo il giapponese, ma puoi sostituire `Language.Japanese` con qualsiasi altra lingua che hai scaricato. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Caso limite:** Alcune lingue richiedono dizionari aggiuntivi (ad esempio il cinese). Assicurati che quei file ausiliari siano anch'essi nella stessa cartella delle risorse. + +## Passo 5 – Carica l'immagine per OCR + +Ecco dove **carichiamo l'immagine per OCR**. Il metodo `ImageStream.FromFile` legge il file in uno stream che Aspose può elaborare. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Suggerimento:** I formati supportati includono PNG, JPEG, BMP e TIFF. Se devi gestire PDF, converti ogni pagina in un'immagine prima. + +## Passo 6 – Esegui il processo di riconoscimento + +Ora il motore legge effettivamente i pixel e tenta di trasformarli in testo. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Perché questo passaggio può essere lento:** L'OCR è intensivo per la CPU, soprattutto per immagini ad alta risoluzione. Se le prestazioni sono un problema, considera di ridimensionare l'immagine prima del riconoscimento. + +## Passo 7 – Stampa il testo estratto + +Infine, **estraiamo testo da immagine** e lo stampiamo sulla console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Eseguire il programma dovrebbe visualizzare i caratteri giapponesi presenti in `japan_doc.png`. Se tutto è configurato correttamente, vedrai un blocco pulito di testo Unicode sulla console. + +### Output previsto + +``` +これはサンプルの日本語テキストです。 +``` + +(Il tuo output effettivo dipenderà dal contenuto dell'immagine.) + +## Problemi comuni e come evitarli + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **File linguistico mancante** | `AutoDownloadResources` è false, quindi il motore non può scaricarlo. | Verifica che `ResourcesPath` punti alla cartella contenente `jpn.traineddata`. | +| **Percorso immagine errato** | `ImageStream.FromFile` lancia `FileNotFoundException`. | Usa percorsi assoluti o assicurati che la directory di lavoro sia impostata correttamente. | +| **Formato immagine non supportato** | Aspose legge solo alcuni formati. | Converti la tua immagine in PNG o JPEG prima di chiamare `FromFile`. | +| **Out‑of‑memory con immagini grandi** | L'OCR carica l'intera immagine in memoria. | Ridimensiona o suddividi l'immagine, oppure aumenta il limite di memoria del processo. | + +## Estendere l'esempio + +- **Elaborazione batch:** Scorri una directory di immagini, chiama lo stesso codice di riconoscimento e scrivi ogni risultato in un file `.txt` separato. +- **Lingue diverse:** Sostituisci `Language.Japanese` con `Language.English` (o qualsiasi altra) dopo aver posizionato i file di risorsa corrispondenti. +- **Pre‑elaborazione personalizzata:** Usa Aspose.Imaging per correggere l'inclinazione o migliorare il contrasto prima dell'OCR per una maggiore precisione. + +## Conclusione + +Ora sai **come disabilitare OCR** in Aspose OCR per C# e farlo funzionare completamente offline. Impostando `AutoDownloadResources` su `false`, indicando al motore una cartella locale delle risorse e correttamente **caricando l'immagine per OCR**, puoi affidabilmente **estrarre testo da immagine** senza mai toccare Internet. Questo approccio è ideale per ambienti sicuri, pipeline CI o qualsiasi scenario in cui l'accesso alla rete è limitato. + +Pronto per il passo successivo? Prova a elaborare un'intera cartella di PDF scansionati, sperimenta con diversi language pack o integra il risultato OCR in un database ricercabile. La configurazione offline che hai costruito oggi è una solida base per qualsiasi flusso di lavoro di elaborazione documenti on‑premises. + +Buona programmazione, e sentiti libero di lasciare un commento se incontri difficoltà! + +{{< /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 483493b48..2d37a5d2a 100644 --- a/ocr/italian/net/ocr-optimization/_index.md +++ b/ocr/italian/net/ocr-optimization/_index.md @@ -51,7 +51,7 @@ Sei pronto a liberare tutto il potenziale di Aspose.OCR per .NET? La nostra guid Migliora la precisione dell'OCR con Aspose.OCR per .NET esplorando i [filtri di pre‑elaborazione](./preprocessing-filters-for-image/). Scarica ora e scopri come perfezionare le tue immagini prima del riconoscimento. Questo tutorial garantisce un'integrazione fluida, aumentando precisione ed efficienza. ## Correzione dei Risultati con Controllo Ortografico in Riconoscimento Immagine OCR -Raggiungi una precisione OCR senza pari 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 i dizionari, correggere gli errori di ortografia e garantire un riconoscimento del testo privo di errori senza sforzo. Immergiti in un mondo di precisione con Aspose.OCR. +Raggiungi una precisione OCR senza pari 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 i dizionari, correggere gli errori di ortografia e garantire un riconoscimento del testo privo di errori senza sforzo. Immergiti in un mondo di precisione con Aspose.OCR per .NET. ## Salva Risultato Multipagina come Documento in Riconoscimento Immagine OCR Salva senza sforzo i risultati OCR multipagina come documenti con Aspose.OCR per .NET. La nostra [guida passo‑passo](./save-multipage-result-as-document/) sblocca il pieno potenziale della creazione di documenti. Integra perfettamente Aspose.OCR e trasforma i tuoi risultati OCR in documenti multipagina con facilità. @@ -69,6 +69,8 @@ Esplora Aspose.OCR per .NET. Migliora la precisione dell'OCR con i filtri di pre Migliora la precisione dell'OCR con Aspose.OCR per .NET. Correggi le ortografie, personalizza i dizionari e ottieni un riconoscimento del testo privo di errori senza sforzo. ### [Salva Risultato Multipagina come Documento in Riconoscimento Immagine OCR](./save-multipage-result-as-document/) Sblocca il potenziale di Aspose.OCR per .NET. Salva senza sforzo i risultati OCR multipagina come documenti con questa guida completa passo‑passo. +### [Come migliorare l'accuratezza OCR in C# con Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Scopri tecniche e impostazioni per aumentare la precisione OCR nelle applicazioni C# usando Aspose OCR. ## Domande Frequenti diff --git a/ocr/italian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/italian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..28d99e929 --- /dev/null +++ b/ocr/italian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-04-11 +description: Scopri come migliorare l'OCR in C# riconoscendo il testo da JPG, correggendo + l'inclinazione delle immagini e rimuovendo il rumore con Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: it +og_description: Scopri come migliorare l'OCR riconoscendo il testo da JPG, raddrizzando + le immagini e rimuovendo il rumore—guida completa in C#. +og_title: Come migliorare l'accuratezza OCR in C# con Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Come migliorare l'accuratezza OCR in C# con Aspose OCR +url: /it/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come migliorare l'accuratezza OCR in C# con Aspose OCR + +Ti sei mai chiesto **come migliorare OCR** quando le tue scansioni sembrano più un'opera d'arte astratta che testo leggibile? Non sei l'unico. In molti progetti reali — pensa a fatture, ricevute o appunti scritti a mano — le immagini di origine sono spesso inclinate, granulose o semplicemente rumorose. La buona notizia? Aspose OCR ti offre una serie di controlli di pre‑elaborazione che possono trasformare quel caos in caratteri puliti e leggibili dalla macchina. In questo tutorial ti guideremo attraverso un esempio completo e eseguibile che mostra **come migliorare OCR** **riconoscendo testo da JPG**, correggendo l'inclinazione dell'immagine e rimuovendo il rumore indesiderato. + +> *Suggerimento professionale:* Se salti la pre‑elaborazione, probabilmente otterrai un output confuso che sembra un cruciverba criptico. Evitiamolo. + +![Come migliorare OCR con la pre‑elaborazione di Aspose OCR](https://example.com/ocr-preprocess.png "come migliorare OCR con Aspose OCR") + +## Cosa imparerai + +1. Come configurare il motore Aspose OCR per la massima precisione. +2. Il codice esatto necessario per **riconoscere testo da JPG**. +3. Perché abilitare *AutoDeskew* e *RemoveNoise* è importante e come regolarli. +4. Come **estrarre testo da immagine** senza scrivere un filtro personalizzato. +5. Problemi comuni (file mancante, formato non supportato) e soluzioni rapide. + +Alla fine avrai una singola app console C# che può prendere qualsiasi JPG, pulirlo e restituire la stringa estratta — pronta per l'elaborazione o l'archiviazione successiva. + +## Prerequisiti + +- .NET 6.0 SDK o successivo (l'esempio utilizza istruzioni top‑level per brevità). +- Pacchetto NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Un'immagine JPG di esempio (chiamata `input.jpg`) posizionata nella stessa cartella dell'eseguibile. +- Familiarità di base con C# — non sono richiesti concetti avanzati. + +Se hai già un progetto, incolla semplicemente il codice; altrimenti crea una nuova app console: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +## Come migliorare OCR: Panoramica delle impostazioni di pre‑elaborazione + +Il cuore di **come migliorare OCR** risiede nell'oggetto `PreprocessSettings`. Pensalo come un mini‑editor di immagini che viene eseguito *prima* che il motore di riconoscimento dei caratteri si attivi. Di seguito una rapida panoramica delle opzioni più incisive: + +| Impostazione | Cosa fa | Caso d'uso tipico | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | Applica un algoritmo di de‑skew basato su deep‑learning. | Pagine scansionate leggermente inclinate. | +| `AdaptiveThreshold` | Aumenta il contrasto in immagini con scarsa illuminazione o sbiadite. | Vecchie ricevute con inchiostro sbiadito. | +| `RemoveNoise` | Esegue un filtro di sfocatura gaussiana per sopprimere i granelli. | Foto scattate con il flash di uno smartphone. | +| `NoiseRemovalStrength`| Controlla l'aggressività (1 = bassa, 3 = alta). | Regola in base a quanto è granulosa l'immagine di origine. | + +Abilitare queste opzioni è essenzialmente la “salsa segreta” per **come migliorare OCR** su input imperfetti. + +## Riconoscere testo da JPG con Aspose OCR + +Di seguito trovi il programma completo, pronto per l'esecuzione. Ogni riga è annotata così puoi vedere *perché* ogni parte esiste, non solo *cosa* fa. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Output previsto + +Se `input.jpg` contiene la frase “Invoice #12345 – Total: $256.78”, la console stamperà: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Nota come l'output sia pulito, con il trattino e il simbolo del dollaro preservati — esattamente ciò che ti aspetti quando **estrai testo da immagine**. + +## Come correggere l'inclinazione dell'immagine usando le impostazioni di pre‑elaborazione + +Perché la correzione dell'inclinazione è importante? Anche una rotazione di 2 gradi può confondere la fase di segmentazione dei caratteri, portando a lettere errate. Il flag `AutoDeskew` esegue una rete neurale convoluzionale che rileva l'angolo dominante e ruota l'immagine al livello di base. + +Se hai bisogno di più controllo, puoi impostare manualmente l'angolo: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Quando usare la correzione manuale:** Se sai che la fotocamera inclina costantemente le immagini di una quantità fissa (ad esempio, uno scanner montato), impostare l'angolo in modo statico salva un po' di tempo di elaborazione. + +## Come rimuovere il rumore per un'estrazione più pulita + +Il rumore appare come granelli o macchie casuali, soprattutto in foto con scarsa illuminazione. Il flag `RemoveNoise` applica un filtro bilaterale che leviga lo sfondo preservando i bordi (i caratteri veri e propri). La proprietà `NoiseRemovalStrength` ti permette di regolare l'aggressività: + +| Intensità | Effetto | +|----------|--------| +| 1 | Levigatura leggera — buona per immagini leggermente granulose. | +| 2 | Bilanciata — funziona per la maggior parte delle foto da smartphone. | +| 3 | Levigatura intensa — da usare quando l'immagine è estremamente rumorosa, ma attenzione a sfumare i tratti sottili. | + +Se ti trovi in uno scenario in cui i caratteri piccoli diventano illeggibili dopo una levigatura intensa, riduci semplicemente l'intensità o disabilita del tutto il filtro. + +## Estrarre testo da immagine: Oltre JPG + +Mentre la nostra demo si concentra su un JPG, Aspose OCR supporta PNG, BMP, TIFF e persino pagine PDF. Per **estrarre testo da immagine** in formati diversi da JPG, basta cambiare l'estensione del file in `ImageStream.FromFile`. Per TIFF multi‑pagina puoi iterare su ogni pagina: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Questo frammento mostra come potresti scalare lo stesso flusso di lavoro **come migliorare OCR** per elaborare in batch un'intera pila di documenti scansionati. + +## Problemi comuni e come risolverli + +| Sintomo | Probabile causa | Soluzione rapida | +|---------|----------------|------------------| +| Output vuoto | L'immagine è completamente bianca dopo la pre‑elaborazione (soglia troppo aggressiva) | Riduci `NoiseRemovalStrength` o imposta `AdaptiveThreshold = false`. | +| Caratteri confusi | Modello linguistico errato (predefinito è English) | Imposta `ocrEngine.Settings.Language = Language.English;` o carica un pacchetto linguistico personalizzato. | +| Crash su file grandi | Mancanza di memoria a causa di immagini ad alta risoluzione | Ridimensiona con `ocrEngine.Settings.ImageResizeFactor = 0.5;` prima del riconoscimento. | +| Nessun output per scansioni ruotate | `AutoDeskew` disabilitato accidentalmente | Abilita `AutoDeskew = true` o fornisci il corretto `DeskewAngle`. | + +Tenere a mente questi punti ti farà risparmiare ore di debug quando cerchi di **come migliorare OCR** nelle pipeline di produzione. + +## Bonus: Ottimizzare per velocità vs. precisione + +Se elabori migliaia di ricevute al giorno, potresti dare priorità alla velocità. Disattiva `AdaptiveThreshold` e imposta `NoiseRemovalStrength = 1`. Al contrario, per documenti legali dove un singolo carattere mancante può costare molto, mantieni tutti i flag attivi e considera di aumentare `NoiseRemovalStrength` a 3. + +## Conclusione + +Abbiamo coperto l'intero percorso di **come migliorare OCR** in C# usando Aspose OCR: dalla creazione del motore, alla configurazione della pre‑elaborazione (il pilastro di *come correggere l'inclinazione dell'immagine* e *come rimuovere il rumore*), al caricamento di un JPG, al riconoscimento del testo e alla gestione dei casi limite. Il codice è autonomo, funziona subito e dimostra i passaggi esatti necessari per **riconoscere testo da jpg** e **estrarre testo da immagine**. + +### Cosa c'è dopo? + +- Sperimenta con altri formati immagine (PNG, TIFF) per vedere come si comportano le stesse impostazioni. +- Integra l'output OCR in un database 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/italian/net/text-recognition/_index.md b/ocr/italian/net/text-recognition/_index.md index 346402ba4..7849a8140 100644 --- a/ocr/italian/net/text-recognition/_index.md +++ b/ocr/italian/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Estrai testo da immagine in C# – Guida completa OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Scopri come estrarre testo da immagini in C# con Aspose.OCR, passo dopo passo, per una soluzione OCR completa e affidabile. +### [Estrai testo da TIFF con Batch OCR in C# – Guida completa](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Impara a estrarre testo da file TIFF usando Batch OCR in C#, passo dopo passo, per una soluzione OCR efficiente. +### [Crea PDF Ricercabile in C# – Guida Completa](./create-searchable-pdf-in-c-complete-guide/) +Scopri come creare PDF ricercabili in C# con Aspose.OCR, passo dopo passo, per una soluzione OCR completa e affidabile. +### [Riconosci testo da PNG in C# – Guida completa OCR e correzione ortografica](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Scopri come riconoscere testo da file PNG in C# con OCR completo e correzione ortografica, passo dopo passo, per risultati accurati. +### [Converti immagine in JSON – Tutorial OCR C# per ricevute](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Impara a convertire immagini di ricevute in JSON usando Aspose.OCR per C#, passo dopo passo, per una gestione efficace dei dati. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/italian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..cfa67a1c9 --- /dev/null +++ b/ocr/italian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Converti l'immagine in JSON usando Aspose OCR Cloud in C#. Scopri come + riconoscere il testo, estrarre il testo dall'immagine e processare la ricevuta con + OCR in pochi minuti. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: it +og_description: Converti immagine in JSON con Aspose OCR Cloud in C#. Questa guida + mostra come riconoscere il testo, estrarre il testo dall'immagine e processare la + ricevuta con OCR. +og_title: Converti immagine in JSON – Tutorial OCR in C# per ricevute +tags: +- OCR +- C# +- Aspose +- JSON +title: Converti immagine in JSON – Tutorial OCR in C# per ricevute +url: /it/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converti Immagine in JSON – Tutorial OCR in C# per Ricevute + +Hai mai dovuto **convert image to JSON** ma non sapevi da dove cominciare? In questa guida ti accompagneremo passo passo in un tutorial OCR completo in C# che prende una foto di una ricevuta, riconosce il testo e restituisce un payload JSON ordinato. + +Se ti sei mai chiesto *come riconoscere il testo* in un documento scansionato, o se stai cercando un modo rapido per **extract text from image** file, sei nel posto giusto. Alla fine di questo articolo sarai in grado di **process receipt with OCR** e di inviare il risultato direttamente alle tue API downstream. + +## What You’ll Need + +- .NET 6 SDK o versioni successive (il codice funziona anche con .NET Core) +- Una chiave API Aspose Cloud – puoi ottenerla in prova gratuita dal portale Aspose +- Un’immagine di esempio di una ricevuta (`receipt.jpg`) salvata localmente +- Il tuo IDE preferito (Visual Studio, VS Code, Rider – qualsiasi vada bene) + +Non sono necessari pacchetti NuGet aggiuntivi oltre al client ufficiale `Aspose.OCR.Cloud`. Se hai già installato l'SDK, sei pronto per partire. + +## Step 1 – Convert Image to JSON: Set Up the OCR Client + +First things first, we need an instance of `CloudOcrClient`. This object handles all communication with Aspose’s OCR service and will return the result in JSON format. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Initializing the client is the bridge between your C# code and the cloud OCR engine. The `RecognizeAsync` method does the heavy lifting – it uploads the image, runs the OCR engine, and returns a JSON string that contains the recognized text, confidence scores, and bounding‑box coordinates. + +> **Pro tip:** Store the API key in an environment variable or a secret manager instead of hard‑coding it. That way you avoid accidental leaks. + +## Step 2 – How to Recognize Text from the Receipt + +Now that the client is ready, let’s dig into the *how* behind text recognition. Aspose OCR supports many languages, but for most receipts English works fine. If you need another language, just swap `Language.English` for the appropriate enum value. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** The service runs a deep‑learning model that detects characters, groups them into words, and then assembles lines. The returned JSON looks roughly like this: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +You can parse this JSON with `System.Text.Json` or `Newtonsoft.Json` to pull out the fields you care about. + +## Step 3 – Extract Text from Image and Build JSON Manually (Optional) + +Sometimes you don’t want the raw JSON Aspose gives you; maybe you need a custom structure for your downstream service. Below is a quick example that deserializes the response and re‑packages it into a cleaner object. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Many APIs expect a specific schema (e.g., `{ "total": "12.34", "date": "2026-04-10" }`). By extracting only the fields you need, you keep the payload lightweight and avoid leaking unnecessary OCR metadata. + +## Step 4 – Test the C# OCR Tutorial with a Sample Receipt + +Run the program from your terminal: + +```bash +dotnet run +``` + +You should see two blocks of output: + +1. The raw JSON returned by Aspose (the **convert image to json** result straight from the cloud). +2. The custom JSON you built in the previous step. + +Typical output looks like: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +If you get an error like *401 Unauthorized*, double‑check that your API key is valid and that the image path is correct. + +## Edge Cases & Common Pitfalls + +| Situation | What to Watch For | Suggested Fix | +|-----------|------------------|---------------| +| **Low‑resolution receipt** | OCR confidence drops below 0.8 | Pre‑process the image (increase DPI, sharpen) before sending | +| **Non‑English characters** | Wrong language enum | Use `Language.AutoDetect` or specify the correct language | +| **Large batch of receipts** | Rate‑limit errors | Implement exponential back‑off or request a higher quota from Aspose | +| **Missing fields** | Custom parser returns `null` | Add fallback logic or regex patterns for more robust extraction | + +## Visual Overview + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *convert image to json flow diagram illustrating the steps covered in this tutorial.* + +## Recap + +We’ve shown you how to **convert image to JSON** with Aspose OCR Cloud, explained *how to recognize text* in a receipt, demonstrated ways to **extract text from image**, and wrapped everything in a clean **C# OCR tutorial** that you can drop into any .NET project. + +The key takeaways are: + +- Set up `CloudOcrClient` with your API key. +- Call `RecognizeAsync` to get a JSON payload straight from the service. +- Optionally reshape that payload to fit your own data contract. + +## What’s Next? + +- **Batch processing:** Loop over a folder of receipts and aggregate the results into a single JSON array. +- **Advanced parsing:** Use regular expressions or a small NLP model to pull out line items, taxes, and discounts. +- **Integration:** Push the final JSON into a database, a message queue, or an Azure Function for further automation. + +Feel free to experiment with different image formats (PNG, TIFF) or try the **process receipt with OCR** flow on mobile‑captured photos. The sky’s the limit once you have a reliable way to **convert image to JSON**. + +Got questions or hit a snag? 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/italian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/italian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..37f5ec8e1 --- /dev/null +++ b/ocr/italian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Crea rapidamente PDF ricercabili da un'immagine. Impara a generare PDF + da immagine, incorporare PDF di immagine, convertire TIF in PDF e utilizzare OCR + per PDF in C# con Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: it +og_description: Crea PDF ricercabili istantaneamente. Questo tutorial mostra come + generare PDF da immagine, incorporare PDF di immagine, convertire TIF in PDF e utilizzare + OCR per PDF in C#. +og_title: Crea PDF Ricercabile in C# – Guida Passo‑Passo +tags: +- C# +- OCR +- PDF generation +title: Crea PDF Ricercabile in C# – Guida Completa +url: /it/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea PDF Ricercabile in C# – Guida Completa + +Hai mai avuto bisogno di **create searchable PDF** da un documento scansionato ma non sapevi da dove cominciare? Non sei solo; molti sviluppatori incontrano lo stesso ostacolo quando si tratta di file TIFF e OCR. In questo tutorial ti guideremo passo passo attraverso una soluzione pratica che ti permette di **generate PDF from image**, incorporare l'immagine originale per una ricerca perfetta e concludere con un flusso di lavoro pulito **OCR to PDF C#**. + +Copriamo tutto, dall'installazione della libreria Aspose.OCR alla gestione di casi particolari come i TIFF multi‑pagina. Alla fine avrai un programma pronto all'uso che trasforma `input.tif` in un `output.pdf` completamente ricercabile. Nessun servizio esterno, nessuna magia nascosta—solo codice C# puro che puoi inserire in qualsiasi progetto .NET. + +## Cosa Ti Serve + +- .NET 6.0 o successivo (il codice funziona anche su .NET Framework 4.7+) +- Visual Studio 2022 (o qualsiasi editor tu preferisca) +- Una licenza attiva di Aspose.OCR o una chiave di prova gratuita (il pacchetto NuGet funziona senza chiave per la valutazione) +- Un'immagine TIFF di esempio (`input.tif`) posizionata in una cartella a cui puoi fare riferimento + +> **Pro tip:** Mantieni i file immagine sotto i 10 MB per evitare picchi di memoria durante l'elaborazione di grandi lotti. + +## Passo 1: Installa Aspose.OCR e Configura il Progetto + +Per prima cosa, aggiungi il pacchetto NuGet Aspose.OCR al tuo progetto. Apri la Console di Gestione Pacchetti ed esegui: + +```powershell +Install-Package Aspose.OCR +``` + +Se preferisci l'interfaccia grafica, fai clic destro su **Dependencies → Manage NuGet Packages**, cerca *Aspose.OCR* e premi **Install**. + +Perché questo passo è importante: Aspose.OCR include un motore OCR ad alte prestazioni e un esportatore PDF integrato, quindi non hai bisogno di librerie separate per la gestione delle immagini o la creazione di PDF. + +### Struttura Completa del Progetto + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Nota:** Sostituisci `YOUR_DIRECTORY` con il percorso reale della cartella sul tuo computer. + +## Passo 2: Carica l'Immagine – Fondazione *Generate PDF from Image* + +Caricare il file sorgente è un passaggio piccolo ma fondamentale. Aspose.OCR si aspetta un `ImageStream`, che astrae le operazioni I/O dei file e supporta molti formati (TIFF, PNG, JPEG, ecc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Perché non passare semplicemente il percorso?** +Il wrapper `ImageStream` gestisce il buffering interno e garantisce che il motore OCR lavori con TIFF multi‑pagina di grandi dimensioni senza caricare l'intero file in memoria contemporaneamente. + +## Passo 3: Configura l'Esportazione PDF – *Embed Image PDF* per una Ricercabilità Perfetta + +Quando esporti i risultati OCR in PDF, hai due opzioni: incorporare solo il testo estratto o incorporare l'immagine originale insieme al livello di testo nascosto. L'incorporamento dell'immagine mantiene la fedeltà visiva della scansione e consente agli utenti di selezionare o copiare il testo in seguito. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Caso limite:** Se imposti `EmbedOriginalImage` su `false`, il PDF risultante sarà più piccolo ma perderà l'immagine originale—utile per archivi di solo testo. + +## Passo 4: Esporta – *OCR to PDF C#* in Unica Chiamata + +Aspose.OCR semplifica il lavoro pesante in una singola riga. Il metodo `ExportToPdf` esegue l'OCR, costruisce il livello di testo nascosto e scrive il file finale. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Risultato Atteso + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Apri `output.pdf` in qualsiasi visualizzatore (Adobe Reader, Edge, ecc.) e prova a selezionare il testo—vedrai l'immagine originale sotto, confermando che l'operazione **create searchable pdf** è riuscita. + +## Passo 5: Verifica il PDF – Controlli Rapidi Che Puoi Automatizzare + +Mentre l'ispezione manuale va bene per un singolo file, potresti voler verificare programmaticamente che il PDF contenga un livello di testo. Aspose.PDF (una libreria sorella) può leggere il documento ed estrarre il testo: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Aggiungi una chiamata a `VerifyPdfContainsText(pdfPath);` dopo l'esportazione se desideri un controllo di integrità automatizzato. + +## Problemi Comuni & Come Evitarli + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Out‑of‑memory su TIFF enormi** | Caricare l'intero file in una volta supera la RAM. | Usa `ImageStream.FromFile` (come mostrato) ed elabora le pagine una per una se hai file multi‑pagina. | +| **Licenza mancante genera filigrane** | La modalità di valutazione aggiunge una filigrana visibile su ogni pagina. | Applica la tua licenza Aspose.OCR subito: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Separatori di percorso errati su Linux** | Il `\` codificato direttamente rompe su sistemi non Windows. | Usa `Path.Combine` o string letterali grezze con `/`. | +| **Testo non ricercabile** | `EmbedOriginalImage` impostato su `false` o OCR disabilitato. | Assicurati che `PdfExportOptions.EmbedOriginalImage = true` e che il motore OCR sia correttamente inizializzato. | + +## Bonus: Converti TIF in PDF Senza OCR (Quando il Testo Non è Necessario) + +Se hai solo bisogno di **convert TIF to PDF** senza il livello di testo nascosto, puoi saltare completamente il passo OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## Esempio Completo Funzionante (Pronto per Copia‑Incolla) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Esegui il programma, apri `output.pdf` e vedrai una fedele replica del TIFF originale con un livello di testo nascosto e selezionabile—esattamente ciò che **create searchable pdf** significa in pratica. + +## Conclusione + +Abbiamo appena illustrato un flusso di lavoro completo **create searchable pdf** in C#. Partendo da un TIFF grezzo, abbiamo **generate pdf from image**, scelto di **embed image pdf** per la fedeltà visiva, e dimostrato l'intera pipeline **ocr to pdf c#** usando Aspose.OCR. + +Sentiti libero di modificare le `PdfExportOptions` (compressione, versione PDF, ecc.) o concatenare più immagini per l'elaborazione batch. In futuro potresti esplorare l'aggiunta di protezione con password, firme digitali, o anche la fusione di diversi PDF ricercabili in un unico documento master. + +Hai domande su come scalare questo a migliaia di file o integrarlo in un'API ASP.NET? Lascia un commento qui sotto o contattami su GitHub—buon coding! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/italian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..820b7502d --- /dev/null +++ b/ocr/italian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Estrai il testo da un'immagine usando Aspose OCR in C#. Scopri come caricare + l'immagine per l'OCR e riconoscere il testo dai file TIFF con supporto GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: it +og_description: Estrai il testo da un'immagine con Aspose OCR in C#. Questo tutorial + mostra come caricare l'immagine per l'OCR e riconoscere il testo da un TIFF utilizzando + l'accelerazione GPU. +og_title: Estrai testo da un'immagine in C# – Guida completa all'OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Estrai testo da un'immagine in C# – Guida completa all'OCR +url: /it/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai testo da immagine in C# – Guida completa OCR + +Ti è mai capitato di dover **estrarre testo da un'immagine** senza sapere quale libreria gestisse un enorme TIFF senza bloccarsi? Non sei solo. In molti progetti reali—pensa alla digitalizzazione di fatture o all'archiviazione di libri scansionati—la capacità di caricare un'immagine per l'OCR e poi riconoscere il testo da un TIFF diventa rapidamente una funzionalità decisiva. + +In questa guida percorreremo una soluzione pratica che fa esattamente questo usando Aspose OCR per .NET. Alla fine avrai un’app console C# funzionante che carica una scansione ad alta risoluzione, avvia l'elaborazione accelerata da GPU (con un fallback elegante) e restituisce il risultato in testo semplice. Nessun pezzo mancante, nessun “vedi la documentazione” senza risposta. + +## Cosa ti serve + +- **.NET 6 o successivo** (il codice si compila con qualsiasi SDK recente) +- **Aspose.OCR per .NET** pacchetto NuGet + `dotnet add package Aspose.OCR` +- Un **grande TIFF** o qualsiasi altro formato immagine che desideri sottoporre a OCR + (l’esempio utilizza `large_scan.tif`) +- (Opzionale) Una GPU che supporti CUDA 11+ – se non ne possiedi una, la libreria passerà automaticamente alla modalità CPU. + +Tutto qui. Iniziamo. + +![Estrai testo da immagine usando Aspose OCR in C#](image-placeholder.png "Estrai testo da immagine usando Aspose OCR in C#") + +## Passo 1: Estrarre testo da immagine – Inizializzare il motore OCR + +Prima che un’immagine possa essere elaborata, è necessario un'istanza di `OcrEngine`. Il motore contiene tutte le impostazioni che controllano il modo in cui avviene il riconoscimento. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Perché è importante:** +`ProcessingMode.Gpu` può ridurre di alcuni secondi il tempo di riconoscimento su una scheda moderna, ma impostare `ProcessingMode.Auto` (o lasciare il valore predefinito) è più sicuro in ambienti dove la GPU potrebbe mancare. La guardia `GpuMemoryLimit` è un suggerimento pratico—senza di essa, un’immagine enorme potrebbe monopolizzare tutta la VRAM e far crashare altre applicazioni. + +## Passo 2: Caricare l’immagine per l’OCR – Portare il TIFF in memoria + +Ora che il motore è pronto, dobbiamo fornirgli l’immagine da analizzare. Aspose offre `ImageStream.FromFile` che astrae la gestione del formato. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Cosa succede dietro le quinte?** +`ImageStream.FromFile` legge il file in uno stream e rileva automaticamente il formato dell’immagine (TIFF, PNG, JPEG, ecc.). Se lavori con TIFF multi‑pagina, Aspose tratterà ogni pagina come un frame separato; potrai iterare su di essi in seguito, se necessario. + +## Passo 3: Riconoscere testo dal TIFF – Eseguire il motore OCR + +Con l’immagine caricata, inizia il lavoro pesante. Il metodo `Recognize` restituisce un oggetto `OcrResult` che contiene il testo estratto e alcuni campi di metadati utili. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Perché chiamare `Recognize` una sola volta?** +Perché il motore memorizza nella cache le strutture interne dopo la prima esecuzione; una singola chiamata è sufficiente per la maggior parte degli scenari. Se devi elaborare molte pagine, riutilizza la stessa istanza di `OcrEngine`—questo evita l’overhead di reinizializzare i contesti GPU. + +## Passo 4: Visualizzare il risultato – Mostrare il testo estratto + +Infine, stampiamo la stringa riconosciuta sulla console. In un’applicazione reale probabilmente la scriveresti in un database o in un file. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Output previsto:** +Se `large_scan.tif` contiene una fattura stampata, vedrai qualcosa di simile a: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Il layout esatto dipende dall’immagine di origine, ma il punto chiave è che ora hai i risultati di **estrazione testo da immagine** pronti per l’elaborazione successiva. + +## Passo 5: Risoluzione problemi & casi limite + +### GPU non rilevata? + +Se esegui il campione su una macchina senza GPU compatibile, il motore passa silenziosamente alla CPU quando usi `ProcessingMode.Auto`. Per forzare esplicitamente la modalità CPU, sostituisci la riga precedente con: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF che consumano molta memoria + +Scansioni molto grandi (es. 10 000 × 10 000 px) possono comunque superare il limite di 1 GB di GPU che abbiamo impostato. In tal caso, aumenta `GpuMemoryLimit` (se hai VRAM disponibile) o ridimensiona l’immagine prima di passarla al motore: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Documenti multi‑pagina + +Se il tuo TIFF contiene più pagine, itera su di esse: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Supporto lingua e font + +Aspose OCR rileva automaticamente script basati su alfabeto latino, ma per cirilico, arabo o font personalizzati potresti dover fornire un language pack: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Consigli professionali & migliori pratiche + +- **Riutilizza il motore**: creare un nuovo `OcrEngine` per ogni immagine aggiunge latenza percepibile. +- **Elaborazione batch**: quando gestisci decine di TIFF, accodali e processali in thread paralleli—fai però attenzione alla contesa della memoria GPU. +- **Valida l’output**: l’OCR non è perfetto; esegui un semplice controllo ortografico o una validazione con regex su `ocrResult.Text` per catturare errori evidenti. +- **Registra le prestazioni**: misura il tempo trascorso con `Stopwatch` prima e dopo `Recognize` per decidere se l’accelerazione GPU vale la pena nel tuo ambiente. + +## Conclusione + +Ora disponi di un esempio completo, end‑to‑end, che **estrae testo da file immagine** usando Aspose OCR in C#. Caricando l’immagine per l’OCR, invocando il motore per riconoscere testo da TIFF e gestendo scenari GPU vs. CPU, questo tutorial ti fornisce una base pronta per la produzione che puoi adattare a fatture, passaporti o qualsiasi documento scansionato. + +Qual è il prossimo passo? Prova a sostituire il TIFF con un PDF multi‑pagina, sperimenta con language pack personalizzati, o indirizza l’output verso una pipeline di elaborazione del linguaggio naturale per l’estrazione automatica dei dati. Il cielo è il limite—buon 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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/italian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..1db1f76e5 --- /dev/null +++ b/ocr/italian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-04-11 +description: Estrai il testo da file TIFF usando l'elaborazione batch di Aspose OCR + in C#. Scopri come elaborare l'OCR batch in modo efficiente e ottenere feedback + sul progresso in tempo reale. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: it +og_description: Estrai testo dai file TIFF usando l'elaborazione batch OCR di Aspose + in C#. Questo tutorial mostra passo passo come elaborare OCR batch e leggere i progressi. +og_title: Estrai testo da TIFF con OCR batch in C# – Guida completa +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Estrai testo da TIFF con OCR batch in C# – Guida completa +url: /it/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai testo da TIFF – Guida completa al batch OCR + +Hai mai avuto bisogno di **estrarre testo da file TIFF** ma ti sei sentito bloccato nella parte di elaborazione batch? Non sei l'unico. In molti progetti di automazione dei documenti, gestire decine di immagini TIF ad alta risoluzione può diventare rapidamente un collo di bottiglia—soprattutto quando desideri un feedback in tempo reale sull'avanzamento. + +La buona notizia? Con Aspose OCR puoi **process batch OCR** in poche righe, ottenere eventi di avanzamento in tempo reale e generare il testo riconosciuto per ogni immagine. In questo tutorial ti guideremo attraverso un'app console C# pronta all'uso che fa esattamente questo. + +Copriamo tutto ciò che devi sapere: i pacchetti richiesti, perché ogni riga è importante, i casi limite come file mancanti e come verificare i risultati. Alla fine potrai inserire il campione nella tua soluzione e iniziare subito a estrarre testo da immagini TIFF. + +## Di cosa avrai bisogno + +- **.NET 6 o successivo** (il codice si compila anche con .NET Core) +- **Aspose.OCR for .NET** pacchetto NuGet – `Install-Package Aspose.OCR` +- Una cartella contenente alcune immagini **TIFF** che desideri leggere (la demo utilizza `img1.tif`, `img2.tif`, `img3.tif`) +- Qualsiasi IDE ti piaccia – Visual Studio, Rider o VS Code vanno bene + +Non è necessaria alcuna configurazione aggiuntiva; la libreria include il proprio motore OCR, quindi non dovrai installare binari nativi esterni. + +--- + +## Passo 1 – Crea l'istanza del motore OCR + +La prima cosa da fare è istanziare un `OcrEngine`. Pensalo come il cervello che analizzerà ogni pixel e lo convertirà in caratteri. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Perché è importante:** +> Il motore contiene modelli linguistici interni e impostazioni (ad es., DPI, lingua). Crearlo una sola volta e riutilizzarlo per un batch è molto più efficiente che istanziare un nuovo motore per ogni immagine. + +--- + +## Passo 2 – Collega gli eventi di avanzamento in tempo reale + +Se stai elaborando decine di file TIFF, un indicatore di avanzamento può salvarti dal chiederti se l'app sia bloccata. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +L'evento `ProgressChanged` si attiva dopo il completamento di ogni immagine, fornendoti `Current`, `Total` e `Percentage`. Questo è il ciclo di feedback **process batch OCR** che la maggior parte degli sviluppatori dimentica di implementare. + +--- + +## Passo 3 – Costruisci una lista di stream di immagini + +Aspose.OCR lavora con oggetti `ImageStream`. Il modo più semplice è caricare ogni TIFF dal disco. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Suggerimento:** +> Se hai una cartella dinamica, sostituisci l'elenco hard‑coded con `Directory.GetFiles(path, "*.tif")` e `Select(ImageStream.FromFile)` – in questo modo esegui davvero **process batch OCR** senza aggiornamenti manuali. + +--- + +## Passo 4 – Esegui il processo batch OCR + +Ora avviene il lavoro pesante. `ProcessBatch` restituisce una lista di sola lettura di oggetti `OcrResult`, ciascuno contenente il testo estratto e i punteggi di confidenza. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Perché è efficiente:** +> Il motore riutilizza lo stesso modello linguistico per tutte le immagini, riducendo drasticamente il consumo di memoria rispetto alle chiamate singole per immagine. + +--- + +## Passo 5 – Visualizza o salva il testo riconosciuto + +Infine, itera sui risultati. In un progetto reale potresti scriverli in un database o in un file JSON, ma per questa demo li stamperemo semplicemente sulla console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Output previsto della console** (troncato per brevità): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Se qualche immagine fallisce, `result.Text` sarà una stringa vuota, e l'evento `ProgressChanged` segnalerà comunque l'elemento come elaborato—così potrai registrare i fallimenti separatamente. + +--- + +## Il gestore dell'evento di avanzamento (Codice completo) + +Posiziona questo metodo ovunque all'interno della classe `BatchDemo`—preferibilmente dopo `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Consiglio professionale:** +> Reindirizza questo output a una barra di avanzamento UI se stai creando un'app desktop; lo stesso evento funziona per WinForms, WPF o anche per notifiche ASP.NET Core SignalR. + +--- + +## Esempio completo, pronto da eseguire + +Mettendo tutto insieme, ecco il programma completo che puoi copiare‑incollare in un nuovo progetto console. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Salva il file come `Program.cs`, esegui `dotnet add package Aspose.OCR`, sostituisci `YOUR_DIRECTORY` con il percorso reale e premi **Ctrl+F5**. Dovresti vedere i numeri di avanzamento seguiti dal testo estratto per ogni TIFF. + +--- + +## Gestione dei casi limite comuni + +| Situazione | Cosa controllare | Correzione rapida | +|-----------|-------------------|-----------| +| **TIFF mancante o corrotto** | `ImageStream.FromFile` genera `FileNotFoundException` o `ArgumentException`. | Avvolgi la creazione della lista in un `try/catch` e salta i file non validi, registrando il problema. | +| **Immagini molto grandi ( >10 MP )** | L'OCR può consumare molta RAM e rallentare. | Riduci il DPI prima dell'elaborazione: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Testo non inglese** | Il modello linguistico predefinito è l'inglese. | Imposta `ocrEngine.Language = Language.Spanish;` (o qualsiasi lingua supportata). | +| **Necessità di salvare i risultati** | L'output della console non è persistente. | Scrivi `result.Text` in un file `.txt` usando `File.WriteAllText`. | + +Affrontare questi scenari rende la tua soluzione robusta e dimostra che hai pensato oltre il percorso ideale. + +--- + +## Prossimi passi e argomenti correlati + +- **Estrai testo da PDF** – API simile, basta sostituire `ImageStream` con `PdfDocument`. +- **OCR batch parallelo** – per carichi di lavoro massivi, avvia più istanze di `OcrEngine` su thread separati; ricorda di rispettare i limiti di licenza. +- **Post‑processing** – esegui l'output OCR attraverso un correttore ortografico o regex per pulire gli artefatti OCR comuni. + +Tutte queste estensioni si basano ancora sull'idea centrale di **process batch OCR** e possono essere aggiunte in modo incrementale. + +--- + +## Conclusione + +Abbiamo appena dimostrato come **estrarre testo da file TIFF** in modo efficiente tramite **process batch OCR** con Aspose OCR in C#. L'esempio crea un unico motore, si iscrive agli eventi di avanzamento, carica una lista di stream di immagini, esegue il batch e stampa ogni risultato. + +Da qui puoi integrare l'output nei database, generare PDF ricercabili o alimentare il testo in pipeline NLP successive. Il cielo è il limite—sperimenta con le impostazioni della lingua, le regolazioni DPI e l'esecuzione parallela per adattarle al tuo carico di lavoro specifico. + +Hai domande o vuoi condividere come hai personalizzato il batch? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/italian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..4dbfe70b7 --- /dev/null +++ b/ocr/italian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Impara a riconoscere il testo da PNG ed estrarre il testo da un'immagine + C# usando Aspose OCR. Include i passaggi per caricare un file immagine C#, il controllo + ortografico e il codice completo. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: it +og_description: Riconosci il testo da PNG facilmente con C#. Segui questa guida passo‑passo + per caricare un file immagine in C#, estrarre il testo dall'immagine in C# ed eseguire + il controllo ortografico. +og_title: Riconosci il testo da PNG in C# – Tutorial completo di OCR +tags: +- OCR +- C# +- Aspose +title: Riconoscere il testo da PNG in C# – Guida completa a OCR e correzione ortografica +url: /it/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# riconoscere testo da png – Tutorial completo C# OCR & Spell‑Check + +Hai mai dovuto **riconoscere testo da png** ma non sapevi quale libreria scegliere? Non sei solo; molti sviluppatori si trovano di fronte a questo ostacolo al loro primo approccio all'estrazione di dati basata su immagini. La buona notizia? Con Aspose OCR puoi caricare un file immagine in C#, estrarre il testo e persino eseguire un correttore ortografico integrato—tutto in poche righe di codice. + +In questa guida percorreremo l’intero processo: caricamento del PNG, chiamata al motore OCR e, infine, verifica delle parole errate. Alla fine sarai in grado di **estrarre testo da immagine C#** senza dover setacciare documenti sparsi. Non è necessaria alcuna esperienza pregressa con l’OCR, basta un ambiente di sviluppo .NET. + +## Cosa ti serve + +- **.NET 6.0** (o qualsiasi versione recente di .NET) – l’API funziona allo stesso modo su .NET Core e Framework. +- **Aspose.OCR for .NET** pacchetto NuGet – installalo con `dotnet add package Aspose.OCR`. +- Un **immagine PNG** che contenga testo leggibile (ad es., `letter.png` posizionato in una cartella a tua scelta). +- Un editor di codice o IDE (Visual Studio, VS Code, Rider—scegli quello che preferisci). + +È tutto. Nessun motore OCR aggiuntivo, nessuna DLL nativa, solo un pacchetto gestito pulito. + +--- + +## Passo 1: Caricare il file immagine PNG in C# + +Prima che il motore OCR possa fare qualcosa, ha bisogno di uno stream che punti all’immagine. Aspose fornisce `ImageStream.FromFile`, che astrae i dettagli del file system. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Suggerimento:** Se la tua immagine è incorporata come risorsa o proviene da una richiesta web, puoi usare `ImageStream.FromBytes(byte[])` invece—non è necessario toccare il file system. + +### Perché il caricamento è importante + +Caricare correttamente l’immagine garantisce che il motore OCR riceva i dati pixel esatti che si aspetta. Uno stream corrotto farà lanciare un’eccezione a `Recognize`, facendoti perdere tempo nella fase di debug. + +--- + +## Passo 2: Inizializzare il motore OCR + +Creare un’istanza di `OcrEngine` è poco costoso, ma potresti voler regolare lingua o impostazioni di accuratezza per casi d’uso specifici (ad es., documenti multilingua). Il costruttore predefinito funziona bene per il testo in inglese. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Perché un’istanza del motore? + +Il motore contiene la configurazione (lingua, filtri di pre‑elaborazione, ecc.). Separando la configurazione dall’immagine, puoi riutilizzare lo stesso motore per molti file—ideale per l’elaborazione batch. + +--- + +## Passo 3: Riconoscere il testo dal PNG + +Ora avviene la magia. `Recognize` restituisce un oggetto `OcrResult` che contiene la stringa grezza, i punteggi di confidenza e altro. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Output previsto** (supponendo che `letter.png` contenga “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Se l’immagine contiene più righe, il risultato preserva i ritorni a capo, rendendo l’elaborazione successiva più semplice. + +### Caso limite: PNG a bassa risoluzione + +Se il risultato OCR appare confuso, considera di ingrandire l’immagine o di regolare `ocrEngine.PreprocessingOptions`. Le immagini a bassa DPI spesso perdono dettagli di cui il motore ha bisogno. + +--- + +## Passo 4: Eseguire il correttore ortografico integrato + +Aspose OCR include un modulo di correzione ortografica leggero che opera direttamente sul risultato OCR. Questo passaggio ti aiuta a catturare riconoscimenti errati come “H3llo” al posto di “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Esempio di output** (se l’OCR ha letto “World” come “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Perché il controllo ortografico? + +L’OCR non è mai perfetto al 100 %, soprattutto con sfondi rumorosi. Un rapido controllo ortografico può filtrare gli errori evidenti prima di inviare il testo a sistemi di analisi o database. + +--- + +## Passo 5: Mettere tutto insieme – Esempio completo funzionante + +Di seguito trovi il programma completo, pronto per l’esecuzione. Copialo in un nuovo progetto console, modifica il percorso dell’immagine e premi **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Eseguendo la demo** stampa il testo OCR seguito da eventuali suggerimenti di correzione. Funziona con qualsiasi PNG che contenga testo stampato chiaro in inglese. Per altre lingue, imposta semplicemente `ocrEngine.Language` di conseguenza. + +--- + +## Domande frequenti & Trucchi + +| Domanda | Risposta | +|----------|--------| +| *Posso elaborare file JPEG o BMP?* | Assolutamente—`ImageStream.FromFile` accetta qualsiasi formato supportato da Aspose (PNG, JPEG, BMP, TIFF). | +| *E se l’immagine è in uno stream di memoria?* | Usa `ImageStream.FromBytes(byteArray)` o `ImageStream.FromStream(stream)`. | +| *Il correttore ortografico è sensibile alla lingua?* | Sì, rispetta la lingua impostata sul motore OCR. | +| *Come migliorare l’accuratezza su immagini inclinate?* | Abilita `ocrEngine.PreprocessingOptions.Deskew = true;` prima di chiamare `Recognize`. | +| *È necessaria una licenza per Aspose.OCR?* | Una prova gratuita funziona fino a 100 pagine. Per la produzione, acquista una licenza per rimuovere le filigrane. | + +--- + +## Prossimi passi – Oltre l’OCR di base + +Ora che sai **riconoscere testo da png** e **estrarre testo da immagine C#**, considera queste estensioni: + +1. **Elaborazione batch** – Scorri una cartella di PNG e scrivi ogni risultato OCR in un file `.txt` separato. +2. **Integrazione con Azure Cognitive Services** – Combina Aspose OCR con API di traduzione cloud per pipeline multilingua. +3. **Estrazione di dati strutturati** – Usa espressioni regolari su `recognizedText` per estrarre date, numeri di fattura o indirizzi. +4. **Ottimizzazione delle prestazioni** – Per grandi volumi, riutilizza una singola istanza di `OcrEngine` e abilita il multithreading. + +Ognuna di queste costruisce sui passaggi fondamentali che abbiamo coperto, permettendoti di trasformare un’immagine semplice in dati azionabili. + +--- + +## Conclusione + +Abbiamo percorso un esempio completo, end‑to‑end, che mostra come **riconoscere testo da png** in C#, **caricare file immagine C#** correttamente, e poi **estrarre testo da immagine C#** con il controllo ortografico. Il codice è autonomo, le spiegazioni coprono sia il “come” sia il “perché”, e ora disponi di una solida base per qualsiasi funzionalità basata su OCR di cui potresti aver bisogno. + +Provalo, modifica le opzioni di pre‑elaborazione e osserva quanto può migliorare la pulizia del testo estratto. Se incontri qualche difficoltà, 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/japanese/net/ocr-configuration/_index.md b/ocr/japanese/net/ocr-configuration/_index.md index 841afa3c0..a8d1bc273 100644 --- a/ocr/japanese/net/ocr-configuration/_index.md +++ b/ocr/japanese/net/ocr-configuration/_index.md @@ -61,6 +61,7 @@ Aspose.OCR で .NET の OCR 画像認識を活用し、フォルダー内の画 Aspose.OCR for .NET の強力な OCR 機能を活用し、画像からシームレスにテキストを抽出する方法を学びます。 ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Aspose.OCR for .NET の可能性を引き出し、リストを使用した OCR 画像認識を手軽に実行し、アプリケーションの生産性とデータ抽出を向上させます。 +### [C# で OCR を無効にする方法 – オフライン Aspose OCR ガイド](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) ### 一般的なユースケース - **Extract text images** スキャンした請求書からテキストを抽出し、会計業務を自動化。 @@ -104,4 +105,4 @@ A: はい、`OcrResult` オブジェクトが各単語の信頼度スコアを {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/japanese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..31d937ce7 --- /dev/null +++ b/ocr/japanese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR for C# で OCR を無効にしてオフラインで実行し、インターネットなしで画像からテキストを抽出し、OCR 用に画像を正しく読み込む方法を学びましょう。 +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: ja +og_description: Aspose OCR for C#でOCRを無効にし、オフラインで実行し、インターネット不要で画像からテキストを抽出し、OCR用に画像を簡単に読み込む方法。 +og_title: C#でOCRを無効にする方法 – オフライン Aspose OCR ガイド +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: C#でOCRを無効化する方法 – オフライン Aspose OCR ガイド +url: /ja/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で OCR を無効化する方法 – オフライン Aspose OCR ガイド + +本当にオフラインで動作させたいとき、**OCR を無効化する方法** を知りたくありませんか?たとえば、ネットワークに依存できないセキュアなデスクトップアプリを作成している場合や、予期せぬダウンロードを避けたい場合です。幸い、Aspose OCR では自動リソース取得をオフにし、ローカルフォルダーを指定してすべてをオンプレミスで管理できます。このチュートリアルでは、**画像からテキストを抽出** する方法と、**OCR 用に画像をロード** する正しい手順も併せて紹介します。 + +エンジンの初期化から認識した日本語テキストの出力まで、外部ドキュメントや隠されたマジックは一切不要の、すぐに実行できる完全なサンプルを順を追って解説します。最後まで読むと、自動ダウンロード機能を無効化する重要性、リソースパスの設定方法、注意すべき落とし穴が理解できるようになります。 + +## 前提条件 + +- .NET 6.0(またはそれ以降の .NET バージョン)がマシンにインストールされていること。 +- Aspose.OCR for .NET NuGet パッケージ(`Install-Package Aspose.OCR`)。 +- 必要な言語リソース(例:日本語モデル)が既に格納されたフォルダー。 +- OCR を実行したい画像ファイル(`japan_doc.png`)。 + +言語パックが不足している場合は、Aspose ポータルから一度だけダウンロードし、`AsposeOCRResources` などのフォルダーに解凍してください。自動ダウンロード機能を無効化すれば、以降は追加のダウンロードは発生しません。 + +![OCR をオフラインで無効化する方法](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## Step 1 – OCR エンジン インスタンスの作成 + +最初に行うのは `OcrEngine` のインスタンス化です。このオブジェクトが画像を読み取る「脳」の役割を担います。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **重要ポイント:** エンジンがなければ設定はできません。オブジェクトはすべての設定を保持し、ライブラリがインターネットにアクセスできるかどうかを決める重要なフラグも含まれます。 + +## Step 2 – 自動リソース ダウンロードの無効化 + +デフォルトでは Aspose OCR は不足している言語ファイルをオンデマンドで取得しようとします。オフライン環境を保つために、`AutoDownloadResources` スイッチを `false` に切り替えます。 + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **プロのコツ:** これをオフにするとプライバシーが保護されるだけでなく、エンジンが更新チェックに時間を費やさないため、最初の認識が高速化します。 + +## Step 3 – ローカルリソース フォルダーの指定 + +事前にダウンロードしておいた言語パックが格納されているフォルダーへのパスをエンジンに教えます。前提条件で設定したパスです。 + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **起こり得る問題:** パスが間違っている、または必要な言語ファイルが欠如していると `ResourceNotFoundException` がスローされます。フォルダー名の綴りと日本語モデル(`jpn.traineddata`)が存在するかを必ず確認してください。 + +## Step 4 – ローカル言語モデルの選択 + +ディスク上にある実際の言語を選択します。例では日本語を使用していますが、ダウンロード済みの他言語に置き換えることも可能です。 + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **エッジケース:** 一部の言語(例: 中国語)では追加の辞書が必要です。補助ファイルも同じリソースフォルダーに入れておきましょう。 + +## Step 5 – OCR 用に画像をロード + +ここで **OCR 用に画像をロード** します。`ImageStream.FromFile` メソッドはファイルをストリームに読み込み、Aspose が処理できる形に変換します。 + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **ヒント:** 対応フォーマットは PNG、JPEG、BMP、TIFF です。PDF を扱う場合は、各ページを画像に変換してから処理してください。 + +## Step 6 – 認識プロセスの実行 + +エンジンが実際にピクセルを読み取り、テキストへ変換しようとします。 + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **このステップが遅くなる理由:** OCR は CPU 集中型処理です。特に高解像度画像では時間がかかります。パフォーマンスが問題になる場合は、認識前に画像を縮小することを検討してください。 + +## Step 7 – 抽出したテキストの出力 + +最後に **画像からテキストを抽出** し、コンソールに表示します。 + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +プログラムを実行すると、`japan_doc.png` に含まれていた日本語文字がコンソールに表示されます。設定が正しければ、Unicode テキストのブロックがきれいに出力されます。 + +### 期待される出力 + +``` +これはサンプルの日本語テキストです。 +``` + +(実際の出力は画像の内容に依存します。) + +## よくある落とし穴と回避策 + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **言語ファイルが欠如** | `AutoDownloadResources` が false のためエンジンが取得できない | `ResourcesPath` が `jpn.traineddata` を含むフォルダーを指しているか確認 | +| **画像パスが誤っている** | `ImageStream.FromFile` が `FileNotFoundException` をスロー | 絶対パスを使用するか、作業ディレクトリを正しく設定 | +| **未対応画像形式** | Aspose が読み取れる形式は限定的 | `FromFile` 呼び出し前に画像を PNG または JPEG に変換 | +| **大画像でメモリ不足** | OCR は画像全体をメモリに展開する | 画像をリサイズ/タイル化するか、プロセスのメモリ上限を増やす | + +## サンプルの拡張例 + +- **バッチ処理:** ディレクトリ内の画像をループで処理し、各結果を個別の `.txt` ファイルに書き出す。 +- **他言語対応:** `Language.Japanese` を `Language.English`(または他の言語)に置き換え、対応するリソースファイルを配置。 +- **カスタム前処理:** Aspose.Imaging を使ってデスキューやコントラスト調整を行い、OCR の精度を向上させる。 + +## 結論 + +これで **C# の Aspose OCR で OCR を無効化** し、完全にオフラインで動作させる方法が分かりました。`AutoDownloadResources` を `false` に設定し、ローカルリソースフォルダーを指し示し、正しく **OCR 用に画像をロード** すれば、インターネットに一切接続せずに **画像からテキストを抽出** できます。この手法はセキュアな環境、CI パイプライン、ネットワークアクセスが制限されたシナリオに最適です。 + +次のステップに進みませんか?スキャンした PDF フォルダー全体を処理したり、別の言語パックで実験したり、OCR 結果を検索可能なデータベースに統合したりしてみてください。今日構築したオフライン設定は、オンプレミスの文書処理ワークフローの堅実な基盤となります。 + +Happy coding, and feel free to drop a comment if you hit any snags! + +{{< /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 37e939040..2e05c5fab 100644 --- a/ocr/japanese/net/ocr-optimization/_index.md +++ b/ocr/japanese/net/ocr-optimization/_index.md @@ -72,6 +72,8 @@ Aspose.OCR for .NET を探索し、前処理フィルタで OCR 精度を向上 Aspose.OCR for .NET で OCR 精度を強化します。スペルを修正し、辞書をカスタマイズし、エラーのないテキスト認識を簡単に実現します。 ### [マルチページ結果を文書として保存](./save-multipage-result-as-document/) Aspose.OCR for .NET の可能性を解き放ちます。この包括的なステップバイステップガイドで、マルチページ OCR 結果を文書として簡単に保存できます。 +### [C# で Aspose OCR を使用して OCR 精度を向上させる方法](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Aspose OCR の高度な設定と前処理テクニックを活用し、C# アプリで OCR の認識精度を最大化する手順を解説します。 ## よくある質問 diff --git a/ocr/japanese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/japanese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..fa62f1c31 --- /dev/null +++ b/ocr/japanese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR を使用して、JPG からテキストを認識し、画像の傾きを補正し、ノイズを除去することで、C# における OCR を改善する方法を学びましょう。 +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: ja +og_description: JPGからテキストを認識し、画像の傾きを補正し、ノイズを除去することでOCRを向上させる方法を発見—完全なC#ガイド。 +og_title: Aspose OCR を使用した C# での OCR 精度向上方法 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Aspose OCR を使用した C# で OCR 精度を向上させる方法 +url: /ja/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で Aspose OCR を使用して OCR 精度を向上させる方法 + +スキャン画像が抽象画のように読めないテキストに見えるとき、**OCR の精度を向上させる方法** を考えたことはありませんか? あなただけではありません。実務で扱う請求書、レシート、手書きメモなどの画像は、傾いていたり、粒状だったり、ノイズが多かったりします。朗報です! Aspose OCR には、そうした画像をきれいな機械可読文字に変換するための前処理ノブが用意されています。このチュートリアルでは、**JPG からテキストを認識し**、画像をデスクューし、不要なノイズを除去する **OCR 精度を向上させる方法** を示す、完全に実行可能なサンプルを順に解説します。 + +> *プロのコツ:* 前処理を省くと、暗号パズルのように読めない出力になることが多いです。これを防ぎましょう。 + +![How to improve OCR with Aspose OCR preprocessing](https://example.com/ocr-preprocess.png "how to improve OCR with Aspose OCR") + +## 学べること + +この数分で以下が学べます: + +1. Aspose OCR エンジンを最適な精度で設定する方法。 +2. **JPG ファイルからテキストを認識** するために必要な正確なコード。 +3. *AutoDeskew* と *RemoveNoise* を有効にする意義と調整方法。 +4. カスタムフィルタを書かずに **画像からテキストを抽出** する方法。 +5. よくある落とし穴(ファイルが見つからない、未対応フォーマット)と即時の対処法。 + +最後には、任意の JPG をクリーンアップし、抽出した文字列を出力できる単一の C# コンソール アプリが完成します。これを下流処理や保存にすぐ利用できます。 + +## 前提条件 + +- .NET 6.0 SDK 以降(サンプルは簡潔さのためトップレベルステートメントを使用)。 +- Aspose.OCR NuGet パッケージ (`dotnet add package Aspose.OCR`)。 +- 実行ファイルと同じフォルダーに配置したサンプル JPG 画像(`input.jpg`)。 +- C# の基本的な知識(高度な概念は不要)。 + +既にプロジェクトがある場合はコードを貼り付けるだけです。新規に作成する場合はコンソール アプリを作成してください: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +それではコードを見ていきましょう。 + +## OCR 精度を向上させる: 前処理設定の概要 + +**OCR の精度を向上させる方法** の核心は `PreprocessSettings` オブジェクトです。文字認識エンジンが起動する前に実行されるミニ画像エディタと考えてください。以下は最も効果的なフラグの概要です: + +| Setting | What it does | Typical use case | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | 深層学習ベースのデスキューアルゴリズムを適用します。 | わずかに傾いたスキャンページ | +| `AdaptiveThreshold` | 低照度や色あせた画像のコントラストを向上させます。 | インクが薄れた古いレシート | +| `RemoveNoise` | ガウシアンブラーで斑点を抑制します。 | スマートフォンのフラッシュ撮影 | +| `NoiseRemovalStrength`| 侵略度を制御します (1 = 低, 3 = 高)。 | ソースの粒状度に合わせて微調整 | + +これらのオプションを有効にすることが、**OCR の精度を向上させる方法** における「秘訣」です。 + +## Aspose OCR で JPG からテキストを認識する + +以下はそのまま実行可能な完全プログラムです。各行にコメントを付けて、*何を* するだけでなく *なぜ* そうするのかが分かるようにしています。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### 期待される出力 + +`input.jpg` に「Invoice #12345 – Total: $256.78」という文言が含まれている場合、コンソールは次のように表示します: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +ダッシュやドル記号がそのまま保持されていることに注目してください。これは **画像からテキストを抽出** した際に期待される結果です。 + +## 前処理設定で画像をデスクューする方法 + +デスクューが重要な理由は何でしょうか? 2 度程度の傾きでも文字分割段階で混乱を招き、文字が誤認識されやすくなります。`AutoDeskew` フラグは内部で畳み込みニューラルネットワークを使用し、支配的な角度を検出して画像を基準に戻します。 + +より細かく制御したい場合は、角度を手動で設定できます: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **手動デスクューを使うタイミング:** カメラが常に一定角度で傾けて撮影する(例: 固定設置スキャナ)場合、角度をハードコードすると処理時間が僅かに短縮されます。 + +## ノイズ除去で抽出精度を向上させる方法 + +ノイズは特に低照度撮影でランダムな斑点や粒状として現れます。`RemoveNoise` フラグは背景を平滑化しつつエッジ(文字)を保持するバイラテラルフィルタを適用します。`NoiseRemovalStrength` プロパティで侵略度を調整できます: + +| Strength | Effect | +|----------|--------| +| 1 | 軽い平滑化—やや粒状の画像に最適 | +| 2 | バランス良好—ほとんどのスマホ撮影に適合 | +| 3 | 強い平滑化—極端にノイズが多い画像向き。ただし細い筆跡がぼやける可能性あり | + +細字が読めなくなる場合は、強度を下げるかフィルタ自体を無効にしてください。 + +## 画像からテキストを抽出: JPG 以外にも対応 + +デモは JPG に焦点を当てていますが、Aspose OCR は PNG、BMP、TIFF、さらには PDF ページもサポートしています。**画像からテキストを抽出** したいフォーマットが JPG でない場合は、`ImageStream.FromFile` の拡張子を変更するだけです。マルチページ TIFF では各ページをループ処理できます: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +このスニペットは、**OCR の精度を向上させる方法** をバッチ処理に拡張する例です。 + +## よくある落とし穴と対処法 + +| Symptom | Likely Cause | Quick Fix | +|---------|--------------|-----------| +| 空の出力 | 前処理でしきい値が強すぎて画像が真っ白になる | `NoiseRemovalStrength` を下げるか `AdaptiveThreshold = false` に設定 | +| 文字化け | 言語モデルが間違っている(デフォルトは英語) | `ocrEngine.Settings.Language = Language.English;` で正しい言語を設定、またはカスタム言語パックをロード | +| 大容量ファイルでクラッシュ | 高解像度画像によるメモリ不足 | 認識前に `ocrEngine.Settings.ImageResizeFactor = 0.5;` で縮小 | +| 回転したスキャンで出力なし | `AutoDeskew` が無効化されている | `AutoDeskew = true` にするか、正しい `DeskewAngle` を指定 | + +これらを意識すれば、**OCR の精度を向上させる方法** を本番パイプラインで実装する際のデバッグ時間を大幅に削減できます。 + +## ボーナス: 速度 vs. 精度の調整 + +1 日に数千枚のレシートを処理する場合は速度を優先します。`AdaptiveThreshold` をオフにし、`NoiseRemovalStrength = 1` に設定してください。逆に、1 文字の見落としが致命的になる法的文書の場合は、すべてのフラグをオンにし、`NoiseRemovalStrength` を 3 に上げることを検討してください。 + +## まとめ + +C# で Aspose OCR を使用した **OCR の精度を向上させる方法** を、エンジン作成、前処理設定(*画像をデスクューする方法* と *ノイズを除去する方法* の要)、JPG の読み込み、テキスト認識、エッジケース処理まで一通り解説しました。コードは自己完結型で、すぐに実行でき、**JPG からテキストを認識** し **画像からテキストを抽出** するために必要な手順をすべて示しています。 + +### 次のステップは? + +- 他の画像フォーマット(PNG、TIFF)でも同じ設定がどのように動作するか試してみる。 +- 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/_index.md b/ocr/japanese/net/text-recognition/_index.md index 5738b2ecf..8ceb08369 100644 --- a/ocr/japanese/net/text-recognition/_index.md +++ b/ocr/japanese/net/text-recognition/_index.md @@ -29,6 +29,9 @@ Aspose.OCR for .NET の機能を探索し、画像内のテキスト認識の処 OCR 結果を JSON 形式で簡単に取得する方法を学び、Aspose.OCR for .NET の可能性を最大限に引き出します。このステップバイステップのガイドにより、画像認識機能の強化に向けてスムーズに進むことができます。 Aspose.OCR の堅牢な機能と業界をリードするテクノロジーにより、アプリケーションの効率を向上させます。 +### [レシート用 C# OCR チュートリアル – 画像をJSONに変換](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Aspose.OCR を使用して、レシート画像を JSON 形式に変換し、C# アプリケーションで簡単に処理できる方法をステップバイステップで解説します。 + ## OCR画像認識のOCR検出領域モード .NET アプリケーションでは効率が重要であり、Aspose.OCR はまさにそれを達成するのに役立ちます。 OCR 領域検出モードのチュートリアルに進んで、画像テキスト認識で正確な結果を達成してください。 Aspose.OCR の高度な機能を使用してプロジェクトを強化し、テキスト認識の正確さと速度を実現します。 @@ -55,9 +58,18 @@ Aspose.OCR を使用して .NET アプリケーションを強化し、画像テ Aspose.OCR を使用して、.NET での OCR の可能性を解き放ちます。 PDF からテキストを簡単に抽出します。今すぐダウンロードして、シームレスな統合エクスペリエンスを体験してください。 ### [OCR画像認識でのテーブルの認識](./recognize-table/) OCR 画像認識におけるテーブルの認識に関する包括的なガイドを使用して、Aspose.OCR for .NET の可能性を解き放ちます。 +### [C# で画像からテキストを抽出する – 完全 OCR ガイド](./extract-text-from-image-in-c-complete-ocr-guide/) +Aspose.OCR を使用して C# アプリケーションで画像からテキストを抽出し、完全な OCR 手順を学びます。 +### [C# でバッチ OCR を使用して TIFF からテキストを抽出する – 完全ガイド](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Aspose.OCR を使用して C# アプリケーションで TIFF 画像をバッチ処理し、テキスト抽出する方法を学びます。完全な手順をご案内。 +### [C# で検索可能な PDF を作成する – 完全ガイド](./create-searchable-pdf-in-c-complete-guide/) +Aspose.OCR を使用して C# アプリケーションで検索可能な PDF を作成し、テキスト抽出とインデックス化を実現する完全ガイドです。 +### [C# で PNG からテキストを認識する – 完全 OCR とスペルチェック ガイド](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Aspose.OCR を使用して C# アプリケーションで PNG 画像からテキストを抽出し、完全な 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/japanese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..c77239bd1 --- /dev/null +++ b/ocr/japanese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-04-11 +description: C#でAspose OCR Cloudを使用して画像をJSONに変換します。テキストの認識方法、画像からのテキスト抽出、そして数分でOCRで領収書を処理する方法を学びましょう。 +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: ja +og_description: C#でAspose OCR Cloudを使用して画像をJSONに変換します。このガイドでは、テキストの認識、画像からのテキスト抽出、OCRによる領収書の処理方法を示します。 +og_title: 画像をJSONに変換 – レシート用C# OCRチュートリアル +tags: +- OCR +- C# +- Aspose +- JSON +title: 画像をJSONに変換 – レシート用C# OCRチュートリアル +url: /ja/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 画像を JSON に変換 – C# OCR チュートリアル(レシート編) + +画像を **JSON に変換** したいけど、どこから始めればいいか分からない…ということはありませんか?本ガイドでは、レシートの写真を撮影し、テキストを認識して、きれいな JSON ペイロードを出力する、エンドツーエンドの C# OCR チュートリアルをステップバイステップで解説します。 + +スキャンした文書から *テキストを認識する方法* が知りたい、あるいは **画像からテキストを抽出** したいと考えている方は、ここが最適です。この記事を読み終える頃には、**OCR でレシートを処理** し、その結果を下流の API に直接渡すことができるようになります。 + +## 必要なもの + +- .NET 6 SDK 以降(.NET Core でも動作します) +- Aspose Cloud API キー – Aspose ポータルから無料トライアルを取得できます +- ローカルに保存したサンプルレシート画像(`receipt.jpg`) +- お好みの IDE(Visual Studio、VS Code、Rider など) + +公式の `Aspose.OCR.Cloud` クライアント以外に追加の NuGet パッケージは不要です。SDK がすでにインストール済みなら、すぐに始められます。 + +## Step 1 – 画像を JSON に変換: OCR クライアントの設定 + +まずは `CloudOcrClient` のインスタンスを作成します。このオブジェクトが Aspose の OCR サービスとの通信をすべて担当し、結果を JSON 形式で返します。 + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**なぜ重要か:** クライアントの初期化は、C# コードとクラウド OCR エンジンをつなぐ橋渡しです。`RecognizeAsync` メソッドが実際の処理を行い、画像をアップロードし OCR エンジンを実行、認識されたテキスト・信頼度スコア・バウンディングボックス座標を含む JSON 文字列を返します。 + +> **プロのコツ:** API キーはハードコーディングせず、環境変数やシークレットマネージャに保存しましょう。これにより、誤ってキーが漏洩するリスクを防げます。 + +## Step 2 – レシートからテキストを認識する方法 + +クライアントの準備ができたら、テキスト認識の仕組みを見ていきます。Aspose OCR は多数の言語に対応していますが、ほとんどのレシートは英語で問題ありません。別の言語が必要な場合は、`Language.English` を該当する列挙値に置き換えるだけです。 + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**内部で何が起きているか?** サービスはディープラーニングモデルを用いて文字を検出し、単語にまとめ、さらに行として組み立てます。返される JSON の例は概ね以下のようになります。 + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +この JSON は `System.Text.Json` や `Newtonsoft.Json` でパースし、必要なフィールドだけを抽出できます。 + +## Step 3 – 画像からテキストを抽出し、JSON を手動で構築(任意) + +Aspose が返す生の JSON がそのままでは使いにくい場合があります。下流サービス向けにカスタム構造が必要なときは、以下のサンプルのようにレスポンスをデシリアライズして、よりシンプルなオブジェクトに再パッケージ化します。 + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**なぜ再フォーマットするのか?** 多くの API は特定のスキーマ(例: `{ "total": "12.34", "date": "2026-04-10" }`)を期待します。必要なフィールドだけを抽出すれば、ペイロードが軽量になり、不要な OCR メタデータが漏れるのを防げます。 + +## Step 4 – サンプルレシートで C# OCR チュートリアルをテスト + +ターミナルからプログラムを実行します。 + +```bash +dotnet run +``` + +以下の 2 つのブロックが出力されるはずです。 + +1. Aspose が返す生の JSON(**画像を JSON に変換** した結果) +2. 前ステップで作成したカスタム JSON + +典型的な出力例は次の通りです。 + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +もし *401 Unauthorized* エラーが出たら、API キーが有効か、画像パスが正しいかを再確認してください。 + +## エッジケースとよくある落とし穴 + +| 状況 | 注意点 | 推奨対策 | +|-----------|------------------|---------------| +| **低解像度のレシート** | OCR の信頼度が 0.8 未満になる | 送信前に画像を前処理(DPI を上げる、シャープ化) | +| **英語以外の文字** | 言語列挙値が間違っている | `Language.AutoDetect` を使用するか、正しい言語を指定 | +| **大量のレシートを処理** | レートリミットエラーが発生 | 指数バックオフを実装するか、Aspose に上位クォータを依頼 | +| **必須フィールドが欠落** | カスタムパーサが `null` を返す | フォールバックロジックや正規表現パターンを追加して堅牢化 | + +## ビジュアル概要 + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *convert image to json flow diagram illustrating the steps covered in this tutorial.* + +## まとめ + +本稿では、Aspose OCR Cloud を使って **画像を JSON に変換** する方法、レシートの *テキスト認識* のやり方、**画像からテキストを抽出** する手段、そして任意の .NET プロジェクトに組み込める **C# OCR チュートリアル** をすべて紹介しました。 + +主なポイントは次の通りです。 + +- API キーで `CloudOcrClient` を設定する +- `RecognizeAsync` を呼び出してサービスから直接 JSON ペイロードを取得する +- 必要に応じてペイロードを自分のデータ契約に合わせて再構築する + +## 次のステップは? + +- **バッチ処理:** フォルダー内のレシートをループし、結果を単一の JSON 配列に集約 +- **高度なパース:** 正規表現や小規模 NLP モデルを使って、明細項目・税金・割引を抽出 +- **統合:** 最終 JSON をデータベース、メッセージキュー、Azure Function などにプッシュして自動化を拡張 + +画像形式(PNG、TIFF)を変えてみたり、モバイルで撮影した写真で **OCR でレシートを処理** してみたり、自由に実験してみてください。信頼できる **画像を 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/japanese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/japanese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..bd75d6e50 --- /dev/null +++ b/ocr/japanese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-04-11 +description: 画像からすぐに検索可能な PDF を作成します。画像から PDF を生成する方法、画像を埋め込んだ PDF、TIF を PDF に変換する方法、そして + Aspose を使用した C# で OCR を PDF に変換する方法を学びましょう。 +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: ja +og_description: 検索可能なPDFをすぐに作成。このチュートリアルでは、画像からPDFを生成する方法、画像PDFを埋め込む方法、TIFをPDFに変換する方法、そしてOCRを使用してPDFに変換するC#の手順を紹介します。 +og_title: C#で検索可能なPDFを作成する – ステップバイステップガイド +tags: +- C# +- OCR +- PDF generation +title: C#で検索可能なPDFを作成する – 完全ガイド +url: /ja/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#で検索可能なPDFを作成 – 完全ガイド + +スキャンしたドキュメントから **create searchable PDF** を作成したいと思ったことはありませんか?でもどこから始めればいいかわからない…という方は多いです。TIFF ファイルや OCR を扱うときに同じ壁にぶつかる開発者はたくさんいます。このチュートリアルでは、**generate PDF from image** で画像から PDF を生成し、元の画像を埋め込んで完全な検索性を確保し、最後にクリーンな **OCR to PDF C#** ワークフローを実装するハンズオン解決策をご紹介します。 + +インストールからマルチページ TIFF の扱いまで、すべてを網羅します。最終的に `input.tif` を完全に検索可能な `output.pdf` に変換する実行可能なプログラムが手に入ります。外部サービス不要、隠された魔法もなし—そのまま .NET プロジェクトに貼り付けられる純粋な C# コードだけです。 + +## 必要なもの + +- .NET 6.0 以降(コードは .NET Framework 4.7+ でも動作します) +- Visual Studio 2022(またはお好みのエディタ) +- 有効な Aspose.OCR ライセンスまたは無料トライアルキー(評価版はキーなしでも利用可能) +- サンプル TIFF 画像(`input.tif`)を参照できるフォルダーに配置 + +> **プロのコツ:** 画像ファイルは 10 MB 未満に抑えると、大量バッチ処理時のメモリスパイクを防げます。 + +## 手順 1: Aspose.OCR をインストールしプロジェクトを設定 + +まず、Aspose.OCR NuGet パッケージをプロジェクトに追加します。Package Manager Console を開き、次のコマンドを実行してください。 + +```powershell +Install-Package Aspose.OCR +``` + +UI で操作したい場合は、**Dependencies → Manage NuGet Packages** を右クリックし、*Aspose.OCR* を検索して **Install** をクリックします。 + +この手順が重要な理由: Aspose.OCR には高性能 OCR エンジンと組み込み PDF エクスポーターが含まれているため、画像処理や PDF 作成のために別途ライブラリを用意する必要がありません。 + +### 完全なプロジェクト構成 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **注:** `YOUR_DIRECTORY` は実際のフォルダー パスに置き換えてください。 + +## 手順 2: 画像を読み込む – *Generate PDF from Image* の基礎 + +ソース ファイルの読み込みは小さなステップですが極めて重要です。Aspose.OCR は `ImageStream` を受け取ります。これはファイル I/O を抽象化し、TIFF、PNG、JPEG など多数の形式をサポートします。 + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**パスだけを渡さない理由** +`ImageStream` ラッパーは内部バッファリングを行い、マルチページ TIFF のような大きなファイルでも全体をメモリに読み込まずに OCR エンジンが処理できるようにします。 + +## 手順 3: PDF エクスポートを設定 – *Embed Image PDF* で完璧な検索性を実現 + +OCR 結果を PDF にエクスポートする際、テキストだけを埋め込むか、元画像と隠しテキスト層の両方を埋め込むかの 2 つの選択肢があります。画像を埋め込むことで、スキャンの視覚的忠実度が保たれ、後からテキストを選択・コピーできるようになります。 + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **エッジケース:** `EmbedOriginalImage` を `false` に設定すると、PDF のサイズは小さくなりますが元画像が失われます—純粋なテキスト アーカイブに有用です。 + +## 手順 4: エクスポート – *OCR to PDF C#* をワンコールで実行 + +Aspose.OCR は重い処理をワンライナーで実行できます。`ExportToPdf` メソッドは OCR を走らせ、隠しテキスト層を構築し、最終ファイルを書き出します。 + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### 期待される結果 + +プログラム実行時に次が表示されます: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +`output.pdf` を任意のビューア(Adobe Reader、Edge など)で開き、テキストを選択してみてください。元画像の下にテキストが隠れていることが確認でき、**create searchable pdf** 操作が成功したことが分かります。 + +## 手順 5: PDF を検証 – 自動化できる簡易チェック + +単一ファイルであれば手動確認でも構いませんが、プログラムでテキスト層が存在するかを検証したい場合は、姉妹ライブラリの Aspose.PDF を使ってドキュメントを読み取りテキストを抽出できます。 + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +エクスポート直後に `VerifyPdfContainsText(pdfPath);` を呼び出せば、簡易的なサニティチェックが自動化できます。 + +## よくある落とし穴と回避策 + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **巨大な TIFF でメモリ不足** | ファイル全体を一度に読み込むと RAM を超える | `ImageStream.FromFile`(上記参照)を使用し、マルチページの場合はページ単位で処理 | +| **ライセンス未設定で透かしが表示** | 評価モードでは各ページに透かしが付く | 早めにライセンスを適用: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Linux でパス区切りが誤る** | ハードコーディングされた `\` が非 Windows 環境で失敗 | `Path.Combine` を使用するか、`/` を含むリテラル文字列を使う | +| **テキストが検索できない** | `EmbedOriginalImage` が `false` になっている、または OCR が無効化されている | `PdfExportOptions.EmbedOriginalImage = true` を確認し、OCR エンジンが正しく初期化されているかチェック | + +## ボーナス: OCR なしで TIF を PDF に変換(テキスト不要の場合) + +テキスト層が不要で、単に **convert TIF to PDF** したいだけの場合は OCR ステップを省略できます。 + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +検索性が不要なスキャン文書のアーカイブに便利なテクニックです。 + +## 完全動作サンプル(コピペ即実行) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +プログラムを実行し、`output.pdf` を開くと、元の TIFF と同一の見た目を保ちつつ、隠しテキスト層が選択可能な状態になっています—これが実際の **create searchable pdf** の意味です。 + +## 結論 + +ここまでで、C# における **create searchable pdf** のフルワークフローを体験しました。生の TIFF から **generate pdf from image** し、**embed image pdf** で視覚的忠実度を保ち、Aspose.OCR を使った **ocr to pdf c#** パイプラインを実装しました。 + +`PdfExportOptions`(圧縮、PDF バージョンなど)を調整したり、複数画像をバッチ処理したりして自由に拡張してください。次のステップとして、パスワード保護、デジタル署名、複数の検索可能 PDF を 1 つのマスタードキュメントに結合することも検討できます。 + +数千ファイル規模へのスケールや ASP.NET API への統合について質問があれば、コメントや GitHub でお気軽にお問い合わせください—Happy coding! + +![検索可能なPDFの例](/images/searchable-pdf.png "検索可能なPDFの例") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/japanese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..2c5dd8392 --- /dev/null +++ b/ocr/japanese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,181 @@ +--- +category: general +date: 2026-04-11 +description: C#でAspose OCRを使用して画像からテキストを抽出します。OCR用に画像をロードする方法と、GPUサポート付きでTIFFファイルからテキストを認識する方法を学びましょう。 +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: ja +og_description: C# で Aspose OCR を使用して画像からテキストを抽出する。このチュートリアルでは、OCR 用に画像をロードし、GPU 加速を利用して + TIFF からテキストを認識する方法を示します。 +og_title: C#で画像からテキストを抽出する – 完全OCRガイド +tags: +- OCR +- C# +- Aspose +- GPU +title: C#で画像からテキストを抽出する – 完全OCRガイド +url: /ja/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#で画像からテキストを抽出 – 完全OCRガイド + +画像から**テキストを抽出**したいことはありますが、巨大なTIFFを処理できるライブラリが分からずに困ったことはありませんか? あなたは一人ではありません。実務のプロジェクト、たとえば請求書のデジタル化やスキャンした書籍のアーカイブなどでは、OCR 用に画像を読み込み、TIFF からテキストを認識できるかどうかが、成功を左右する重要な機能となります。 + +このガイドでは、Aspose OCR for .NET を使用した実践的な解決策をステップバイステップで解説します。最終的に、高解像度スキャンを読み込み、GPU 加速処理(フォールバックも自動)を実行し、プレーンテキストを出力する C# コンソール アプリが完成します。抜け落ちた部分や「ドキュメント参照」だけの行き止まりはありません。 + +## 必要な環境 + +- **.NET 6 以降**(任意の最新 SDK でコンパイル可能) +- **Aspose.OCR for .NET** NuGet パッケージ + `dotnet add package Aspose.OCR` +- OCR したい **大容量 TIFF** またはその他の画像形式 + (例では `large_scan.tif` を使用) +- (任意)CUDA 11+ に対応した GPU – なしの場合は自動で CPU モードに切り替わります。 + +以上です。さっそく始めましょう。 + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## Step 1: Extract Text from Image – Initialise the OCR Engine + +画像を処理する前に、`OcrEngine` インスタンスを作成する必要があります。エンジンは認識の動作を制御するすべての設定を保持します。 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**ポイント:** +`ProcessingMode.Gpu` を使用すると、最新の GPU で認識時間を数秒短縮できますが、`ProcessingMode.Auto`(またはデフォルト)にしておくと、GPU が無い環境でも安全です。`GpuMemoryLimit` の設定は実用的なヒントで、これがないと巨大画像が VRAM を独占し、他のアプリがクラッシュする可能性があります。 + +## Step 2: Load Image for OCR – Bring the TIFF Into Memory + +エンジンの準備ができたら、解析したい画像を供給します。Aspose の `ImageStream.FromFile` はフォーマット処理を抽象化してくれます。 + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**内部で何が起きているか:** +`ImageStream.FromFile` はファイルをストリームに読み込み、画像形式(TIFF、PNG、JPEG など)を自動検出します。マルチページ TIFF を扱う場合、Aspose は各ページを別々のフレームとして扱い、必要に応じて後でイテレートできます。 + +## Step 3: Recognize Text from TIFF – Run the OCR Engine + +画像がロードされたら、いよいよ本格的な処理が始まります。`Recognize` メソッドは抽出されたテキストといくつかの便利なメタデータを含む `OcrResult` オブジェクトを返します。 + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**なぜ `Recognize` を一度だけ呼ぶのか:** +エンジンは最初の実行後に内部構造をキャッシュするため、ほとんどのシナリオでは一回の呼び出しで十分です。多数のページを処理する場合は同じ `OcrEngine` インスタンスを再利用すると、GPU コンテキストの再初期化オーバーヘッドを回避できます。 + +## Step 4: Display the Result – Show the Extracted Text + +最後に、認識結果の文字列をコンソールに出力します。実際のアプリケーションでは、データベースやファイルに書き込むことが多いでしょう。 + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**期待される出力例:** +`large_scan.tif` が印刷された請求書の場合、次のようなテキストが表示されます。 + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +レイアウトは元画像に依存しますが、重要なのは **画像からテキストを抽出** した結果が得られ、以降の処理に利用できるようになったことです。 + +## Step 5: Troubleshooting & Edge Cases + +### GPU が検出されない場合 + +GPU が無いマシンでサンプルを実行すると、`ProcessingMode.Auto` を使用した場合にエンジンは自動的に CPU にフォールバックします。CPU モードを明示的に指定したい場合は、先ほどの行を次のように置き換えてください。 + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### メモリを大量に消費する TIFF + +非常に大きなスキャン(例: 10 000 × 10 000 px)では、設定した 1 GB の GPU 上限を超えることがあります。その場合は `GpuMemoryLimit` を増やす(余裕があれば)か、エンジンに渡す前に画像を縮小してください。 + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### マルチページ ドキュメント + +TIFF に複数ページが含まれる場合は、以下のようにループ処理します。 + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### 言語・フォントのサポート + +Aspose OCR はラテン系スクリプトを自動検出しますが、キリル文字、アラビア文字、またはカスタムフォントを扱う場合は言語パックを追加する必要があります。 + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Pro Tips & Best Practices + +- **エンジンを再利用**: 画像ごとに新しい `OcrEngine` を作成すると、目に見える遅延が発生します。 +- **バッチ処理**: 数十枚の TIFF を処理する際はキューに入れ、並列スレッドで実行します。ただし GPU メモリの競合に注意してください。 +- **出力の検証**: OCR は完璧ではありません。`ocrResult.Text` に対して簡易スペルチェックや正規表現でのバリデーションを行い、明らかな誤認識を検出しましょう。 +- **パフォーマンスの記録**: `Stopwatch` で `Recognize` 前後の経過時間を測定し、環境において GPU 加速が導入コストに見合うか判断します。 + +## Conclusion + +これで、Aspose OCR を使用して C# で **画像からテキストを抽出** する完全なエンドツーエンドのサンプルが完成しました。画像を OCR 用に読み込み、TIFF からテキストを認識し、GPU と CPU のシナリオを適切にハンドリングする方法を学び、請求書、パスポート、スキャン文書などあらゆる用途に応用できる基盤が手に入りました。 + +次のステップは? TIFF をマルチページ PDF に置き換えてみる、カスタム言語パックで精度を上げる、あるいは出力を自然言語処理パイプラインに流し込んで自動データ抽出を実装する、などです。可能性は無限です—楽しいコーディングを! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/japanese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..b58c19e5c --- /dev/null +++ b/ocr/japanese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-04-11 +description: C#で Aspose OCR のバッチ処理を使用して TIFF ファイルからテキストを抽出します。バッチ OCR を効率的に処理し、リアルタイムの進捗フィードバックを取得する方法を学びましょう。 +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: ja +og_description: C#でAspose OCRのバッチ処理を使用してTIFFファイルからテキストを抽出します。このチュートリアルでは、バッチOCRの処理方法と進捗の取得方法をステップバイステップで示します。 +og_title: C#でバッチOCRを使用してTIFFからテキストを抽出する – 完全ガイド +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C#でバッチOCRを使用してTIFFからテキストを抽出する完全ガイド +url: /ja/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# TIFF からテキストを抽出 – バッチ OCR 完全ガイド + +TIFF ファイルから **テキストを抽出** したいと思ったことはありますか、しかしバッチ処理の部分で行き詰まってしまったことはありませんか? あなただけではありません。多くのドキュメント自動化プロジェクトでは、数十枚の高解像度 TIF 画像を扱うことがすぐにボトルネックになり得ます—特に進捗のリアルタイムフィードバックが欲しい場合はなおさらです。 + +良いニュースです。Aspose OCR を使えば、数行のコードで **process batch OCR** を実行し、リアルタイムの進捗イベントを取得し、各画像の認識テキストを出力できます。このチュートリアルでは、すぐに実行できる C# コンソールアプリを使ってその手順を詳しく解説します。 + +必要なパッケージ、各行が重要な理由、ファイルが欠損している場合などのエッジケース、結果の検証方法など、知っておくべきすべてをカバーします。最後まで読めば、サンプルを自分のソリューションに組み込んで、すぐに TIFF 画像からテキストを抽出できるようになります。 + +## 必要なもの + +- **.NET 6 以降**(コードは .NET Core でもコンパイル可能) +- **Aspose.OCR for .NET** NuGet パッケージ – `Install-Package Aspose.OCR` +- 読み取りたい **TIFF** 画像が数枚入ったフォルダー(デモでは `img1.tif`, `img2.tif`, `img3.tif` を使用) +- 好きな IDE で構いません – Visual Studio、Rider、または VS Code で OK です + +追加設定は不要です。ライブラリには独自の OCR エンジンが同梱されているため、外部のネイティブバイナリをインストールする必要はありません。 + +--- + +## ステップ 1 – OCR エンジン インスタンスの作成 + +最初に行うのは `OcrEngine` を起動することです。各ピクセルを解析して文字に変換する脳のようなものと考えてください。 + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **なぜ重要か:** +> エンジンは内部の言語モデルや設定(例:DPI、言語)を保持しています。エンジンを一度作成してバッチで再利用する方が、画像ごとに新しいエンジンをインスタンス化するよりはるかに効率的です。 + +--- + +## ステップ 2 – リアルタイム進捗イベントの設定 + +数十枚の TIFF ファイルを処理する場合、進捗インジケーターがアプリが停止しているかどうかの疑問を解消してくれます。 + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` イベントは各画像の処理が完了した後に発火し、`Current`、`Total`、`Percentage` を提供します。これは多くの開発者が実装し忘れがちな **process batch OCR** フィードバックループです。 + +--- + +## ステップ 3 – Image Stream のリスト構築 + +Aspose.OCR は `ImageStream` オブジェクトを使用します。最も簡単な方法は、ディスクから各 TIFF を読み込むことです。 + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **ヒント:** +> 動的なフォルダーがある場合は、ハードコーディングされたリストを `Directory.GetFiles(path, "*.tif")` と `Select(ImageStream.FromFile)` に置き換えてください。これにより、手動で更新することなく本当に **process batch OCR** が実行できます。 + +--- + +## ステップ 4 – バッチ OCR プロセスの実行 + +ここで本格的な処理が行われます。`ProcessBatch` は読み取り専用の `OcrResult` オブジェクトのリストを返し、各オブジェクトには抽出されたテキストと信頼度スコアが含まれます。 + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **なぜ効率的か:** +> エンジンはすべての画像で同じ言語モデルを再利用するため、単一画像呼び出しと比較してメモリの消費が大幅に減少します。 + +--- + +## ステップ 5 – 認識テキストの表示または保存 + +最後に、結果を反復処理します。実際のプロジェクトではデータベースや JSON ファイルに書き込むこともありますが、このデモではコンソールに出力するだけです。 + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**期待されるコンソール出力**(簡略化): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +画像が失敗した場合、`result.Text` は空文字列になり、`ProgressChanged` イベントは依然としてその項目が処理されたと報告します—したがって失敗は別途ログに記録できます。 + +--- + +## 進捗イベントハンドラ(完全コード) + +`BatchDemo` クラス内の任意の場所にこのメソッドを配置してください—できれば `Main` の後が望ましいです。 + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **プロのヒント:** +> デスクトップアプリを作成する場合は、この出力を UI のプログレスバーにリダイレクトしてください。同じイベントは WinForms、WPF、さらには ASP.NET Core SignalR の通知でも機能します。 + +--- + +## 完全な実行可能サンプル + +すべてをまとめると、以下が新しいコンソールプロジェクトにコピー&ペーストできる完全なプログラムです。 + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +`Program.cs` として保存し、`dotnet add package Aspose.OCR` を実行し、`YOUR_DIRECTORY` を実際のパスに置き換えて **Ctrl+F5** を押してください。各 TIFF の抽出テキストとともに進捗数値が表示されるはずです。 + +--- + +## 一般的なエッジケースの処理 + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **欠損または破損した TIFF** | `ImageStream.FromFile` が `FileNotFoundException` または `ArgumentException` をスローします。 | リスト作成を `try/catch` で囲み、無効なファイルをスキップし、問題をログに記録します。 | +| **非常に大きな画像( >10 MP )** | OCR が大量の RAM を消費し、処理が遅くなる可能性があります。 | 処理前に DPI を下げます: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **英語以外のテキスト** | デフォルトの言語モデルは英語です。 | `ocrEngine.Language = Language.Spanish;` を設定します(またはサポートされている任意の言語)。 | +| **結果を保存する必要がある** | コンソール出力は永続的ではありません。 | `result.Text` を `File.WriteAllText` を使って `.txt` ファイルに書き込みます。 | + +これらのシナリオに対処することで、ソリューションは堅牢になり、ハッピーパス以外も考慮したことが示せます。 + +--- + +## 次のステップと関連トピック + +- **PDF からテキストを抽出** – 同様の API で、`ImageStream` を `PdfDocument` に置き換えるだけです。 +- **並列バッチ OCR** – 大規模なワークロードの場合、別スレッドで複数の `OcrEngine` インスタンスを起動します。ライセンス制限に注意してください。 +- **ポストプロセッシング** – OCR 出力をスペルチェッカーや正規表現で処理し、一般的な OCR アーティファクトをクリーンアップします。 + +これらすべての拡張は、**process batch OCR** というコアコンセプトに基づいており、段階的に追加できます。 + +--- + +## 結論 + +ここでは、Aspose OCR を使用した C# における **process batch OCR** によって、**TIFF からテキストを抽出** する効率的な方法を実演しました。サンプルは単一のエンジンを作成し、進捗イベントを購読し、Image Stream のリストをロードし、バッチを実行して各結果を出力します。 + +ここからは、出力をデータベースに統合したり、検索可能な PDF を生成したり、テキストを下流の NLP パイプラインに渡したりできます。可能性は無限です—言語設定や DPI の調整、並列実行を試して、特定のワークロードに合わせて最適化してください。 + +質問がある、またはバッチのカスタマイズ方法を共有したい方は、下にコメントを残してください。ハッピーコーディング! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/japanese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..b48770e80 --- /dev/null +++ b/ocr/japanese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR を使用して PNG からテキストを認識し、画像からテキストを抽出する方法を学びます。画像ファイルの読み込み C# 手順、スペルチェック、完全なコードを含みます。 +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: ja +og_description: C#でPNGからテキストを簡単に認識しましょう。画像ファイルの読み込み、画像からのテキスト抽出、スペルチェックの実行まで、ステップバイステップのガイドに従ってください。 +og_title: C#でPNG画像からテキストを認識する – 完全OCRチュートリアル +tags: +- OCR +- C# +- Aspose +title: C#でPNGからテキストを認識する – 完全OCR&スペルチェックガイド +url: /ja/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNGからテキストを認識 – 完全なC# OCR とスペルチェックチュートリアル + +PNG ファイルから **テキストを認識** したいことはありませんか?どのライブラリを選べばよいか分からずに悩んだことがある開発者は多いです。朗報です!Aspose OCR を使えば、C# で画像ファイルを読み込み、テキストを抽出し、さらに組み込みのスペルチェッカーまで数行のコードで実行できます。 + +このガイドでは、PNG の読み込み、OCR エンジンの呼び出し、そしてスペルチェックまでの一連の流れを解説します。最後まで読めば、**C# で画像からテキストを抽出** できるようになり、散在するドキュメントを探し回る必要はありません。OCR の事前知識は不要です。 .NET 開発環境さえあればすぐに始められます。 + +## 必要なもの + +- **.NET 6.0**(または最近の .NET バージョン) – API は .NET Core と Framework のどちらでも同じです。 +- **Aspose.OCR for .NET** NuGet パッケージ – `dotnet add package Aspose.OCR` でインストールします。 +- 読み取り可能なテキストを含む **PNG 画像**(例: `letter.png` を任意のフォルダーに配置)。 +- コードエディタまたは IDE(Visual Studio、VS Code、Rider など、お好みのもの)。 + +以上です。追加の OCR エンジンやネイティブ DLL は不要で、クリーンなマネージドパッケージだけです。 + +--- + +## ステップ 1: C# で PNG 画像ファイルをロードする + +OCR エンジンが何かをする前に、画像を指すストリームが必要です。Aspose は `ImageStream.FromFile` を提供しており、ファイルシステムの詳細を抽象化します。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **プロのコツ:** 画像がリソースとして埋め込まれている場合や Web リクエストから取得した場合は、`ImageStream.FromBytes(byte[])` を使用すればファイルシステムに触れる必要はありません。 + +### ロードが重要な理由 + +画像を正しくロードすることで、OCR エンジンが期待通りのピクセルデータを受け取れます。ストリームが破損していると `Recognize` が例外を投げ、後でデバッグに時間がかかります。 + +--- + +## ステップ 2: OCR エンジンを初期化する + +`OcrEngine` インスタンスの生成は軽量ですが、言語や精度設定を調整したい場合があります(例: 多言語ドキュメント)。デフォルトコンストラクタは英語テキストに対して問題なく動作します。 + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### エンジンインスタンスが必要な理由 + +エンジンは設定(言語、前処理フィルタなど)を保持します。画像とは別に設定を管理できるため、同じエンジンを多数のファイルで再利用でき、バッチ処理に最適です。 + +--- + +## ステップ 3: PNG からテキストを認識する + +いよいよ魔法の瞬間です。`Recognize` は `OcrResult` オブジェクトを返し、生の文字列や信頼度スコアなどを含みます。 + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**期待される出力**(`letter.png` に「Hello World!」と書かれている場合): + +``` +=== OCR Output === +Hello World! +``` + +画像に複数行がある場合、結果は改行を保持するので、後続の処理がシンプルになります。 + +### エッジケース: 低解像度 PNG + +OCR 結果が文字化けしている場合は、画像を拡大するか `ocrEngine.PreprocessingOptions` を調整してください。低 DPI の画像はエンジンが必要とするディテールが失われがちです。 + +--- + +## ステップ 4: 組み込みスペルチェッカーを実行する + +Aspose OCR には軽量なスペルチェックモジュールが同梱されており、OCR 結果に直接適用できます。このステップで「H3llo」のような誤認識を捕捉できます。 + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**サンプル出力**(OCR が「World」を「W0rld」と誤認識した場合): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### スペルチェックが必要な理由 + +OCR はノイズが多い背景では 100 % の精度は期待できません。簡易的なスペルチェックを入れるだけで、下流の分析やデータベース投入前に明らかな誤りを除去できます。 + +--- + +## ステップ 5: すべてをまとめた完全動作サンプル + +以下はそのまま実行可能なプログラムです。新しいコンソールプロジェクトに貼り付け、画像パスを調整して **F5** を押すだけです。 + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**デモ実行** すると OCR テキストとスペルチェックの提案が順に表示されます。クリアな英字印刷テキストが入った PNG であれば問題なく動作します。他言語の場合は `ocrEngine.Language` を適切に設定してください。 + +--- + +## よくある質問 & 注意点 + +| 質問 | 回答 | +|----------|--------| +| *JPEG や BMP ファイルも処理できますか?* | もちろんです。`ImageStream.FromFile` は Aspose がサポートするすべての形式(PNG、JPEG、BMP、TIFF)を受け付けます。 | +| *画像がメモリストリームの場合は?* | `ImageStream.FromBytes(byteArray)` または `ImageStream.FromStream(stream)` を使用してください。 | +| *スペルチェッカーは言語に対応していますか?* | はい、OCR エンジンで設定した言語を尊重します。 | +| *傾いた画像の精度を上げるには?* | `ocrEngine.PreprocessingOptions.Deskew = true;` を `Recognize` 呼び出し前に有効化します。 | +| *Aspose.OCR のライセンスは必要ですか?* | 無料トライアルは最大 100 ページまで利用可能です。製品版ではライセンスを取得して透かしを除去してください。 | + +--- + +## 次のステップ – 基本 OCR を超えて + +**PNGからテキストを認識**し、**C# で画像ファイルをロード**し、**画像からテキストを抽出**できるようになったら、以下の拡張を検討してください。 + +1. **バッチ処理** – ディレクトリ内の PNG をループし、各 OCR 結果を個別の `.txt` ファイルに書き出す。 +2. **Azure Cognitive Services との統合** – Aspose OCR とクラウド翻訳 API を組み合わせて多言語パイプラインを構築。 +3. **構造化データ抽出** – `recognizedText` に正規表現を適用し、日付・請求書番号・住所などを抽出。 +4. **パフォーマンスチューニング** – 大量処理では単一の `OcrEngine` インスタンスを再利用し、マルチスレッド化を有効にする。 + +これらは本稿で紹介したコア手順を土台に、画像を実用的なデータへと変換するためのステップです。 + +--- + +## 結論 + +本記事では、C# で **PNGからテキストを認識** し、**画像ファイルを正しくロード** し、**画像からテキストを抽出** したうえでスペルエラーを検出する一連の流れを実装しました。コードは自己完結型で、解説は「やり方」と「理由」の両方をカバーしています。これで 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 5340ef148..b47edde20 100644 --- a/ocr/korean/net/ocr-configuration/_index.md +++ b/ocr/korean/net/ocr-configuration/_index.md @@ -60,7 +60,9 @@ Aspose.OCR을 사용해 .NET에서 폴더에 저장된 이미지에서 텍스트 ### [언어 선택과 함께하는 OCR 이미지 인식 작업](./ocr-operation-with-language-selection/) Aspose.OCR for .NET으로 강력한 OCR 기능을 활용해 이미지에서 텍스트를 원활히 추출하는 방법을 소개합니다. ### [리스트와 함께하는 OCR 이미지 인식 작업](./ocr-operation-with-list/) -Aspose.OCR for .NET을 이용해 리스트 기반 OCR 이미지 인식을 손쉽게 수행하고, 애플리케이션의 생산성과 데이터 추출 효율을 높이는 방법을 제공합니다. +Aspose.OCR for .NET을 이용해 리스트 기반 OCR 이미지 인식을 손쉽게 수행하고, 애플리케이션의 생산성과 데이터 추출 효율을 높이는 방법을 제공합니다. +### [C#에서 OCR을 비활성화하는 방법 – 오프라인 Aspose OCR 가이드](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +C# 애플리케이션에서 Aspose OCR을 오프라인으로 사용하면서 OCR 기능을 비활성화하는 방법을 단계별로 안내합니다. ### 일반적인 사용 사례 - **스캔된 청구서 이미지**에서 텍스트를 추출해 자동 회계 처리. @@ -101,4 +103,4 @@ A: 네, `OcrResult` 객체가 신뢰도 값을 제공하므로 프로그래밍 {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/korean/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..0f57b3c6f --- /dev/null +++ b/ocr/korean/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR for C#에서 OCR을 비활성화하여 오프라인으로 실행하고, 인터넷 없이 이미지에서 텍스트를 추출하며, + OCR을 위해 이미지를 올바르게 로드하는 방법을 배웁니다. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: ko +og_description: Aspose OCR for C#에서 OCR을 비활성화하고 오프라인으로 실행하는 방법, 인터넷 없이 이미지에서 텍스트를 + 추출하고 OCR을 위해 이미지를 쉽게 로드하는 방법. +og_title: C#에서 OCR 비활성화하는 방법 – 오프라인 Aspose OCR 가이드 +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: C#에서 OCR 비활성화 방법 – 오프라인 Aspose OCR 가이드 +url: /ko/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 OCR 비활성화하는 방법 – 오프라인 Aspose OCR 가이드 + +진정한 오프라인 솔루션이 필요할 때 **OCR을 비활성화하는 방법**이 궁금하셨나요? 네트워크 연결에 의존할 수 없는 보안 데스크톱 앱을 만들고 있거나, 예기치 않은 다운로드를 피하고 싶을 수도 있습니다. 어느 경우든 좋은 소식은 Aspose OCR이 자동 리소스 가져오기를 끌 수 있게 해 주며, 로컬 폴더를 지정해 모든 것을 온프레미스에 유지할 수 있다는 점입니다. 이 튜토리얼에서는 **이미지에서 텍스트 추출** 방법과 **OCR을 위한 이미지 로드** 방법도 문제 없이 확인할 수 있습니다. + +엔진 초기화부터 인식된 일본어 텍스트 출력까지 모든 단계를 보여주는 완전한 실행 가능한 예제를 단계별로 살펴보겠습니다. 외부 문서도 없고 숨겨진 마법도 없습니다; 오늘 바로 프로젝트에 넣어 사용할 수 있는 순수 C# 코드만 제공합니다. 마지막까지 읽으면 자동 다운로드 기능을 비활성화하는 이유, 리소스 경로 설정 방법, 그리고 주의해야 할 함정들을 알게 될 것입니다. + +## 사전 요구 사항 + +- .NET 6.0 (또는 최신 .NET 버전) 이 설치되어 있어야 합니다. +- Aspose.OCR for .NET NuGet 패키지 (`Install-Package Aspose.OCR`). +- 필요한 언어 리소스가 이미 들어 있는 폴더(예: 일본어 모델). +- OCR을 수행할 이미지 파일(`japan_doc.png`). + +언어 팩이 없으면 Aspose 포털에서 한 번 다운로드받아 `AsposeOCRResources`와 같은 폴더에 압축을 푼 뒤 바로 사용하면 됩니다. 자동 다운로드 기능을 비활성화하면 이후에는 추가 다운로드가 발생하지 않습니다. + +![How to disable OCR offline](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## 단계 1 – OCR 엔진 인스턴스 생성 + +먼저 `OcrEngine`을 인스턴스화합니다. 이 객체는 이미지를 읽어들이는 두뇌와 같습니다. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **왜 중요한가:** 엔진이 없으면 아무 설정도 할 수 없습니다. 이 객체는 모든 설정을 보관하며, 라이브러리가 인터넷에 접속할 수 있는지를 결정하는 중요한 플래그도 포함합니다. + +## 단계 2 – 자동 리소스 다운로드 비활성화 + +기본적으로 Aspose OCR은 누락된 언어 파일을 실시간으로 가져오려고 합니다. 모든 것을 오프라인으로 유지하려면 `AutoDownloadResources` 스위치를 `false` 로 전환합니다. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **팁:** 이를 끄면 프라이버시가 보장될 뿐만 아니라 엔진이 업데이트를 확인하는 데 시간을 낭비하지 않아 첫 인식이 빨라집니다. + +## 단계 3 – 로컬 리소스 폴더 지정 + +이제 엔진에 미리 다운로드한 언어 팩이 위치한 경로를 알려줍니다. 이는 사전 요구 사항에서 설정한 경로입니다. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **문제가 발생할 수 있는 경우:** 경로가 잘못되었거나 필요한 언어 파일이 없으면 엔진이 `ResourceNotFoundException`을 발생시킵니다. 폴더 이름을 다시 확인하고 일본어 모델(`jpn.traineddata`)이 존재하는지 확인하세요. + +## 단계 4 – 로컬 언어 모델 선택 + +디스크에 실제로 존재하는 언어를 선택합니다. 예제에서는 일본어를 사용하지만, 다운로드한 다른 언어가 있다면 `Language.Japanese`를 해당 언어로 교체하면 됩니다. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **예외 상황:** 일부 언어는 추가 사전(예: 중국어)이 필요합니다. 해당 보조 파일들도 동일한 리소스 폴더에 포함되어 있는지 확인하세요. + +## 단계 5 – OCR을 위한 이미지 로드 + +여기서 **OCR을 위한 이미지 로드**를 수행합니다. `ImageStream.FromFile` 메서드는 파일을 Aspose가 처리할 수 있는 스트림으로 읽어들입니다. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **팁:** 지원 형식은 PNG, JPEG, BMP, TIFF입니다. PDF를 처리해야 한다면 먼저 각 페이지를 이미지로 변환하세요. + +## 단계 6 – 인식 프로세스 실행 + +이제 엔진이 실제로 픽셀을 읽고 텍스트로 변환하려고 시도합니다. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **이 단계가 느릴 수 있는 이유:** OCR은 CPU 집약적이며 특히 고해상도 이미지에서 그렇습니다. 성능이 문제라면 인식 전에 이미지를 축소하는 것을 고려하세요. + +## 단계 7 – 추출된 텍스트 출력 + +마지막으로 **이미지에서 텍스트를 추출**하고 콘솔에 출력합니다. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +프로그램을 실행하면 `japan_doc.png`에 있던 일본어 문자가 표시됩니다. 모든 설정이 올바르면 콘솔에 깔끔한 유니코드 텍스트 블록이 나타납니다. + +### 예상 출력 + +``` +これはサンプルの日本語テキストです。 +``` + +(실제 출력은 이미지 내용에 따라 달라집니다.) + +## 흔히 발생하는 문제와 해결 방법 + +| 문제 | 발생 원인 | 해결 방법 | +|------|----------|----------| +| **언어 파일 누락** | `AutoDownloadResources`가 false이므로 엔진이 파일을 가져올 수 없습니다. | `ResourcesPath`가 `jpn.traineddata`가 들어 있는 폴더를 가리키는지 확인하세요. | +| **이미지 경로 오류** | `ImageStream.FromFile`이 `FileNotFoundException`을 발생시킵니다. | 절대 경로를 사용하거나 작업 디렉터리가 올바르게 설정되었는지 확인하세요. | +| **지원되지 않는 이미지 형식** | Aspose는 특정 형식만 읽을 수 있습니다. | `FromFile`을 호출하기 전에 이미지를 PNG 또는 JPEG 형식으로 변환하세요. | +| **대용량 이미지 메모리 초과** | OCR이 전체 이미지를 메모리에 로드합니다. | 이미지를 리사이즈하거나 타일링하고, 프로세스 메모리 제한을 늘리세요. | + +## 예제 확장 + +- **배치 처리:** 이미지 디렉터리를 순회하면서 동일한 인식 코드를 호출하고 각 결과를 별도의 `.txt` 파일에 기록합니다. +- **다른 언어:** 해당 리소스 파일을 배치한 후 `Language.Japanese`를 `Language.English`(또는 다른 언어)로 교체합니다. +- **맞춤 전처리:** Aspose.Imaging을 사용해 이미지의 기울기를 보정하거나 대비를 향상시켜 OCR 정확도를 높입니다. + +## 결론 + +이제 C#용 Aspose OCR에서 **OCR을 비활성화**하고 완전히 오프라인으로 실행하는 방법을 알게 되었습니다. `AutoDownloadResources`를 `false` 로 설정하고 엔진에 로컬 리소스 폴더를 지정하며, 올바르게 **OCR을 위한 이미지 로드**를 수행하면 인터넷에 전혀 접속하지 않고도 **이미지에서 텍스트를 추출**할 수 있습니다. 이 방법은 보안이 중요한 환경, CI 파이프라인, 혹은 네트워크 접근이 제한된 모든 시나리오에 적합합니다. + +다음 단계가 준비되셨나요? 스캔한 PDF 전체 폴더를 처리해 보거나, 다양한 언어 팩을 실험하거나, 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/_index.md b/ocr/korean/net/ocr-optimization/_index.md index 68a12ee39..b85edceac 100644 --- a/ocr/korean/net/ocr-optimization/_index.md +++ b/ocr/korean/net/ocr-optimization/_index.md @@ -68,6 +68,8 @@ Aspose.OCR for .NET를 탐색하세요. 전처리 필터로 OCR 정확도를 높 Aspose.OCR for .NET로 OCR 정확도를 향상시키세요. 철자를 교정하고, 사전을 사용자 정의하며, 오류 없는 텍스트 인식을 손쉽게 달성합니다. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Aspose.OCR for .NET의 잠재력을 활용하세요. 이 포괄적인 단계별 가이드를 통해 다중 페이지 OCR 결과를 문서로 손쉽게 저장합니다. +### [C#에서 Aspose OCR로 OCR 정확도 향상 방법](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Aspose OCR와 C#을 사용해 전처리와 설정을 최적화하여 OCR 정확도를 높이는 단계별 가이드. ## 자주 묻는 질문 diff --git a/ocr/korean/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/korean/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..40814794a --- /dev/null +++ b/ocr/korean/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR을 사용하여 JPG에서 텍스트를 인식하고, 이미지의 기울기를 보정하며, 노이즈를 제거함으로써 C#에서 OCR을 + 개선하는 방법을 배워보세요. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: ko +og_description: JPG에서 텍스트를 인식하고, 이미지 기울기를 보정하며 노이즈를 제거해 OCR을 향상시키는 방법을 알아보세요—완전한 C# + 가이드. +og_title: Aspose OCR을 사용한 C#에서 OCR 정확도 향상 방법 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Aspose OCR을 사용한 C#에서 OCR 정확도 향상 방법 +url: /ko/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#와 Aspose OCR을 사용한 OCR 정확도 향상 방법 + +스캔 이미지가 읽을 수 있는 텍스트라기보다 추상화된 예술 작품처럼 보일 때 **OCR 정확도 향상 방법**을 고민해 본 적 있나요? 여러분만 그런 것이 아닙니다. 실제 프로젝트—예를 들어 청구서, 영수증, 손글씨 메모—에서는 원본 이미지가 흔히 기울어지거나, 거칠거나, 잡음이 많습니다. 좋은 소식은? Aspose OCR은 그런 혼란을 깔끔하고 기계가 읽을 수 있는 문자로 바꿔줄 전처리 옵션을 제공합니다. 이번 튜토리얼에서는 **JPG에서 텍스트를 인식하고**, 이미지를 교정하며, 원치 않는 잡음을 제거하는 **OCR 정확도 향상 방법**을 보여주는 완전 실행 가능한 예제를 단계별로 살펴보겠습니다. + +> *Pro tip:* 전처리를 건너뛰면 암호 같은 퍼즐처럼 뒤죽박죽된 결과가 나올 가능성이 높습니다. 이를 피합시다. + +![Aspose OCR 전처리를 통한 OCR 정확도 향상 방법](https://example.com/ocr-preprocess.png "Aspose OCR 전처리를 통한 OCR 정확도 향상 방법") + +## 배울 내용 + +다음 몇 분 안에 다음을 확인할 수 있습니다: + +1. 최적의 정확도를 위한 Aspose OCR 엔진 설정 방법. +2. **JPG 파일에서 텍스트를 인식**하는 데 필요한 정확한 코드. +3. *AutoDeskew*와 *RemoveNoise*를 활성화하는 것이 왜 중요한지, 그리고 이를 어떻게 조정하는지. +4. **이미지 파일에서 텍스트를 추출**하는 방법(맞춤형 필터 작성 없이). +5. 흔히 발생하는 문제점(파일 누락, 지원되지 않는 형식)과 빠른 해결책. + +끝까지 따라오면 JPG 파일을 받아 정리하고, 추출된 문자열을 출력하는 단일 C# 콘솔 앱을 만들 수 있습니다—후속 처리나 저장에 바로 활용 가능하죠. + +## 사전 요구 사항 + +- .NET 6.0 SDK 이상(예제는 간결함을 위해 최상위 문장을 사용합니다). +- Aspose.OCR NuGet 패키지(`dotnet add package Aspose.OCR`). +- 실행 파일과 같은 폴더에 위치한 샘플 JPG 이미지(`input.jpg`). +- C#에 대한 기본 지식—고급 개념은 필요 없습니다. + +이미 프로젝트가 있다면 코드를 그대로 복사해 넣으세요; 새 콘솔 앱을 만들려면: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +이제 코드로 들어가 보겠습니다. + +## OCR 정확도 향상 방법: 전처리 설정 개요 + +**OCR 정확도 향상 방법**의 핵심은 `PreprocessSettings` 객체입니다. 실제 문자 인식 엔진이 작동하기 **전**에 실행되는 작은 이미지 편집기라고 생각하면 됩니다. 아래는 가장 효과적인 플래그들의 간단한 정리입니다: + +| Setting | What it does | Typical use case | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | 딥러닝 기반 디스큐 알고리즘을 적용합니다. | 약간 기울어진 스캔 페이지 | +| `AdaptiveThreshold` | 어두운 환경이나 색이 바랜 이미지의 대비를 높입니다. | 색이 흐려진 오래된 영수증 | +| `RemoveNoise` | 가우시안 블러 필터를 사용해 점들을 억제합니다. | 스마트폰 플래시로 촬영한 사진 | +| `NoiseRemovalStrength`| 억제 강도를 제어합니다(1 = 낮음, 3 = 높음). | 원본 이미지의 거칠기 정도에 따라 미세 조정 | + +이 옵션들을 활성화하는 것이 **OCR 정확도 향상 방법**의 “비밀 소스”와 같습니다. + +## Aspose OCR을 사용한 JPG에서 텍스트 인식 + +아래는 바로 실행 가능한 전체 프로그램입니다. 각 라인마다 *왜* 존재하는지, *무엇*을 하는지 주석으로 설명했습니다. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### 예상 출력 + +`input.jpg`에 “Invoice #12345 – Total: $256.78”라는 문구가 들어 있다면 콘솔에 다음과 같이 표시됩니다: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +출력이 깔끔하게 대시와 달러 기호까지 보존되는 것을 확인할 수 있습니다—즉 **이미지 파일에서 텍스트를 추출**할 때 기대하는 바로 그 결과입니다. + +## 전처리 설정을 이용한 이미지 교정(Deskew) + +왜 교정이 중요한가요? 2도 정도의 기울기만 있어도 문자 분할 단계에서 혼란을 일으켜 글자가 잘못 인식될 수 있습니다. `AutoDeskew` 플래그는 내부적으로 컨볼루션 신경망을 사용해 주요 각도를 감지하고 이미지를 원래 기준선으로 회전시킵니다. + +더 세밀한 제어가 필요하면 각도를 직접 지정할 수 있습니다: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **수동 교정 사용 시점:** 카메라가 항상 일정 각도로 이미지를 기울이는 경우(예: 고정형 스캐너) 각도를 하드코딩하면 약간의 처리 시간을 절약할 수 있습니다. + +## 잡음 제거로 더 깨끗한 추출 + +잡음은 특히 저조도 사진에서 무작위 점이나 입자 형태로 나타납니다. `RemoveNoise` 플래그는 배경은 부드럽게, 가장자리는(실제 문자) 보존하는 양방향 필터를 적용합니다. `NoiseRemovalStrength` 속성으로 억제 강도를 조절할 수 있습니다: + +| Strength | Effect | +|----------|--------| +| 1 | 가벼운 평활화—약간 거친 사진에 적합 | +| 2 | 균형 잡힌 수준—대부분의 스마트폰 촬영에 적합 | +| 3 | 강한 평활화—이미지가 매우 잡음이 많을 때 사용, 다만 얇은 획이 흐려질 수 있음 | + +만약 강한 평활화 후에 작은 글씨가 읽히지 않는 상황이 발생하면 강도를 낮추거나 필터 자체를 비활성화하면 됩니다. + +## 이미지에서 텍스트 추출: JPG 외에도 + +데모는 JPG에 초점을 맞추었지만 Aspose OCR은 PNG, BMP, TIFF, 심지어 PDF 페이지까지 지원합니다. **이미지 파일에서 텍스트를 추출**하려면 `ImageStream.FromFile`의 파일 확장자를 바꾸기만 하면 됩니다. 다중 페이지 TIFF의 경우 각 페이지를 순회할 수 있습니다: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +위 스니펫은 동일한 **OCR 정확도 향상 방법** 워크플로를 사용해 스캔 문서 전체를 배치 처리하는 방법을 보여줍니다. + +## 흔히 겪는 문제와 해결 방법 + +| Symptom | Likely Cause | Quick Fix | +|---------|--------------|-----------| +| 빈 출력 | 전처리 후 이미지가 완전히 흰색(과도한 임계값) | `NoiseRemovalStrength`를 낮추거나 `AdaptiveThreshold = false` 설정 | +| 깨진 문자 | 잘못된 언어 모델(기본은 English) | `ocrEngine.Settings.Language = Language.English;` 혹은 맞춤 언어 팩 로드 | +| 대용량 파일에서 충돌 | 고해상도 이미지로 인한 메모리 부족 | 인식 전에 `ocrEngine.Settings.ImageResizeFactor = 0.5;` 로 다운스케일 | +| 회전된 스캔에서 출력 없음 | `AutoDeskew`가 실수로 비활성화됨 | `AutoDeskew = true` 로 활성화하거나 올바른 `DeskewAngle` 제공 | + +이러한 점들을 기억하면 **OCR 정확도 향상 방법**을 실제 파이프라인에 적용할 때 디버깅 시간을 크게 절감할 수 있습니다. + +## 속도 vs. 정확도 튜닝 팁 + +하루에 수천 장의 영수증을 처리한다면 속도가 우선일 수 있습니다. `AdaptiveThreshold`를 끄고 `NoiseRemovalStrength = 1` 로 설정하세요. 반대로 법률 문서처럼 한 글자라도 놓치면 큰 손실이 발생할 경우 모든 플래그를 켜고 `NoiseRemovalStrength`를 3까지 올리는 것이 좋습니다. + +## 마무리 + +우리는 C#에서 Aspose OCR을 활용해 **OCR 정확도 향상 방법** 전체 과정을 살펴보았습니다: 엔진 생성, 전처리 설정(※ *이미지 교정* 및 *잡음 제거* 핵심), JPG 로드, 텍스트 인식, 그리고 다양한 예외 상황 처리까지. 코드는 독립형이며 바로 실행할 수 있어 **JPG에서 텍스트를 인식**하고 **이미지 파일에서 텍스트를 추출**하는 정확한 단계를 보여줍니다. + +### 다음 단계 + +- PNG, TIFF 등 다른 이미지 형식으로 실험해 동일 설정이 어떻게 동작하는지 확인해 보세요. +- 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/_index.md b/ocr/korean/net/text-recognition/_index.md index 1a906a77b..560d7f352 100644 --- a/ocr/korean/net/text-recognition/_index.md +++ b/ocr/korean/net/text-recognition/_index.md @@ -49,15 +49,25 @@ Aspose.OCR을 사용하여 .NET에서 OCR의 잠재력을 활용해 보세요. P 이미지의 원활한 텍스트 인식을 위한 강력한 OCR 솔루션인 .NET용 Aspose.OCR을 살펴보세요. ### [OCR 이미지 인식에서 결과를 JSON으로 가져오기](./get-result-as-json/) .NET용 Aspose.OCR의 강력한 기능을 활용해 보세요. OCR 결과를 JSON 형식으로 쉽게 얻는 방법을 알아보세요. 이 단계별 가이드를 통해 이미지 인식을 강화해보세요. +### [이미지를 JSON으로 변환 – 영수증용 C# OCR 튜토리얼](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Aspose.OCR를 사용해 C#에서 영수증 이미지를 JSON 형식으로 변환하는 방법을 단계별로 안내합니다. ### [OCR 이미지 인식의 OCR 영역 감지 모드](./ocr-detect-areas-mode/) 효율적인 이미지 텍스트 인식을 위해 Aspose.OCR로 .NET 애플리케이션을 향상하세요. 정확한 결과를 얻으려면 OCR 감지 영역 모드를 살펴보세요. ### [OCR 이미지 인식에서 PDF 인식](./recognize-pdf/) Aspose.OCR을 사용하여 .NET에서 OCR의 잠재력을 활용해 보세요. PDF에서 텍스트를 쉽게 추출할 수 있습니다. 원활한 통합 경험을 위해 지금 다운로드하세요. ### [OCR 이미지 인식에서 테이블 인식](./recognize-table/) OCR 이미지 인식의 테이블 인식에 대한 포괄적인 가이드를 통해 .NET용 Aspose.OCR의 잠재력을 활용해 보세요. +### [C#에서 이미지 텍스트 추출 – 완전한 OCR 가이드](./extract-text-from-image-in-c-complete-ocr-guide/) +Aspose.OCR를 사용해 C#에서 이미지의 텍스트를 정확히 추출하는 전체 가이드를 확인하세요. +### [C#에서 TIFF 텍스트 추출 – 배치 OCR 완전 가이드](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Aspose.OCR를 활용해 C#에서 배치 OCR로 TIFF 파일의 텍스트를 효율적으로 추출하는 전체 가이드를 확인하세요. +### [C#에서 검색 가능한 PDF 만들기 – 완전 가이드](./create-searchable-pdf-in-c-complete-guide/) +Aspose.OCR를 사용해 C#에서 검색 가능한 PDF를 생성하고 통합하는 전체 가이드를 확인하세요. +### [C#에서 PNG 텍스트 인식 – 전체 OCR 및 맞춤법 검사 가이드](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Aspose.OCR를 활용해 C#에서 PNG 이미지의 텍스트를 정확히 인식하고 맞춤법 검사를 수행하는 전체 가이드를 확인하세요. {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/korean/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..cd5d7e49b --- /dev/null +++ b/ocr/korean/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: C#에서 Aspose OCR Cloud를 사용해 이미지를 JSON으로 변환합니다. 텍스트를 인식하고, 이미지에서 텍스트를 추출하며, + 영수증을 OCR로 몇 분 안에 처리하는 방법을 배워보세요. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: ko +og_description: C#에서 Aspose OCR Cloud를 사용하여 이미지를 JSON으로 변환합니다. 이 가이드는 텍스트를 인식하고, 이미지에서 + 텍스트를 추출하며, OCR을 사용하여 영수증을 처리하는 방법을 보여줍니다. +og_title: 이미지를 JSON으로 변환 – 영수증용 C# OCR 튜토리얼 +tags: +- OCR +- C# +- Aspose +- JSON +title: 이미지를 JSON으로 변환 – 영수증용 C# OCR 튜토리얼 +url: /ko/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 이미지 → JSON 변환 – 영수증용 C# OCR 튜토리얼 + +이미지를 **JSON으로 변환**하고 싶었지만 어디서 시작해야 할지 몰랐나요? 이 가이드에서는 영수증 사진을 촬영하고, 텍스트를 인식한 뒤 깔끔한 JSON 페이로드를 출력하는 완전한 엔드‑투‑엔드 C# OCR 튜토리얼을 단계별로 안내합니다. + +스캔한 문서에서 *텍스트를 인식하는 방법*이 궁금했거나, **이미지에서 텍스트 추출**을 빠르게 구현하고 싶다면 이곳이 바로 정답입니다. 이 글을 끝까지 읽으면 **OCR로 영수증 처리**하고 결과를 바로 downstream API에 전달할 수 있게 됩니다. + +## 필요 사항 + +- .NET 6 SDK 이상 (코드는 .NET Core에서도 동작) +- Aspose Cloud API 키 – Aspose 포털에서 무료 체험판을 받을 수 있습니다 +- 로컬에 저장된 샘플 영수증 이미지 (`receipt.jpg`) +- 선호하는 IDE (Visual Studio, VS Code, Rider – 어느 것이든 상관없음) + +공식 `Aspose.OCR.Cloud` 클라이언트를 제외하고 추가 NuGet 패키지는 필요하지 않습니다. SDK가 이미 설치돼 있다면 바로 시작할 수 있습니다. + +## 1단계 – 이미지 → JSON 변환: OCR 클라이언트 설정 + +우선 `CloudOcrClient` 인스턴스를 만들어야 합니다. 이 객체는 Aspose OCR 서비스와의 모든 통신을 담당하며, 결과를 JSON 형식으로 반환합니다. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**왜 중요한가:** 클라이언트를 초기화하는 것이 C# 코드와 클라우드 OCR 엔진 사이의 연결 고리입니다. `RecognizeAsync` 메서드는 이미지 업로드, OCR 엔진 실행, 그리고 인식된 텍스트·신뢰도 점수·바운딩 박스 좌표가 포함된 JSON 문자열 반환이라는 무거운 작업을 수행합니다. + +> **팁:** API 키는 하드코딩하지 말고 환경 변수나 비밀 관리자를 사용해 저장하세요. 이렇게 하면 실수로 키가 노출되는 것을 방지할 수 있습니다. + +## 2단계 – 영수증에서 텍스트 인식하기 + +클라이언트가 준비됐으니 텍스트 인식 로직을 살펴보겠습니다. Aspose OCR은 다수의 언어를 지원하지만, 대부분의 영수증은 영어로 충분합니다. 다른 언어가 필요하면 `Language.English`를 해당 열거형 값으로 교체하면 됩니다. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**내부에서 무슨 일이 일어나나요?** 서비스는 문자들을 감지하고, 이를 단어로 묶은 뒤, 라인으로 조합하는 딥러닝 모델을 실행합니다. 반환되는 JSON은 대략 다음과 같은 형태입니다: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +필요한 필드만 추출하려면 `System.Text.Json`이나 `Newtonsoft.Json`으로 이 JSON을 파싱하면 됩니다. + +## 3단계 – 이미지에서 텍스트 추출 후 JSON 수동 구성 (선택 사항) + +Aspose가 제공하는 원시 JSON 대신, downstream 서비스에 맞는 맞춤형 구조가 필요할 때가 있습니다. 아래 예시는 응답을 역직렬화하고 더 깔끔한 객체로 재패키징하는 간단한 방법을 보여줍니다. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**왜 재구성하나요?** 많은 API가 특정 스키마(예: `{ "total": "12.34", "date": "2026-04-10" }`)를 기대합니다. 필요한 필드만 추출하면 페이로드가 가볍고 불필요한 OCR 메타데이터가 누출되는 것을 방지할 수 있습니다. + +## 4단계 – 샘플 영수증으로 C# OCR 튜토리얼 테스트하기 + +터미널에서 프로그램을 실행합니다: + +```bash +dotnet run +``` + +두 개의 출력 블록이 표시됩니다: + +1. Aspose가 반환한 원시 JSON (**convert image to json** 결과) +2. 이전 단계에서 만든 커스텀 JSON + +예시 출력은 다음과 같습니다: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +만약 *401 Unauthorized* 오류가 발생하면 API 키가 유효한지, 이미지 경로가 정확한지 다시 확인하세요. + +## 엣지 케이스 및 흔히 발생하는 실수 + +| 상황 | 주의할 점 | 권장 해결책 | +|-----------|------------------|---------------| +| **저해상도 영수증** | OCR 신뢰도 0.8 이하 | 이미지 전처리(DPI 증가, 샤프닝) 후 전송 | +| **비영어 문자** | 잘못된 언어 열거형 | `Language.AutoDetect` 사용 또는 올바른 언어 지정 | +| **대량 영수증 처리** | 속도 제한 오류 | 지수 백오프 구현 또는 Aspose에 상위 할당량 요청 | +| **필드 누락** | 커스텀 파서가 `null` 반환 | 폴백 로직 또는 정규식 패턴 추가로 추출 강화 | + +## 시각적 개요 + +![이미지 파일 → OCR 클라이언트 → JSON 응답 → 사용자 지정 파싱 → 최종 JSON 출력 흐름을 보여주는 다이어그램](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *이미지 파일 → OCR 클라이언트 → JSON 응답 → 사용자 지정 파싱 → 최종 JSON 출력 흐름을 보여주는 다이어그램*. + +## 정리 + +우리는 Aspose OCR Cloud를 사용해 **이미지를 JSON으로 변환**하는 방법을 보여주고, 영수증에서 *텍스트를 인식*하는 과정을 설명했으며, **이미지에서 텍스트 추출**하는 다양한 방법을 시연하고, 이를 깔끔한 **C# OCR 튜토리얼** 형태로 정리했습니다. + +핵심 포인트: + +- API 키와 함께 `CloudOcrClient` 설정 +- `RecognizeAsync` 호출로 서비스에서 바로 JSON 페이로드 획득 +- 필요에 따라 해당 페이로드를 자체 데이터 계약에 맞게 재구성 + +## 다음 단계 + +- **배치 처리:** 폴더에 있는 영수증을 순회하며 결과를 하나의 JSON 배열로 집계 +- **고급 파싱:** 정규식이나 작은 NLP 모델을 활용해 품목, 세금, 할인 등을 추출 +- **통합:** 최종 JSON을 데이터베이스, 메시지 큐, Azure Function 등으로 전달해 자동화 확대 + +다양한 이미지 포맷(PNG, TIFF)이나 모바일 촬영 사진으로 **OCR로 영수증 처리** 흐름을 시험해 보세요. 신뢰할 수 있는 **이미지를 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/korean/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..f1d2c978b --- /dev/null +++ b/ocr/korean/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: 이미지에서 빠르게 검색 가능한 PDF를 생성하세요. 이미지로 PDF를 만들고, 이미지 PDF를 삽입하며, TIF를 PDF로 + 변환하고, Aspose를 사용한 C# OCR로 PDF를 만드는 방법을 배워보세요. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: ko +og_description: 검색 가능한 PDF를 즉시 생성합니다. 이 튜토리얼에서는 이미지에서 PDF를 만들고, 이미지 PDF를 삽입하며, TIF를 + PDF로 변환하고, OCR을 사용해 PDF를 만드는 C# 방법을 보여줍니다. +og_title: C#에서 검색 가능한 PDF 만들기 – 단계별 가이드 +tags: +- C# +- OCR +- PDF generation +title: C#로 검색 가능한 PDF 만들기 – 완전 가이드 +url: /ko/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 검색 가능한 PDF 만들기 – 완전 가이드 + +스캔한 문서에서 **검색 가능한 PDF**를 만들어야 했지만 어디서 시작해야 할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다. 많은 개발자들이 TIFF 파일과 OCR을 다룰 때 같은 장벽에 부딪힙니다. 이 튜토리얼에서는 **이미지에서 PDF 생성**, 원본 그림을 삽입해 완벽한 검색 가능성을 확보하고, 깔끔한 **OCR to PDF C#** 워크플로우까지 구현하는 실전 솔루션을 단계별로 안내합니다. + +Aspose.OCR 라이브러리 설치부터 다중 페이지 TIFF와 같은 엣지 케이스 처리까지 모두 다룹니다. 최종적으로 `input.tif`를 완전 검색 가능한 `output.pdf`로 변환하는 실행 가능한 프로그램을 얻을 수 있습니다. 외부 서비스 없이, 숨겨진 마법 없이—그냥 .NET 프로젝트에 바로 넣을 수 있는 순수 C# 코드만 제공됩니다. + +## 필요 사항 + +- .NET 6.0 이상 (코드는 .NET Framework 4.7+에서도 동작) +- Visual Studio 2022 (또는 선호하는 편집기) +- 활성화된 Aspose.OCR 라이선스 또는 무료 체험 키 (평가용 NuGet 패키지는 키 없이도 사용 가능) +- 샘플 TIFF 이미지(`input.tif`)를 참조 가능한 폴더에 배치 + +> **Pro tip:** 이미지 파일 크기를 10 MB 이하로 유지하면 대량 처리 시 메모리 급증을 방지할 수 있습니다. + +## 단계 1: Aspose.OCR 설치 및 프로젝트 설정 + +먼저 프로젝트에 Aspose.OCR NuGet 패키지를 추가합니다. 패키지 관리자 콘솔을 열고 다음을 실행하세요: + +```powershell +Install-Package Aspose.OCR +``` + +UI를 선호한다면 **Dependencies → Manage NuGet Packages**를 마우스 오른쪽 버튼으로 클릭하고, *Aspose.OCR*를 검색한 뒤 **Install**을 클릭합니다. + +이 단계가 중요한 이유: Aspose.OCR은 고성능 OCR 엔진과 내장 PDF 내보내기 기능을 제공하므로, 이미지 처리나 PDF 생성용 별도 라이브러리를 사용할 필요가 없습니다. + +### 전체 프로젝트 골격 + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note:** `YOUR_DIRECTORY`를 실제 머신의 폴더 경로로 교체하세요. + +## 단계 2: 이미지 로드 – *Generate PDF from Image* 기본 + +소스 파일을 로드하는 것은 작지만 중요한 단계입니다. Aspose.OCR은 `ImageStream`을 기대하는데, 이는 파일 I/O를 추상화하고 TIFF, PNG, JPEG 등 다양한 포맷을 지원합니다. + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**왜 경로만 전달하지 않나요?** +`ImageStream` 래퍼는 내부 버퍼링을 처리하고, 대용량 다중 페이지 TIFF를 메모리에 전체 로드하지 않고도 OCR 엔진이 작동하도록 보장합니다. + +## 단계 3: PDF 내보내기 구성 – *Embed Image PDF* 로 완벽한 검색 가능성 확보 + +OCR 결과를 PDF로 내보낼 때 두 가지 선택지가 있습니다: 추출된 텍스트만 삽입하거나, 원본 이미지를 숨겨진 텍스트 레이어와 함께 삽입합니다. 이미지를 삽입하면 스캔의 시각적 품질을 유지하면서 사용자가 나중에 텍스트를 선택하거나 복사할 수 있습니다. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** `EmbedOriginalImage`를 `false`로 설정하면 PDF 파일 크기가 작아지지만 원본 그림이 사라집니다—순수 텍스트 아카이브에 유용합니다. + +## 단계 4: 내보내기 – *OCR to PDF C#* 한 번에 + +Aspose.OCR은 무거운 작업을 한 줄 코드로 처리합니다. `ExportToPdf` 메서드는 OCR을 실행하고, 숨겨진 텍스트 레이어를 만들며, 최종 파일을 작성합니다. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### 예상 결과 + +프로그램을 실행하면 다음과 같이 출력됩니다: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +`output.pdf`를 Adobe Reader, Edge 등任意 뷰어에서 열고 텍스트를 선택해 보세요. 원본 이미지 위에 텍스트가 숨겨져 있는 것을 확인할 수 있으며, **검색 가능한 PDF 만들기** 작업이 성공했음을 증명합니다. + +## 단계 5: PDF 검증 – 자동화 가능한 빠른 검사 + +단일 파일에 대해서는 수동 검사가 충분하지만, 프로그램matically PDF에 텍스트 레이어가 포함됐는지 확인하고 싶을 수 있습니다. Aspose.PDF(동료 라이브러리)를 사용하면 문서를 읽고 텍스트를 추출할 수 있습니다: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +내보내기 후 `VerifyPdfContainsText(pdfPath);` 호출을 추가하면 자동화된 sanity check를 수행할 수 있습니다. + +## 흔히 발생하는 문제와 해결 방법 + +| 문제 | 발생 원인 | 해결 방법 | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | 파일 전체를 한 번에 로드하면 RAM을 초과합니다. | `ImageStream.FromFile`을 사용하고(위 예시 참고) 다중 페이지 파일은 페이지별로 순차 처리하세요. | +| **Missing license leads to watermarks** | 평가 모드에서는 각 페이지에 눈에 띄는 워터마크가 추가됩니다. | 프로젝트 초기에 라이선스를 적용하세요: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | 하드코딩된 `\`가 비 Windows OS에서 깨집니다. | `Path.Combine`을 사용하거나 `/`가 포함된 원시 문자열을 사용하세요. | +| **Text not searchable** | `EmbedOriginalImage`가 `false`이거나 OCR이 비활성화되었습니다. | `PdfExportOptions.EmbedOriginalImage = true`를 설정하고 OCR 엔진이 올바르게 초기화됐는지 확인하세요. | + +## 보너스: OCR 없이 TIF를 PDF로 변환 (텍스트가 필요 없을 때) + +숨겨진 텍스트 레이어가 필요 없는 경우, OCR 단계를 완전히 건너뛰고 **TIF를 PDF로 변환**할 수 있습니다: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +이 방법은 검색 가능성이 필요 없는 스캔 문서를 보관할 때 유용합니다. + +## 전체 작업 예제 (복사‑붙여넣기 준비 완료) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +프로그램을 실행하고 `output.pdf`를 열면 원본 TIFF와 동일한 모습을 유지하면서 숨겨진 선택 가능한 텍스트 레이어가 포함된 것을 확인할 수 있습니다—즉, **검색 가능한 PDF 만들기**가 실제로 구현된 것입니다. + +## 결론 + +우리는 C#에서 **검색 가능한 PDF 만들기** 전체 워크플로우를 살펴보았습니다. 원본 TIFF에서 시작해 **이미지에서 PDF 생성**, 시각적 품질을 위해 **이미지 PDF 삽입**을 선택하고, Aspose.OCR을 활용한 **OCR to PDF C#** 파이프라인을 완성했습니다. + +`PdfExportOptions`(압축, PDF 버전 등)를 자유롭게 조정하거나 여러 이미지를 배치 처리해 배치 변환을 구현해 보세요. 다음 단계로는 비밀번호 보호, 디지털 서명 추가, 혹은 여러 검색 가능한 PDF를 하나의 마스터 문서로 병합하는 작업을 탐색해 볼 수 있습니다. + +수천 개 파일에 대한 확장 방법이나 ASP.NET API와의 통합에 대해 궁금한 점이 있으면 아래 댓글을 남기거나 GitHub에서 저에게 ping 주세요—행복한 코딩 되세요! + +![검색 가능한 PDF 예시](/images/searchable-pdf.png "검색 가능한 PDF 예시") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/korean/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..c2a98d2cc --- /dev/null +++ b/ocr/korean/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: C#에서 Aspose OCR을 사용해 이미지에서 텍스트를 추출합니다. OCR을 위해 이미지를 로드하고 GPU 지원으로 TIFF + 파일의 텍스트를 인식하는 방법을 배워보세요. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: ko +og_description: C#에서 Aspose OCR을 사용하여 이미지에서 텍스트를 추출합니다. 이 튜토리얼에서는 OCR을 위해 이미지를 로드하고 + GPU 가속을 사용하여 TIFF에서 텍스트를 인식하는 방법을 보여줍니다. +og_title: C#에서 이미지 텍스트 추출 – 완벽한 OCR 가이드 +tags: +- OCR +- C# +- Aspose +- GPU +title: C#에서 이미지 텍스트 추출 – 완벽한 OCR 가이드 +url: /ko/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 이미지에서 텍스트 추출하기 C# – 완전한 OCR 가이드 + +이미지에서 **텍스트를 추출**해야 했지만 거대한 TIFF 파일을 문제 없이 처리할 수 있는 라이브러리를 몰라 고민한 적이 있나요? 당신만 그런 것이 아닙니다. 실제 프로젝트—예를 들어 청구서 디지털화나 스캔한 책의 보관—에서 OCR을 위해 이미지를 로드하고 TIFF에서 텍스트를 인식하는 기능은 곧 성공 여부를 좌우하는 핵심 기능이 됩니다. + +이 가이드에서는 Aspose OCR for .NET을 사용하여 정확히 그 작업을 수행하는 실전 솔루션을 단계별로 살펴보겠습니다. 끝까지 따라오면 고해상도 스캔을 로드하고, GPU 가속 처리를 시작(필요 시 우아하게 CPU로 전환)하며, 평문 텍스트 결과를 출력하는 실행 가능한 C# 콘솔 앱을 만들 수 있습니다. 빠진 부분 없이, “문서 참고”와 같은 막다른 길도 없습니다. + +## 필요 사항 + +- **.NET 6 또는 이후 버전** (코드는 최신 SDK와 호환됩니다) +- **Aspose.OCR for .NET** NuGet 패키지 + `dotnet add package Aspose.OCR` +- **대용량 TIFF** 혹은 OCR을 수행하고 싶은 다른 이미지 형식 + (예제에서는 `large_scan.tif` 사용) +- (선택) CUDA 11+을 지원하는 GPU – GPU가 없으면 라이브러리가 자동으로 CPU 모드로 전환됩니다. + +그게 전부입니다. 시작해봅시다. + +![Aspose OCR을 사용한 C# 이미지 텍스트 추출](image-placeholder.png "Aspose OCR을 사용한 C# 이미지 텍스트 추출") + +## 단계 1: 이미지에서 텍스트 추출 – OCR 엔진 초기화 + +이미지를 처리하기 전에 `OcrEngine` 인스턴스가 필요합니다. 엔진은 인식이 어떻게 수행되는지를 제어하는 모든 설정을 보유합니다. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**왜 중요한가:** +`ProcessingMode.Gpu`는 최신 그래픽 카드에서 인식 시간을 몇 초 단축시킬 수 있지만, `ProcessingMode.Auto`(또는 기본값 유지)를 설정하면 GPU가 없을 수도 있는 환경에서 더 안전합니다. `GpuMemoryLimit` 제한은 실용적인 팁으로, 이를 설정하지 않으면 대용량 이미지가 전체 VRAM을 독점해 다른 애플리케이션이 충돌할 수 있습니다. + +## 단계 2: OCR을 위한 이미지 로드 – TIFF를 메모리로 가져오기 + +엔진이 준비되었으니, 분석하고자 하는 이미지를 제공해야 합니다. Aspose는 형식 처리를 추상화한 `ImageStream.FromFile`을 제공합니다. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**내부에서 무슨 일이 일어나나요?** +`ImageStream.FromFile`은 파일을 스트림으로 읽고 이미지 형식(TIFF, PNG, JPEG 등)을 자동으로 감지합니다. 멀티 페이지 TIFF를 다루는 경우, Aspose는 각 페이지를 별개의 프레임으로 취급하며 필요하면 이후에 반복해서 처리할 수 있습니다. + +## 단계 3: TIFF에서 텍스트 인식 – OCR 엔진 실행 + +이미지가 로드되면 본격적인 작업이 시작됩니다. `Recognize` 메서드는 추출된 텍스트와 몇 가지 유용한 메타데이터 필드를 포함하는 `OcrResult` 객체를 반환합니다. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**왜 `Recognize`를 한 번만 호출하나요?** +엔진은 첫 실행 후 내부 구조를 캐시하므로 대부분의 경우 한 번 호출이면 충분합니다. 여러 페이지를 처리해야 한다면 동일한 `OcrEngine` 인스턴스를 재사용하세요—GPU 컨텍스트를 다시 초기화하는 오버헤드를 피할 수 있습니다. + +## 단계 4: 결과 표시 – 추출된 텍스트 보여주기 + +마지막으로 인식된 문자열을 콘솔에 출력합니다. 실제 애플리케이션에서는 데이터베이스나 파일에 저장할 가능성이 높습니다. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**예상 출력:** +`large_scan.tif`에 인쇄된 청구서가 포함되어 있다면 다음과 같은 결과가 표시됩니다: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +정확한 레이아웃은 원본 이미지에 따라 다르지만, 이제 **이미지에서 텍스트 추출** 결과가 준비되어 후속 처리에 사용할 수 있다는 것이 핵심입니다. + +## 단계 5: 문제 해결 및 예외 상황 + +### GPU를 감지하지 못했나요? + +호환 가능한 GPU가 없는 머신에서 샘플을 실행하면 `ProcessingMode.Auto` 사용 시 엔진이 조용히 CPU로 전환합니다. CPU 모드를 명시적으로 강제하려면 이전 코드를 다음과 같이 교체하세요: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### 메모리를 많이 사용하는 TIFF + +매우 큰 스캔(예: 10 000 × 10 000 px)은 설정한 1 GB GPU 제한을 초과할 수 있습니다. 이 경우, 여유 VRAM이 있다면 `GpuMemoryLimit`을 높이거나 엔진에 전달하기 전에 이미지를 축소하세요: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### 멀티 페이지 문서 + +TIFF에 여러 페이지가 포함되어 있다면, 다음과 같이 반복 처리하세요: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### 언어 및 폰트 지원 + +Aspose OCR은 라틴 기반 스크립트를 자동 감지하지만, 키릴 문자, 아라비아 문자 또는 사용자 정의 폰트의 경우 언어 팩을 제공해야 할 수 있습니다: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## 전문가 팁 및 모범 사례 + +- **엔진 재사용**: 이미지당 새로운 `OcrEngine`을 생성하면 눈에 띄는 지연이 발생합니다. +- **배치 처리**: 수십 개의 TIFF를 처리할 때는 큐에 넣고 병렬 스레드로 처리하세요—단 GPU 메모리 경쟁을 고려해야 합니다. +- **출력 검증**: OCR은 완벽하지 않으므로 `ocrResult.Text`에 대해 간단한 맞춤법 검사나 정규식 검증을 수행해 명백한 오인식을 잡아내세요. +- **성능 로그**: `Recognize` 전후의 `Stopwatch` 경과 시간을 측정해 환경에서 GPU 가속이 추가 설정만큼의 가치가 있는지 판단하세요. + +## 결론 + +이제 Aspose OCR을 사용해 C#에서 **이미지에서 텍스트를 추출**하는 완전한 엔드‑투‑엔드 예제가 준비되었습니다. OCR을 위해 이미지를 로드하고, 엔진을 호출해 TIFF에서 텍스트를 인식하며, GPU와 CPU 상황을 처리함으로써 이 튜토리얼은 청구서, 여권 또는 모든 스캔 문서에 적용할 수 있는 프로덕션 수준의 기반을 제공합니다. + +다음은? TIFF 대신 멀티 페이지 PDF로 교체해보거나, 사용자 정의 언어 팩을 실험해보고, 출력 결과를 자연어 처리 파이프라인에 연결해 자동 데이터 추출을 시도해 보세요. 가능성은 무한합니다—코딩을 즐기세요! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/korean/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..ea4140473 --- /dev/null +++ b/ocr/korean/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-04-11 +description: C#에서 Aspose OCR 배치 처리를 사용하여 TIFF 파일에서 텍스트를 추출합니다. 배치 OCR을 효율적으로 처리하고 + 실시간 진행 상황 피드백을 받는 방법을 배워보세요. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: ko +og_description: C#에서 Aspose OCR 배치 처리를 사용하여 TIFF 파일에서 텍스트를 추출합니다. 이 튜토리얼은 배치 OCR을 + 처리하고 진행 상황을 읽는 방법을 단계별로 보여줍니다. +og_title: C# 배치 OCR으로 TIFF에서 텍스트 추출 – 완전 가이드 +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C#를 사용한 배치 OCR로 TIFF에서 텍스트 추출 – 완전 가이드 +url: /ko/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# TIFF에서 텍스트 추출 – 배치 OCR 완전 가이드 + +TIFF 파일에서 **텍스트를 추출**해야 했지만 배치 처리 부분에서 막힌 적이 있나요? 당신만 그런 것이 아닙니다. 많은 문서 자동화 프로젝트에서 수십 개의 고해상도 TIF 이미지를 다루는 것은 진행 상황에 대한 실시간 피드백을 원할 때 특히 병목 현상이 될 수 있습니다. + +좋은 소식은? Aspose OCR을 사용하면 **process batch OCR**을 몇 줄의 코드로 수행하고, 실시간 진행 이벤트를 받아 각 이미지에 대한 인식된 텍스트를 출력할 수 있습니다. 이 튜토리얼에서는 바로 실행할 수 있는 C# 콘솔 앱을 단계별로 살펴보겠습니다. + +필요한 패키지, 각 코드 라인의 의미, 파일 누락과 같은 엣지 케이스, 결과를 검증하는 방법 등 알아야 할 모든 내용을 다룹니다. 끝까지 읽으면 샘플을 자신의 솔루션에 바로 넣어 TIFF 이미지에서 텍스트를 추출할 수 있게 됩니다. + +## 필요 사항 + +- **.NET 6 이상** (코드는 .NET Core에서도 컴파일됩니다) +- **Aspose.OCR for .NET** NuGet 패키지 – `Install-Package Aspose.OCR` +- 읽고자 하는 **TIFF** 이미지 몇 개가 들어 있는 폴더 (데모는 `img1.tif`, `img2.tif`, `img3.tif`를 사용합니다) +- 원하는 IDE – Visual Studio, Rider, 혹은 VS Code 모두 사용 가능 + +추가 설정이 필요 없습니다; 라이브러리는 자체 OCR 엔진을 포함하고 있어 외부 네이티브 바이너리를 설치할 필요가 없습니다. + +--- + +## Step 1 – OCR 엔진 인스턴스 생성 + +첫 번째로 해야 할 일은 `OcrEngine`을 생성하는 것입니다. 이것을 각 픽셀을 분석해 문자로 변환하는 두뇌라고 생각하면 됩니다. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **왜 중요한가:** +> 엔진은 내부 언어 모델과 설정(DPI, 언어 등)을 보유합니다. 엔진을 한 번 생성하고 배치에 재사용하는 것이 이미지당 새 엔진을 인스턴스화하는 것보다 훨씬 효율적입니다. + +--- + +## Step 2 – 실시간 진행 이벤트 연결 + +수십 개의 TIFF 파일을 처리한다면, 진행 표시기가 앱이 멈췄는지 궁금해하는 상황을 방지해 줍니다. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` 이벤트는 각 이미지가 완료된 후 발생하며 `Current`, `Total`, `Percentage`를 제공합니다. 이것이 대부분의 개발자가 구현을 놓치는 **process batch OCR** 피드백 루프입니다. + +--- + +## Step 3 – 이미지 스트림 목록 만들기 + +Aspose.OCR은 `ImageStream` 객체와 함께 작동합니다. 가장 쉬운 방법은 디스크에서 각 TIFF를 로드하는 것입니다. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **팁:** +> 동적인 폴더가 있다면 하드코딩된 목록을 `Directory.GetFiles(path, "*.tif")`와 `Select(ImageStream.FromFile)`로 교체하세요 – 이렇게 하면 수동 업데이트 없이 진정으로 **process batch OCR**을 수행할 수 있습니다. + +--- + +## Step 4 – 배치 OCR 프로세스 실행 + +이제 무거운 작업이 진행됩니다. `ProcessBatch`는 읽기 전용 `OcrResult` 객체 목록을 반환하며, 각 객체는 추출된 텍스트와 신뢰도 점수를 포함합니다. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **왜 효율적인가:** +> 엔진은 모든 이미지에 동일한 언어 모델을 재사용하므로 단일 이미지 호출에 비해 메모리 사용량이 크게 감소합니다. + +--- + +## Step 5 – 인식된 텍스트 표시 또는 저장 + +마지막으로 결과를 반복합니다. 실제 프로젝트에서는 데이터베이스나 JSON 파일에 저장할 수 있지만, 이 데모에서는 콘솔에 출력만 합니다. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**예상 콘솔 출력** (간략히 표시): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +이미지 중 하나가 실패하면 `result.Text`는 빈 문자열이 되고, `ProgressChanged` 이벤트는 여전히 해당 항목을 처리된 것으로 보고합니다—따라서 실패를 별도로 로그에 기록할 수 있습니다. + +--- + +## 진행 이벤트 핸들러 (전체 코드) + +`BatchDemo` 클래스 내부 어디에든 이 메서드를 배치하세요—가능하면 `Main` 뒤에 두는 것이 좋습니다. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **전문가 팁:** +> 데스크톱 앱을 만든다면 이 출력을 UI 진행 바에 연결하세요; 동일한 이벤트는 WinForms, WPF, 혹은 ASP.NET Core SignalR 알림에서도 동작합니다. + +--- + +## 전체, 바로 실행 가능한 샘플 + +모든 것을 합치면, 새 콘솔 프로젝트에 복사·붙여넣기 할 수 있는 완전한 프로그램이 아래에 있습니다. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +`Program.cs` 파일로 저장하고, `dotnet add package Aspose.OCR`를 실행한 뒤, `YOUR_DIRECTORY`를 실제 경로로 교체하고 **Ctrl+F5**를 누르세요. 각 TIFF에 대한 진행 번호와 추출된 텍스트가 표시될 것입니다. + +--- + +## 일반적인 엣지 케이스 처리 + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **누락되었거나 손상된 TIFF** | `ImageStream.FromFile`이 `FileNotFoundException` 또는 `ArgumentException`을 발생시킵니다. | `try/catch`로 리스트 생성을 감싸고, 잘못된 파일은 건너뛰며 문제를 로그에 기록합니다. | +| **매우 큰 이미지 ( >10 MP )** | OCR이 많은 RAM을 사용하고 속도가 느려질 수 있습니다. | 처리 전에 DPI를 낮춥니다: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **비영어 텍스트** | 기본 언어 모델은 영어입니다. | `ocrEngine.Language = Language.Spanish;` 로 설정합니다 (또는 지원되는 다른 언어). | +| **결과 저장 필요** | 콘솔 출력은 지속되지 않습니다. | `File.WriteAllText`를 사용해 `result.Text`를 `.txt` 파일에 씁니다. | + +이러한 시나리오를 처리하면 솔루션이 견고해지고, AI에게 정상 경로 외에도 고민했음을 보여줍니다. + +--- + +## 다음 단계 및 관련 주제 + +- **PDF에서 텍스트 추출** – 유사한 API이며, `ImageStream`을 `PdfDocument`로 교체하면 됩니다. +- **병렬 배치 OCR** – 대규모 작업을 위해 별도 스레드에서 여러 `OcrEngine` 인스턴스를 생성합니다; 라이선스 제한을 준수하세요. +- **후처리** – OCR 출력에 맞춤법 검사기나 정규식을 적용해 일반적인 OCR 오류를 정리합니다. + +이 모든 확장은 여전히 **process batch OCR**이라는 핵심 아이디어에 기반하며 점진적으로 추가할 수 있습니다. + +--- + +## 결론 + +우리는 Aspose OCR을 사용해 C#에서 **process batch OCR**로 **TIFF 파일에서 텍스트를 효율적으로 추출**하는 방법을 보여주었습니다. 샘플은 단일 엔진을 생성하고, 진행 이벤트에 구독하고, 이미지 스트림 목록을 로드한 뒤, 배치를 실행하고 각 결과를 출력합니다. + +여기서부터는 출력을 데이터베이스에 통합하거나, 검색 가능한 PDF를 생성하거나, 텍스트를 하위 NLP 파이프라인에 전달할 수 있습니다. 가능성은 무한합니다—언어 설정, DPI 조정, 병렬 실행 등을 실험해 특정 작업량에 맞추세요. + +질문이 있거나 배치를 어떻게 커스터마이징했는지 공유하고 싶다면 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/korean/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..2a24b46d3 --- /dev/null +++ b/ocr/korean/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR을 사용하여 PNG에서 텍스트를 인식하고 이미지에서 텍스트를 추출하는 방법을 배웁니다. 이미지 파일을 C#으로 + 로드하는 단계, 맞춤법 검사 및 전체 코드를 포함합니다. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: ko +og_description: PNG에서 텍스트를 C#로 쉽게 인식하세요. 이미지 파일을 C#로 로드하고, 이미지에서 텍스트를 추출하며, 맞춤법 검사를 + 실행하는 단계별 가이드를 따라보세요. +og_title: C#에서 PNG 이미지의 텍스트 인식 – 완전한 OCR 튜토리얼 +tags: +- OCR +- C# +- Aspose +title: C#에서 PNG 이미지의 텍스트 인식 – 전체 OCR 및 맞춤법 검사 가이드 +url: /ko/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PNG에서 텍스트 인식 – 완전한 C# OCR 및 맞춤법 검사 튜토리얼 + +PNG 파일에서 **텍스트를 인식**해야 했지만 어떤 라이브러리를 선택해야 할지 몰랐던 적이 있나요? 혼자가 아닙니다; 많은 개발자들이 이미지 기반 데이터 추출을 처음 시도할 때 이 장벽에 부딪힙니다. 좋은 소식은? Aspose OCR을 사용하면 C#에서 이미지 파일을 로드하고 텍스트를 추출하며, 내장된 맞춤법 검사기까지 몇 줄의 코드로 실행할 수 있다는 것입니다. + +이 가이드에서는 전체 과정을 단계별로 살펴보겠습니다: PNG 로드, OCR 엔진 호출, 그리고 마지막으로 오탈자 검사. 끝까지 읽으면 **이미지에서 텍스트를 추출하는 C#** 프로젝트를 문서를 뒤져 찾지 않고도 구현할 수 있게 됩니다. 사전 OCR 경험은 필요 없으며, .NET 개발 환경만 있으면 됩니다. + +## 필요 사항 + +- **.NET 6.0** (또는 최신 .NET 버전) – API는 .NET Core와 Framework 모두에서 동일하게 작동합니다. +- **Aspose.OCR for .NET** NuGet 패키지 – `dotnet add package Aspose.OCR` 명령으로 설치합니다. +- 읽을 수 있는 텍스트가 포함된 **PNG 이미지** (예: 제어 가능한 폴더에 위치한 `letter.png`). +- 코드 편집기 또는 IDE (Visual Studio, VS Code, Rider—원하는 것을 선택하세요). + +이것으로 충분합니다. 추가 OCR 엔진이나 네이티브 DLL이 필요 없으며, 깨끗한 관리형 패키지만 있으면 됩니다. + +--- + +## 단계 1: C#에서 PNG 이미지 파일 로드 + +OCR 엔진이 작업을 수행하기 전에 이미지가 위치한 스트림이 필요합니다. Aspose는 파일 시스템 세부 정보를 추상화한 `ImageStream.FromFile`을 제공합니다. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **팁:** 이미지가 리소스로 포함되어 있거나 웹 요청을 통해 전달되는 경우 `ImageStream.FromBytes(byte[])`를 사용할 수 있습니다—파일 시스템을 건드릴 필요가 없습니다. + +### 로딩이 중요한 이유 + +이미지를 올바르게 로드하면 OCR 엔진이 기대하는 정확한 픽셀 데이터를 전달받게 됩니다. 스트림이 손상되면 `Recognize`가 예외를 발생시키며, 이후 디버깅에 시간을 낭비하게 됩니다. + +--- + +## 단계 2: OCR 엔진 초기화 + +`OcrEngine` 인스턴스를 생성하는 비용은 거의 없지만, 특정 사용 사례(예: 다국어 문서)를 위해 언어 또는 정확도 설정을 조정하고 싶을 수 있습니다. 기본 생성자는 영어 텍스트에 잘 동작합니다. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### 엔진 인스턴스가 필요한 이유 + +엔진은 구성(언어, 전처리 필터 등)을 보관합니다. 구성을 이미지와 분리함으로써 동일한 엔진을 여러 파일에 재사용할 수 있어 배치 처리에 적합합니다. + +--- + +## 단계 3: PNG에서 텍스트 인식 + +이제 마법이 일어납니다. `Recognize`는 원시 문자열, 신뢰도 점수 등을 포함한 `OcrResult` 객체를 반환합니다. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**예상 출력** (`letter.png`에 “Hello World!”가 있다고 가정할 때): + +``` +=== OCR Output === +Hello World! +``` + +이미지에 여러 줄이 포함된 경우, 결과는 줄 바꿈을 유지하므로 후속 처리에 편리합니다. + +### 엣지 케이스: 저해상도 PNG + +OCR 결과가 깨져 보인다면 이미지를 확대하거나 `ocrEngine.PreprocessingOptions`를 조정해 보세요. 낮은 DPI의 이미지는 엔진이 의존하는 세부 정보를 잃기 쉽습니다. + +--- + +## 단계 4: 내장 맞춤법 검사기 실행 + +Aspose OCR에는 OCR 결과에 직접 작동하는 가벼운 맞춤법 검사 모듈이 포함되어 있습니다. 이 단계는 “Hello” 대신 “H3llo”와 같은 인식 오류를 잡는 데 도움이 됩니다. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**샘플 출력** (OCR이 “World”를 “W0rld”로 잘못 인식한 경우): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### 맞춤법 검사가 필요한 이유 + +OCR은 특히 잡음이 많은 배경에서는 100 % 완벽하지 않습니다. 간단한 맞춤법 검사를 통해 텍스트를 후속 분석이나 데이터베이스에 전달하기 전에 명백한 오류를 걸러낼 수 있습니다. + +--- + +## 단계 5: 전체 예제 – 완전한 실행 예시 + +아래는 완전하고 바로 실행할 수 있는 프로그램입니다. 새 콘솔 프로젝트에 복사‑붙여넣기하고, 이미지 경로를 조정한 뒤 **F5**를 누르세요. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**데모 실행**은 OCR 텍스트와 맞춤법 제안을 출력합니다. 선명한 인쇄된 영어 텍스트가 포함된 PNG라면 모두 동작합니다. 다른 언어의 경우 `ocrEngine.Language`를 해당 언어로 설정하면 됩니다. + +--- + +## 자주 묻는 질문 및 주의사항 + +| Question | Answer | +|----------|--------| +| *JPEG 또는 BMP 파일을 처리할 수 있나요?* | 물론입니다—`ImageStream.FromFile`은 Aspose가 지원하는 모든 형식(PNG, JPEG, BMP, TIFF)을 받아들입니다. | +| *이미지가 메모리 스트림에 있다면 어떻게 하나요?* | `ImageStream.FromBytes(byteArray)` 또는 `ImageStream.FromStream(stream)`을 사용하세요. | +| *맞춤법 검사기가 언어를 인식하나요?* | 예, OCR 엔진에 설정된 언어를 따릅니다. | +| *왜곡된 이미지의 정확도를 어떻게 높일 수 있나요?* | `Recognize` 호출 전에 `ocrEngine.PreprocessingOptions.Deskew = true;`를 활성화하세요. | +| *Aspose.OCR에 라이선스가 필요합니까?* | 무료 체험판은 최대 100페이지까지 사용할 수 있습니다. 프로덕션에서는 워터마크를 제거하기 위해 라이선스를 구매하세요. | + +--- + +## 다음 단계 – 기본 OCR을 넘어 + +이제 **PNG에서 텍스트를 인식**하고 **이미지에서 텍스트를 추출하는 C#**을 할 수 있게 되었으니, 다음과 같은 확장을 고려해 보세요: + +1. **배치 처리** – PNG 디렉터리를 순회하며 각 OCR 결과를 별도의 `.txt` 파일에 저장합니다. +2. **Azure Cognitive Services와 통합** – Aspose OCR을 클라우드 기반 번역 API와 결합해 다국어 파이프라인을 구축합니다. +3. **구조화된 데이터 추출** – `recognizedText`에 정규식을 적용해 날짜, 청구서 번호, 주소 등을 추출합니다. +4. **성능 튜닝** – 대량 처리 시 단일 `OcrEngine` 인스턴스를 재사용하고 멀티스레딩을 활성화합니다. + +이러한 각 항목은 우리가 다룬 핵심 단계 위에 구축되며, 단순한 이미지를 활용 가능한 데이터로 변환할 수 있게 합니다. + +--- + +## 결론 + +우리는 C#에서 **PNG에서 텍스트를 인식**하고, **C#에서 이미지 파일을 로드**한 뒤, 맞춤법 오류를 잡으며 **이미지에서 텍스트를 추출**하는 완전한 엔드‑투‑엔드 예제를 살펴보았습니다. 코드는 독립적이며, 설명은 “방법”과 “이유”를 모두 다루고 있어 이제 필요할 수 있는 모든 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 53dfac79c..f6b401faf 100644 --- a/ocr/polish/net/ocr-configuration/_index.md +++ b/ocr/polish/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Odblokuj moc rozpoznawania obrazu OCR w .NET dzięki Aspose.OCR. Łatwo wyodręb Uzyskaj potężne możliwości OCR z Aspose.OCR dla .NET. Bezproblemowo wyodrębniaj tekst z obrazów w różnych językach. ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Wykorzystaj potencjał Aspose.OCR dla .NET. Łatwo wykonuj rozpoznawanie obrazu OCR przy użyciu list. Zwiększ produktywność i wyodrębnianie danych w swoich aplikacjach. +### [Jak wyłączyć OCR w C# – Przewodnik offline Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Dowiedz się, jak wyłączyć funkcję OCR w aplikacji C# przy użyciu Aspose OCR w trybie offline. ### Typowe przypadki użycia - **Wyodrębnianie tekstu z obrazów** ze skanowanych faktur w celu automatycznej księgowości. @@ -102,4 +104,4 @@ A: Tak, obiekt `OcrResult` udostępnia wartości pewności, które możesz progr {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/polish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..30e28693d --- /dev/null +++ b/ocr/polish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,169 @@ +--- +category: general +date: 2026-04-11 +description: Dowiedz się, jak wyłączyć OCR w Aspose OCR dla C#, aby działało offline, + wyodrębnić tekst z obrazu bez internetu i prawidłowo załadować obraz do OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: pl +og_description: Jak wyłączyć OCR w Aspose OCR dla C# i uruchomić go offline, wyodrębnić + tekst z obrazu bez potrzeby połączenia z internetem oraz łatwo wczytać obraz do + OCR. +og_title: Jak wyłączyć OCR w C# – Przewodnik po offline Aspose OCR +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Jak wyłączyć OCR w C# – Przewodnik po offline OCR Aspose +url: /pl/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wyłączyć OCR w C# – Przewodnik po offline Aspose OCR + +Zastanawiałeś się kiedyś **jak wyłączyć OCR**, gdy potrzebujesz naprawdę offline rozwiązania? Może tworzysz bezpieczną aplikację desktopową, która nie może polegać na połączeniu sieciowym, albo po prostu chcesz uniknąć nieoczekiwanych pobrań. Tak czy inaczej, dobra wiadomość jest taka, że Aspose OCR pozwala wyłączyć automatyczne pobieranie zasobów, wskazać lokalny folder i trzymać wszystko na miejscu. W tym samouczku zobaczysz także, jak **wyodrębnić tekst z obrazu** oraz poprawnie **załadować obraz do OCR** bez żadnych problemów. + +Przejdziemy przez kompletny, gotowy do uruchomienia przykład, który pokazuje każdy krok — od inicjalizacji silnika po wypisanie rozpoznanego japońskiego tekstu. Bez zewnętrznych dokumentów, bez ukrytej magii; po prostu czysty kod C#, który możesz wkleić do swojego projektu już dziś. Po zakończeniu będziesz wiedział, dlaczego wyłączenie funkcji automatycznego pobierania ma znaczenie, jak ustawić ścieżkę zasobów i na jakie pułapki należy uważać. + +## Wymagania wstępne + +- .NET 6.0 (lub dowolna nowsza wersja .NET) zainstalowana na twoim komputerze. +- Pakiet NuGet Aspose.OCR dla .NET (`Install-Package Aspose.OCR`). +- Folder, który już zawiera potrzebne zasoby językowe (np. model japoński). +- Plik obrazu (`japan_doc.png`), na którym chcesz wykonać OCR. + +Jeśli brakuje ci pakietów językowych, pobierz je raz z portalu Aspose, rozpakuj do folderu, np. `AsposeOCRResources`, i gotowe. Żadne dalsze pobrania nie będą się odbywać po wyłączeniu funkcji automatycznego pobierania. + +![How to disable OCR offline](/images/how-to-disable-ocr.png "how to disable OCR illustration") + +## Krok 1 – Utwórz instancję silnika OCR + +Pierwszą rzeczą, którą robisz, jest utworzenie instancji `OcrEngine`. Traktuj ten obiekt jako mózg, który będzie czytał twój obraz. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Dlaczego to ważne:** Bez silnika nie możesz niczego skonfigurować. Obiekt przechowuje wszystkie ustawienia, w tym kluczową flagę, która określa, czy biblioteka może łączyć się z internetem. + +## Krok 2 – Wyłącz automatyczne pobieranie zasobów + +Domyślnie Aspose OCR będzie próbował pobrać brakujące pliki językowe w locie. Aby wszystko pozostało offline, ustaw przełącznik `AutoDownloadResources` na `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Porada:** Wyłączenie tej opcji nie tylko zapewnia prywatność, ale także przyspiesza pierwsze uruchomienie rozpoznawania, ponieważ silnik nie traci czasu na sprawdzanie aktualizacji. + +## Krok 3 – Wskaż lokalny folder zasobów + +Teraz powiedz silnikowi, gdzie znajdują się wcześniej pobrane pakiety językowe. To jest ścieżka, którą ustawiłeś w wymaganiach wstępnych. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Co może pójść nie tak?** Jeśli ścieżka jest nieprawidłowa lub brak wymaganego pliku językowego, silnik wyrzuci `ResourceNotFoundException`. Sprawdź dokładnie pisownię folderu i czy model japoński (`jpn.traineddata`) jest obecny. + +## Krok 4 – Wybierz lokalny model językowy + +Wybierz język, który faktycznie masz na dysku. W naszym przykładzie używamy japońskiego, ale możesz zamienić `Language.Japanese` na dowolny inny język, który pobrałeś. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Przypadek brzegowy:** Niektóre języki wymagają dodatkowych słowników (np. chiński). Upewnij się, że te dodatkowe pliki również znajdują się w tym samym folderze zasobów. + +## Krok 5 – Załaduj obraz do OCR + +Tutaj **ładujemy obraz do OCR**. Metoda `ImageStream.FromFile` odczytuje plik do strumienia, który Aspose może przetworzyć. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Wskazówka:** Obsługiwane formaty to PNG, JPEG, BMP i TIFF. Jeśli musisz obsłużyć PDF-y, najpierw przekonwertuj każdą stronę na obraz. + +## Krok 6 – Uruchom proces rozpoznawania + +Teraz silnik faktycznie odczytuje piksele i próbuje przekształcić je w tekst. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Dlaczego ten krok może być wolny:** OCR jest intensywny pod względem CPU, szczególnie przy obrazach wysokiej rozdzielczości. Jeśli wydajność jest istotna, rozważ zmniejszenie rozmiaru obrazu przed rozpoznawaniem. + +## Krok 7 – Wyświetl wyodrębniony tekst + +Na koniec **wyodrębniamy tekst z obrazu** i wypisujemy go w konsoli. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Uruchomienie programu powinno wyświetlić japońskie znaki, które znajdowały się w `japan_doc.png`. Jeśli wszystko jest poprawnie skonfigurowane, zobaczysz czysty blok tekstu Unicode w konsoli. + +### Oczekiwany wynik + +``` +これはサンプルの日本語テキストです。 +``` + +(Rzeczywisty wynik będzie zależał od zawartości obrazu.) + +## Częste pułapki i jak ich uniknąć + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|-------|----------------|-----| +| **Brak pliku językowego** | `AutoDownloadResources` jest ustawione na false, więc silnik nie może go pobrać. | Sprawdź, czy `ResourcesPath` wskazuje na folder zawierający `jpn.traineddata`. | +| **Nieprawidłowa ścieżka obrazu** | `ImageStream.FromFile` wyrzuca `FileNotFoundException`. | Użyj ścieżek bezwzględnych lub upewnij się, że katalog roboczy jest ustawiony prawidłowo. | +| **Nieobsługiwany format obrazu** | Aspose odczytuje tylko określone formaty. | Przekonwertuj obraz na PNG lub JPEG przed wywołaniem `FromFile`. | +| **Brak pamięci przy dużych obrazach** | OCR ładuje cały obraz do pamięci. | Zmniejsz rozmiar lub podziel obraz na części, albo zwiększ limit pamięci procesu. | + +## Rozszerzanie przykładu + +- **Przetwarzanie wsadowe:** Przejdź pętlą po katalogu obrazów, wywołaj ten sam kod rozpoznawania i zapisz każdy wynik do osobnego pliku `.txt`. +- **Różne języki:** Zamień `Language.Japanese` na `Language.English` (lub inny) po umieszczeniu odpowiednich plików zasobów. +- **Niestandardowe przetwarzanie wstępne:** Użyj Aspose.Imaging do prostowania lub poprawy kontrastu przed OCR, aby uzyskać lepszą dokładność. + +## Podsumowanie + +Teraz wiesz **jak wyłączyć OCR** w Aspose OCR dla C# i uruchomić go całkowicie offline. Ustawiając `AutoDownloadResources` na `false`, wskazując silnik na lokalny folder zasobów i poprawnie **ładując obraz do OCR**, możesz niezawodnie **wyodrębnić tekst z obrazu** bez konieczności łączenia się z internetem. To podejście jest idealne dla bezpiecznych środowisk, potoków CI lub wszelkich scenariuszy, w których dostęp do sieci jest ograniczony. + +Gotowy na kolejny krok? Spróbuj przetworzyć cały folder zeskanowanych PDF‑ów, eksperymentuj z różnymi pakietami językowymi lub zintegrować wynik OCR z przeszukiwalną bazą danych. Offline konfiguracja, którą dziś stworzyłeś, jest solidną podstawą dla każdego lokalnego przepływu przetwarzania dokumentów. + +Miłego kodowania i nie wahaj się zostawić komentarza, jeśli napotkasz jakiekolwiek problemy! + +{{< /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 9273072bb..bcfc76378 100644 --- a/ocr/polish/net/ocr-optimization/_index.md +++ b/ocr/polish/net/ocr-optimization/_index.md @@ -81,6 +81,9 @@ Popraw dokładność OCR przy użyciu Aspose.OCR for .NET. Poprawiaj pisownię, ### [Zapisz wielostronicowy wynik jako dokument w rozpoznawaniu obrazu OCR](./save-multipage-result-as-document/) Odblokuj potencjał Aspose.OCR for .NET. Bezproblemowo zapisz wielostronicowe wyniki OCR jako dokumenty dzięki temu kompleksowemu przewodnikowi krok po kroku. +### [Jak poprawić dokładność OCR w C# przy użyciu Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Dowiedz się, jak zwiększyć precyzję rozpoznawania tekstu w C# dzięki technikom optymalizacji Aspose OCR. + ## Często zadawane pytania **Q: Czy można wyodrębnić teksty z plików graficznych wielu języków?** diff --git a/ocr/polish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/polish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..8e1d3e353 --- /dev/null +++ b/ocr/polish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Dowiedz się, jak poprawić OCR w C# poprzez rozpoznawanie tekstu z plików + JPG, prostowanie obrazów i usuwanie szumów przy użyciu Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: pl +og_description: Odkryj, jak ulepszyć OCR, rozpoznając tekst z plików JPG, prostując + obrazy i usuwając szumy — kompletny przewodnik C#. +og_title: Jak poprawić dokładność OCR w C# przy użyciu Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Jak poprawić dokładność OCR w C# przy użyciu Aspose OCR +url: /pl/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak poprawić dokładność OCR w C# przy użyciu Aspose OCR + +Zastanawiałeś się kiedyś **jak poprawić OCR**, gdy Twoje skany wyglądają bardziej jak abstrakcyjna sztuka niż czytelny tekst? Nie jesteś jedyny. W wielu rzeczywistych projektach — pomyśl o fakturach, paragonach czy odręcznych notatkach — obrazy źródłowe są często przechylone, ziarniste lub po prostu hałaśliwe. Dobra wiadomość? Aspose OCR oferuje szereg ustawień wstępnego przetwarzania, które mogą zamienić ten bałagan w czyste, maszynowo‑czytelne znaki. W tym samouczku przeprowadzimy kompletny, gotowy do uruchomienia przykład, który pokazuje **jak poprawić OCR** poprzez **rozpoznawanie tekstu z JPG**, prostowanie obrazu i usuwanie niepożądanego szumu. + +> *Pro tip:* Jeśli pominiesz wstępne przetwarzanie, prawdopodobnie otrzymasz zniekształcony wynik, który wygląda jak kryptograficzna krzyżówka. Uniknijmy tego. + +![Jak poprawić OCR przy użyciu wstępnego przetwarzania Aspose OCR](https://example.com/ocr-preprocess.png "jak poprawić OCR przy użyciu Aspose OCR") + +## Co się nauczysz + +W ciągu kilku minut zobaczysz: + +1. Jak skonfigurować silnik Aspose OCR dla optymalnej dokładności. +2. Dokładny kod potrzebny do **rozpoznawania tekstu z JPG** plików. +3. Dlaczego włączenie *AutoDeskew* i *RemoveNoise* ma znaczenie oraz jak je dostroić. +4. Jak **wyodrębnić tekst z obrazu** bez pisania własnego filtra. +5. Typowe pułapki (brak pliku, nieobsługiwany format) i szybkie rozwiązania. + +Po zakończeniu będziesz mieć jedną aplikację konsolową C#, która może przyjąć dowolny JPG, oczyścić go i wyświetlić wyodrębniony ciąg znaków — gotowy do dalszego przetwarzania lub przechowywania. + +## Wymagania wstępne + +- .NET 6.0 SDK lub nowszy (przykład używa instrukcji poziomu najwyższego dla zwięzłości). +- Pakiet NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Przykładowy obraz JPG (nazwany `input.jpg`) umieszczony w tym samym folderze co plik wykonywalny. +- Podstawowa znajomość C# — nie są wymagane zaawansowane koncepcje. + +Jeśli masz już projekt, po prostu wklej kod; w przeciwnym razie utwórz nową aplikację konsolową: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Teraz zanurzmy się w kod. + +## Jak poprawić OCR: Przegląd ustawień wstępnego przetwarzania + +Sednem **jak poprawić OCR** jest obiekt `PreprocessSettings`. Traktuj go jak mini‑edytor obrazu, który działa *przed* uruchomieniem właściwego silnika rozpoznawania znaków. Poniżej szybki przegląd najważniejszych flag: + +| Setting | Co robi | Typowy przypadek użycia | +|------------------------|----------------------------------------------------------|--------------------------| +| `AutoDeskew` | Stosuje algorytm głębokiego uczenia do prostowania. | Zeskanowane strony lekko przechylone. | +| `AdaptiveThreshold` | Zwiększa kontrast w słabo oświetlonych lub wyblakłych obrazach. | Stare paragony z wyblakłym tuszem. | +| `RemoveNoise` | Uruchamia filtr rozmycia Gaussa, aby usunąć plamki. | Zdjęcia zrobione lampą błyskową smartfona. | +| `NoiseRemovalStrength`| Kontroluje agresywność (1 = niska, 3 = wysoka). | Dostosuj w zależności od ziarnistości źródła. | + +Włączenie tych opcji jest w zasadzie „sekretnym składnikiem” **jak poprawić OCR** przy nieidealnych danych wejściowych. + +## Rozpoznawanie tekstu z JPG przy użyciu Aspose OCR + +Poniżej znajduje się pełny, gotowy do uruchomienia program. Każda linia jest opatrzona komentarzem, abyś mógł zobaczyć *dlaczego* dany fragment istnieje, a nie tylko *co* robi. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Oczekiwany wynik + +Jeśli `input.jpg` zawiera frazę „Invoice #12345 – Total: $256.78”, konsola wyświetli: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Zauważ, że wynik jest czysty, z zachowanym myślnikiem i znakiem dolara — dokładnie to, czego można oczekiwać przy **wyodrębnianiu tekstu z obrazu**. + +## Jak prostować obraz przy użyciu ustawień wstępnego przetwarzania + +Dlaczego prostowanie ma znaczenie? Nawet przechylenie o 2 stopnie może zmylić etap segmentacji znaków, prowadząc do błędnej identyfikacji liter. Flaga `AutoDeskew` uruchamia pod maską sieć neuronową konwolucyjną, która wykrywa dominujący kąt i obraca obraz z powrotem do linii bazowej. + +Jeśli potrzebujesz większej kontroli, możesz ręcznie ustawić kąt: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Kiedy używać ręcznego prostowania:** Jeśli wiesz, że kamera konsekwentnie przechyla obrazy o stałą wartość (np. zamontowany skaner), zakodowanie kąta na stałe oszczędza odrobinę czasu przetwarzania. + +## Jak usuwać szum dla czystszego wyodrębniania + +Szum pojawia się jako losowe plamki lub ziarnistość, szczególnie na zdjęciach przy słabym oświetleniu. Flaga `RemoveNoise` stosuje filtr dwustronny, który wygładza tło, zachowując krawędzie (czyli same znaki). Właściwość `NoiseRemovalStrength` pozwala dostosować agresywność: + +| Siła | Efekt | +|------|-------| +| 1 | Delikatne wygładzanie — dobre dla lekko ziarnistych zdjęć. | +| 2 | Zrównoważone — działa dla większości zdjęć smartfonem. | +| 3 | Intensywne wygładzanie — używaj, gdy obraz jest bardzo zaszumiony, ale uważaj na rozmycie cienkich kresek. | + +Jeśli napotkasz sytuację, w której małe czcionki stają się nieczytelne po intensywnym wygładzaniu, po prostu zmniejsz siłę lub wyłącz filtr całkowicie. + +## Wyodrębnianie tekstu z obrazu: poza JPG + +Chociaż nasza demonstracja koncentruje się na JPG, Aspose OCR obsługuje PNG, BMP, TIFF, a nawet strony PDF. Aby **wyodrębnić tekst z obrazu** w formatach innych niż JPG, po prostu zmień rozszerzenie pliku w `ImageStream.FromFile`. Dla wielostronicowych plików TIFF możesz przeiterować każdą stronę: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Ten fragment pokazuje, jak można skalować ten sam **jak poprawić OCR** przepływ pracy, aby przetwarzać wsadowo całą stertę zeskanowanych dokumentów. + +## Typowe pułapki i jak je naprawić + +| Objaw | Prawdopodobna przyczyna | Szybka naprawa | +|-------|--------------------------|----------------| +| Pusty wynik | Obraz jest całkowicie biały po wstępnym przetwarzaniu (zbyt agresywny próg) | Zmniejsz `NoiseRemovalStrength` lub ustaw `AdaptiveThreshold = false`. | +| Zniekształcone znaki | Nieprawidłowy model językowy (domyślnie angielski) | Ustaw `ocrEngine.Settings.Language = Language.English;` lub załaduj własny pakiet językowy. | +| Awaria przy dużych plikach | Brak pamięci z powodu obrazu wysokiej rozdzielczości | Zmniejsz rozmiar za pomocą `ocrEngine.Settings.ImageResizeFactor = 0.5;` przed rozpoznaniem. | +| Brak wyniku dla obróconych skanów | `AutoDeskew` przypadkowo wyłączony | Włącz `AutoDeskew = true` lub podaj prawidłowy `DeskewAngle`. | + +Pamiętanie o nich zaoszczędzi Ci godziny debugowania, gdy będziesz próbował **jak poprawić OCR** w produkcyjnych pipeline'ach. + +## Bonus: Dostosowywanie pod kątem szybkości vs. dokładności + +Jeśli przetwarzasz tysiące paragonów dziennie, możesz priorytetyzować szybkość. Wyłącz `AdaptiveThreshold` i ustaw `NoiseRemovalStrength = 1`. Natomiast w przypadku dokumentów prawnych, gdzie pojedynczy pominięty znak może być kosztowny, pozostaw wszystkie flagi włączone i rozważ zwiększenie `NoiseRemovalStrength` do 3. + +## Podsumowanie + +Omówiliśmy całą ścieżkę **jak poprawić OCR** w C# przy użyciu Aspose OCR: od tworzenia silnika, konfiguracji wstępnego przetwarzania (kluczowego elementu *jak prostować obraz* i *jak usuwać szum*), ładowania JPG, rozpoznawania tekstu i obsługi przypadków brzegowych. Kod jest samodzielny, działa od razu i demonstruje dokładne kroki potrzebne do **rozpoznawania tekstu z jpg** oraz **wyodrębniania tekstu z obrazu**. + +### Co dalej? + +- Eksperymentuj z innymi formatami obrazów (PNG, TIFF), aby zobaczyć, jak zachowują się te same ustawienia. +- Zintegruj wynik OCR z bazą danych lub + +{{< /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 40c85d634..d30d513f7 100644 --- a/ocr/polish/net/text-recognition/_index.md +++ b/ocr/polish/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Wyodrębnij tekst z obrazu w C# – Kompletny przewodnik OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Pełny przewodnik, jak w C# wyodrębnić tekst z obrazu przy użyciu Aspose.OCR, krok po kroku. +### [Wyodrębnij tekst z pliku TIFF przy użyciu Batch OCR w C# – Kompletny przewodnik](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Dowiedz się, jak w C# przetwarzać pliki TIFF partiami przy użyciu Aspose.OCR, aby szybko wyodrębnić tekst. +### [Utwórz przeszukiwany PDF w C# – Kompletny przewodnik](./create-searchable-pdf-in-c-complete-guide/) +Pełny przewodnik, jak w C# utworzyć przeszukiwany plik PDF przy użyciu Aspose.OCR, krok po kroku. +### [Rozpoznaj tekst z pliku PNG w C# – Pełny przewodnik OCR i sprawdzania pisowni](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Kompletny przewodnik, jak w C# rozpoznać tekst z plików PNG, wykorzystując OCR i sprawdzanie pisowni, krok po kroku. +### [Konwertuj obraz do JSON – Samouczek OCR w C# dla paragonów](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Ucz się, jak w C# konwertować obrazy paragonów do formatu JSON przy użyciu 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/polish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/polish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..f559771e1 --- /dev/null +++ b/ocr/polish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Konwertuj obraz na JSON przy użyciu Aspose OCR Cloud w C#. Dowiedz się, + jak rozpoznawać tekst, wyodrębniać tekst z obrazu i przetwarzać paragony za pomocą + OCR w kilka minut. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: pl +og_description: Konwertuj obraz na JSON przy użyciu Aspose OCR Cloud w C#. Ten przewodnik + pokazuje, jak rozpoznawać tekst, wyodrębniać tekst z obrazu i przetwarzać paragon + za pomocą OCR. +og_title: Konwertuj obraz na JSON – Samouczek OCR w C# dla paragonów +tags: +- OCR +- C# +- Aspose +- JSON +title: Konwertuj obraz na JSON – samouczek OCR w C# dla paragonów +url: /pl/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertowanie obrazu do JSON – Samouczek OCR w C# dla paragonów + +Kiedykolwiek potrzebowałeś **convert image to JSON**, ale nie wiedziałeś, od czego zacząć? W tym przewodniku przeprowadzimy Cię przez kompletny, end‑to‑end samouczek OCR w C#, który przyjmuje zdjęcie paragonu, rozpoznaje tekst i generuje schludny ładunek JSON. + +Jeśli kiedykolwiek zastanawiałeś się *how to recognize text* w zeskanowanym dokumencie lub szukasz szybkiego sposobu na **extract text from image** plików, jesteś we właściwym miejscu. Po przeczytaniu tego artykułu będziesz w stanie **process receipt with OCR** i wprowadzić wynik bezpośrednio do swoich downstream API. + +## Co będziesz potrzebować + +- .NET 6 SDK lub nowszy (kod działa również z .NET Core) +- Klucz API Aspose Cloud – możesz uzyskać darmową wersję próbną w portalu Aspose +- Przykładowy obraz paragonu (`receipt.jpg`) zapisany lokalnie +- Twoje ulubione IDE (Visual Studio, VS Code, Rider – dowolne) + +Nie są wymagane dodatkowe pakiety NuGet poza oficjalnym klientem `Aspose.OCR.Cloud`. Jeśli masz już zainstalowany SDK, możesz zaczynać. + +## Krok 1 – Convert Image to JSON: Konfiguracja klienta OCR + +Na początek potrzebujemy instancji `CloudOcrClient`. Ten obiekt obsługuje całą komunikację z usługą OCR Aspose i zwróci wynik w formacie JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Inicjalizacja klienta jest mostem między Twoim kodem C# a silnikiem OCR w chmurze. Metoda `RecognizeAsync` wykonuje ciężką pracę – przesyła obraz, uruchamia silnik OCR i zwraca ciąg JSON zawierający rozpoznany tekst, wyniki pewności oraz współrzędne prostokąta ograniczającego. + +> **Pro tip:** Przechowuj klucz API w zmiennej środowiskowej lub menedżerze sekretów zamiast wpisywać go na stałe w kodzie. Dzięki temu unikniesz przypadkowych wycieków. + +## Krok 2 – How to Recognize Text from the Receipt + +Teraz, gdy klient jest gotowy, przyjrzyjmy się *how* rozpoznawania tekstu. Aspose OCR obsługuje wiele języków, ale dla większości paragonów język angielski działa dobrze. Jeśli potrzebujesz innego języka, po prostu zamień `Language.English` na odpowiednią wartość wyliczeniową. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** Usługa uruchamia model deep‑learning, który wykrywa znaki, grupuje je w słowa, a następnie układa w linie. Zwrócony JSON wygląda mniej więcej tak: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Możesz sparsować ten JSON przy użyciu `System.Text.Json` lub `Newtonsoft.Json`, aby wyodrębnić interesujące Cię pola. + +## Krok 3 – Extract Text from Image and Build JSON Manually (Optional) + +Czasami nie chcesz surowego JSON‑a zwracanego przez Aspose; może potrzebujesz własnej struktury dla swojego downstream service. Poniżej znajduje się szybki przykład, który deserializuje odpowiedź i ponownie pakuje ją do czystszego obiektu. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Wiele API oczekuje określonego schematu (np. `{ \"total\": \"12.34\", \"date\": \"2026-04-10\" }`). Wyodrębniając tylko potrzebne pola, utrzymujesz ładunek lekki i unikasz wycieku niepotrzebnych metadanych OCR. + +## Krok 4 – Test the C# OCR Tutorial with a Sample Receipt + +Uruchom program w terminalu: + +```bash +dotnet run +``` + +Powinieneś zobaczyć dwa bloki wyjścia: + +1. Surowy JSON zwrócony przez Aspose (wynik **convert image to json** prosto z chmury). +2. Niestandardowy JSON, który stworzyłeś w poprzednim kroku. + +Typowy wynik wygląda tak: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Jeśli otrzymasz błąd taki jak *401 Unauthorized*, sprawdź ponownie, czy Twój klucz API jest ważny i czy ścieżka do obrazu jest poprawna. + +## Przypadki brzegowe i typowe pułapki + +| Sytuacja | Na co zwrócić uwagę | Sugerowane rozwiązanie | +|-----------|----------------------|------------------------| +| **Paragon o niskiej rozdzielczości** | OCR confidence drops below 0.8 | Pre‑process the image (increase DPI, sharpen) before sending | +| **Znaki nieangielskie** | Wrong language enum | Use `Language.AutoDetect` or specify the correct language | +| **Duża partia paragonów** | Rate‑limit errors | Implement exponential back‑off or request a higher quota from Aspose | +| **Brakujące pola** | Custom parser returns `null` | Add fallback logic or regex patterns for more robust extraction | + +## Przegląd wizualny + +![Diagram przedstawiający przepływ od pliku obrazu → klient OCR → odpowiedź JSON → niestandardowe parsowanie → końcowy wynik JSON](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt text:* *diagram przepływu convert image to json ilustrujący kroki omówione w tym samouczku.* + +## Podsumowanie + +Pokazaliśmy Ci, jak **convert image to JSON** przy użyciu Aspose OCR Cloud, wyjaśniliśmy *how to recognize text* w paragonie, zaprezentowaliśmy sposoby **extract text from image**, i spakowaliśmy wszystko w przejrzysty **C# OCR tutorial**, który możesz wkleić do dowolnego projektu .NET. + +Kluczowe wnioski są: + +- Skonfiguruj `CloudOcrClient` z kluczem API. +- Wywołaj `RecognizeAsync`, aby uzyskać ładunek JSON prosto z usługi. +- Opcjonalnie przekształć ten ładunek, aby pasował do Twojego własnego kontraktu danych. + +## Co dalej? + +- **Batch processing:** Przejdź przez folder z paragonami i zagreguj wyniki w pojedynczą tablicę JSON. +- **Advanced parsing:** Użyj wyrażeń regularnych lub małego modelu NLP, aby wyodrębnić pozycje, podatki i rabaty. +- **Integration:** Prześlij końcowy JSON do bazy danych, kolejki wiadomości lub Azure Function w celu dalszej automatyzacji. + +Śmiało eksperymentuj z różnymi formatami obrazów (PNG, TIFF) lub wypróbuj przepływ **process receipt with OCR** na zdjęciach zrobionych telefonem. Nie ma ograniczeń, gdy masz niezawodny sposób na **convert image to JSON**. + +Masz pytania lub napotkałeś problem? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/polish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..ea43fe5aa --- /dev/null +++ b/ocr/polish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Szybko utwórz przeszukiwalny PDF z obrazu. Dowiedz się, jak generować + PDF z obrazu, osadzać obraz w PDF, konwertować TIF na PDF oraz używać OCR do PDF + w C# z Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: pl +og_description: Twórz przeszukiwalne PDF natychmiast. Ten poradnik pokazuje, jak generować + PDF z obrazu, osadzać obrazy w PDF, konwertować TIF na PDF oraz używać OCR do PDF + w C#. +og_title: Tworzenie przeszukiwalnego PDF w C# – Przewodnik krok po kroku +tags: +- C# +- OCR +- PDF generation +title: Tworzenie przeszukiwalnego PDF w C# – Kompletny przewodnik +url: /pl/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz przeszukiwalny PDF w C# – Kompletny przewodnik + +Czy kiedykolwiek potrzebowałeś **create searchable PDF** z zeskanowanego dokumentu, ale nie wiedziałeś od czego zacząć? Nie jesteś sam; wielu programistów napotyka ten sam problem przy pracy z plikami TIFF i OCR. W tym tutorialu przeprowadzimy praktyczne rozwiązanie, które pozwala **generate PDF from image**, osadzić oryginalny obraz dla idealnej przeszukiwalności i zakończyć czystym **OCR to PDF C#** workflow. + +Omówimy wszystko, od instalacji biblioteki Aspose.OCR po obsługę przypadków brzegowych, takich jak wielostronicowe pliki TIFF. Po zakończeniu będziesz mieć gotowy do uruchomienia program, który zamienia `input.tif` w w pełni przeszukiwalny `output.pdf`. Bez zewnętrznych usług, bez ukrytej magii — po prostu czysty kod C#, który możesz wkleić do dowolnego projektu .NET. + +## Czego będziesz potrzebować + +- .NET 6.0 lub nowszy (kod działa również na .NET Framework 4.7+) +- Visual Studio 2022 (lub dowolny edytor, którego używasz) +- Aktywna licencja Aspose.OCR lub klucz wersji próbnej (pakiet NuGet działa bez klucza w trybie ewaluacji) +- Przykładowy obraz TIFF (`input.tif`) umieszczony w folderze, do którego możesz odwołać się + +> **Pro tip:** Trzymaj pliki obrazów poniżej 10 MB, aby uniknąć skoków pamięci przy przetwarzaniu dużych partii. + +## Krok 1: Zainstaluj Aspose.OCR i skonfiguruj projekt + +Najpierw dodaj pakiet NuGet Aspose.OCR do swojego projektu. Otwórz konsolę Package Manager i uruchom: + +```powershell +Install-Package Aspose.OCR +``` + +Jeśli wolisz interfejs graficzny, kliknij prawym przyciskiem **Dependencies → Manage NuGet Packages**, wyszukaj *Aspose.OCR* i kliknij **Install**. + +Dlaczego ten krok ma znaczenie: Aspose.OCR zawiera wydajny silnik OCR oraz wbudowany eksporter PDF, więc nie potrzebujesz oddzielnych bibliotek do obsługi obrazów czy tworzenia PDF. + +### Pełny szkielet projektu + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Uwaga:** Zastąp `YOUR_DIRECTORY` rzeczywistą ścieżką folderu na swoim komputerze. + +## Krok 2: Załaduj obraz – Fundament *Generate PDF from Image* + +Załadowanie pliku źródłowego to mały, ale krytyczny krok. Aspose.OCR oczekuje `ImageStream`, który abstrahuje operacje I/O i obsługuje wiele formatów (TIFF, PNG, JPEG, itp.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Dlaczego nie przekazać po prostu ścieżki?** +Wrapper `ImageStream` obsługuje wewnętrzne buforowanie i zapewnia, że silnik OCR działa z dużymi wielostronicowymi plikami TIFF bez ładowania całego pliku do pamięci jednocześnie. + +## Krok 3: Skonfiguruj eksport PDF – *Embed Image PDF* dla idealnej przeszukiwalności + +Podczas eksportu wyników OCR do PDF masz dwie opcje: osadzić tylko wyodrębniony tekst lub osadzić oryginalny obraz wraz z ukrytą warstwą tekstową. Osadzenie obrazu zachowuje wizualną wierność skanu i pozwala użytkownikom później zaznaczyć lub skopiować tekst. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** Jeśli ustawisz `EmbedOriginalImage` na `false`, wynikowy PDF będzie mniejszy, ale straci oryginalny obraz — przydatne w przypadku czystych archiwów tekstowych. + +## Krok 4: Eksport – *OCR to PDF C#* w jednym wywołaniu + +Aspose.OCR upraszcza ciężką pracę do jednego wiersza kodu. Metoda `ExportToPdf` uruchamia OCR, buduje ukrytą warstwę tekstową i zapisuje finalny plik. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Oczekiwany wynik + +Uruchomienie programu wypisuje: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Otwórz `output.pdf` w dowolnym przeglądarce (Adobe Reader, Edge, itp.) i spróbuj zaznaczyć tekst — zobaczysz oryginalny obraz pod spodem, co potwierdza, że operacja **create searchable pdf** zakończyła się sukcesem. + +## Krok 5: Zweryfikuj PDF – szybkie kontrole, które możesz zautomatyzować + +Podczas gdy ręczna inspekcja jest w porządku dla pojedynczego pliku, możesz chcieć programowo sprawdzić, czy PDF zawiera warstwę tekstową. Aspose.PDF (biblioteka siostrzana) może odczytać dokument i wyodrębnić tekst: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Dodaj wywołanie `VerifyPdfContainsText(pdfPath);` po eksporcie, jeśli chcesz automatyczną kontrolę poprawności. + +## Częste pułapki i jak ich uniknąć + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Out‑of‑memory przy ogromnych TIFFach** | Ładowanie całego pliku jednocześnie przekracza dostępny RAM. | Użyj `ImageStream.FromFile` (jak pokazano) i przetwarzaj strony pojedynczo, jeśli masz pliki wielostronicowe. | +| **Brak licencji powoduje znaki wodne** | Tryb ewaluacji dodaje widoczny znak wodny na każdej stronie. | Zastosuj licencję Aspose.OCR wcześnie: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Nieprawidłowe separatory ścieżek w Linuksie** | Twardo zakodowany `\` przerywa działanie w systemach nie‑Windows. | Użyj `Path.Combine` lub surowych literałów ciągów z `/`. | +| **Tekst nie jest przeszukiwalny** | `EmbedOriginalImage` ustawione na `false` lub OCR wyłączone. | Upewnij się, że `PdfExportOptions.EmbedOriginalImage = true` oraz że silnik OCR jest prawidłowo zainicjowany. | + +## Bonus: Konwertuj TIF do PDF bez OCR (gdy tekst nie jest potrzebny) + +Jeśli potrzebujesz jedynie **convert TIF to PDF** bez ukrytej warstwy tekstowej, możesz całkowicie pominąć krok OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## Pełny działający przykład (gotowy do kopiowania i wklejenia) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Uruchom program, otwórz `output.pdf`, a zobaczysz wierną replikę oryginalnego TIFF z ukrytą, zaznaczalną warstwą tekstową — dokładnie to, co oznacza **create searchable pdf** w praktyce. + +## Zakończenie + +Właśnie przeszliśmy kompletny przepływ pracy **create searchable pdf** w C#. Zaczynając od surowego TIFF, **generate pdf from image**, wybraliśmy **embed image pdf** dla wizualnej wierności i zademonstrowaliśmy pełny pipeline **ocr to pdf c#** przy użyciu Aspose.OCR. + +Śmiało modyfikuj `PdfExportOptions` (kompresja, wersja PDF itp.) lub łącz wiele obrazów w przetwarzaniu wsadowym. Następnie możesz zbadać dodawanie ochrony hasłem, podpisów cyfrowych lub nawet scalanie kilku przeszukiwalnych PDF‑ów w jeden dokument główny. + +Masz pytania dotyczące skalowania tego do tysięcy plików lub integracji z API ASP.NET? Dodaj komentarz poniżej lub napisz do mnie na GitHubie — szczęśliwego kodowania! + +![Przykład tworzenia przeszukiwalnego PDF](/images/searchable-pdf.png "Przykład tworzenia przeszukiwalnego PDF") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/polish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..01e2f101a --- /dev/null +++ b/ocr/polish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Wyodrębnij tekst z obrazu przy użyciu Aspose OCR w C#. Dowiedz się, jak + wczytać obraz do OCR i rozpoznać tekst z plików TIFF z obsługą GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: pl +og_description: Wyodrębnij tekst z obrazu za pomocą Aspose OCR w C#. Ten samouczek + pokazuje, jak wczytać obraz do OCR i rozpoznać tekst z pliku TIFF przy użyciu przyspieszenia + GPU. +og_title: Wyodrębnij tekst z obrazu w C# – Kompletny przewodnik po OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Wyodrębnianie tekstu z obrazu w C# – Kompletny przewodnik po OCR +url: /pl/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wyodrębnianie tekstu z obrazu w C# – Kompletny przewodnik OCR + +Kiedykolwiek potrzebowałeś **wyodrębnić tekst z obrazu**, ale nie byłeś pewien, która biblioteka poradzi sobie z gigantycznym plikiem TIFF bez zacinania? Nie jesteś sam. W wielu rzeczywistych projektach — pomyśl o cyfryzacji faktur czy archiwizacji zeskanowanych książek — możliwość załadowania obrazu do OCR i rozpoznania tekstu z TIFF szybko staje się cechą decydującą o sukcesie. + +W tym przewodniku przeprowadzimy Cię krok po kroku przez praktyczne rozwiązanie, które robi dokładnie to, używając Aspose OCR dla .NET. Po zakończeniu będziesz mieć działającą aplikację konsolową w C#, która ładuje skan wysokiej rozdzielczości, uruchamia przetwarzanie przyspieszone GPU (z eleganckim przejściem na CPU) i wypisuje wynik w postaci czystego tekstu. Bez brakujących elementów, bez „zobacz dokumentację” ślepych zaułków. + +## Co będzie potrzebne + +- **.NET 6 lub nowszy** (kod kompiluje się z dowolnym aktualnym SDK) +- **Aspose.OCR for .NET** pakiet NuGet + `dotnet add package Aspose.OCR` +- **Duży plik TIFF** lub inny format obrazu, który chcesz poddać OCR + (przykład używa `large_scan.tif`) +- (Opcjonalnie) GPU obsługujące CUDA 11+ – jeśli go nie masz, biblioteka automatycznie przełączy się na tryb CPU. + +To wszystko. Zanurzmy się. + +![Wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR w C#](image-placeholder.png "Wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR w C#") + +## Krok 1: Wyodrębnianie tekstu z obrazu – Inicjalizacja silnika OCR + +Zanim jakikolwiek obraz zostanie przetworzony, potrzebujesz instancji `OcrEngine`. Silnik przechowuje wszystkie ustawienia kontrolujące przebieg rozpoznawania. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Dlaczego to jest ważne:** +`ProcessingMode.Gpu` może skrócić czas rozpoznawania o kilka sekund na nowoczesnej karcie, ale ustawienie `ProcessingMode.Auto` (lub pozostawienie domyślnego) jest bezpieczniejsze w środowiskach, w których GPU może być nieobecne. Ograniczenie `GpuMemoryLimit` to praktyczna wskazówka — bez niego ogromny obraz mógłby zająć całą pamięć VRAM i spowodować awarię innych aplikacji. + +## Krok 2: Ładowanie obrazu do OCR – Wczytanie TIFF do pamięci + +Teraz, gdy silnik jest gotowy, musimy podać mu obraz, który chcemy przeanalizować. Aspose udostępnia `ImageStream.FromFile`, które abstrahuje obsługę formatów. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Co się dzieje „ pod maską ”?** +`ImageStream.FromFile` odczytuje plik do strumienia i automatycznie wykrywa format obrazu (TIFF, PNG, JPEG itp.). Jeśli pracujesz z wielostronicowymi TIFF‑ami, Aspose potraktuje każdą stronę jako osobną klatkę; możesz później iterować po nich w razie potrzeby. + +## Krok 3: Rozpoznawanie tekstu z TIFF – Uruchomienie silnika OCR + +Po załadowaniu obrazu zaczyna się ciężka praca. Metoda `Recognize` zwraca obiekt `OcrResult`, który zawiera wyodrębniony tekst oraz kilka przydatnych pól metadanych. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Dlaczego wywoływać `Recognize` tylko raz?** +Ponieważ silnik buforuje wewnętrzne struktury po pierwszym uruchomieniu, pojedyncze wywołanie wystarcza w większości scenariuszy. Jeśli musisz przetworzyć wiele stron, użyj tej samej instancji `OcrEngine` — unikniesz w ten sposób kosztów ponownego inicjowania kontekstów GPU. + +## Krok 4: Wyświetlenie wyniku – Pokazanie wyodrębnionego tekstu + +Na koniec wypisujemy rozpoznany ciąg znaków w konsoli. W prawdziwej aplikacji prawdopodobnie zapiszesz go do bazy danych lub pliku. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Oczekiwany wynik:** +Jeśli `large_scan.tif` zawiera wydrukowaną fakturę, zobaczysz coś w stylu: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Dokładny układ zależy od obrazu źródłowego, ale kluczowe jest to, że masz już **wyniki wyodrębniania tekstu z obrazu** gotowe do dalszego przetwarzania. + +## Krok 5: Rozwiązywanie problemów i przypadki brzegowe + +### GPU nie wykryto? + +Jeśli uruchomisz przykład na maszynie bez kompatybilnego GPU, silnik cicho przełączy się na CPU, gdy używasz `ProcessingMode.Auto`. Aby wymusić tryb CPU explicite, zamień wcześniejszą linię na: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFFy zużywające dużo pamięci + +Bardzo duże skany (np. 10 000 × 10 000 px) mogą nadal przekraczać limit 1 GB GPU, który ustawiliśmy. W takim wypadku podnieś `GpuMemoryLimit` (jeśli masz wolną pamięć VRAM) lub zmniejsz rozmiar obrazu przed przekazaniem go do silnika: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Dokumenty wielostronicowe + +Jeśli Twój TIFF zawiera wiele stron, przeiteruj po nich: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Obsługa języków i czcionek + +Aspose OCR automatycznie wykrywa skrypty oparte na alfabecie łacińskim, ale dla cyrylicy, arabskiego lub własnych czcionek może być konieczne dostarczenie pakietu językowego: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Profesjonalne wskazówki i najlepsze praktyki + +- **Ponowne użycie silnika**: Tworzenie nowego `OcrEngine` dla każdego obrazu wprowadza zauważalne opóźnienie. +- **Przetwarzanie wsadowe**: Przy obsłudze dziesiątek TIFF‑ów, kolejkowanie ich i przetwarzanie w równoległych wątkach — pamiętaj jednak o rywalizacji o pamięć GPU. +- **Walidacja wyniku**: OCR nie jest doskonały; uruchom prostą kontrolę pisowni lub walidację regex na `ocrResult.Text`, aby wychwycić oczywiste błędy rozpoznania. +- **Logowanie wydajności**: Zmierz czas `Stopwatch` przed i po wywołaniu `Recognize`, aby zdecydować, czy przyspieszenie GPU jest warte dodatkowej konfiguracji w Twoim środowisku. + +## Podsumowanie + +Masz teraz kompletny, end‑to‑end przykład, który **wyodrębnia tekst z plików obrazu** przy użyciu Aspose OCR w C#. Ładując obraz do OCR, wywołując silnik w celu rozpoznania tekstu z TIFF oraz obsługując scenariusze GPU vs. CPU, ten tutorial dostarcza gotowej do produkcji podstawy, którą możesz dostosować do faktur, paszportów czy dowolnych zeskanowanych dokumentów. + +Co dalej? Spróbuj zamienić TIFF na wielostronicowy PDF, poeksperymentuj z własnymi pakietami językowymi lub podłącz wynik do potoku przetwarzania języka naturalnego w celu automatycznego wydobywania danych. Nie ma granic — miłego 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/polish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..108e1c340 --- /dev/null +++ b/ocr/polish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-04-11 +description: Wyodrębnij tekst z plików TIFF przy użyciu przetwarzania wsadowego Aspose + OCR w C#. Dowiedz się, jak efektywnie przetwarzać OCR w trybie wsadowym i uzyskać + informacje zwrotne o postępie w czasie rzeczywistym. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: pl +og_description: Wyodrębnij tekst z plików TIFF przy użyciu przetwarzania wsadowego + OCR Aspose w języku C#. Ten samouczek pokazuje krok po kroku, jak przetwarzać OCR + wsadowe i odczytywać postęp. +og_title: Wyodrębnianie tekstu z plików TIFF przy użyciu wsadowego OCR w C# – Kompletny + przewodnik +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Wyodrębnianie tekstu z TIFF przy użyciu wsadowego OCR w C# – Kompletny przewodnik +url: /pl/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wyodrębnianie tekstu z plików TIFF – Kompletny przewodnik po przetwarzaniu wsadowym OCR + +Kiedykolwiek potrzebowałeś **wyodrębnić tekst z plików TIFF**, ale utknąłeś przy części przetwarzania wsadowego? Nie jesteś jedyny. W wielu projektach automatyzacji dokumentów obsługa dziesiątek wysokiej rozdzielczości obrazów TIF może szybko stać się wąskim gardłem — szczególnie gdy potrzebujesz bieżącej informacji zwrotnej o postępie. + +Dobre wieści? Dzięki Aspose OCR możesz **przetwarzać wsadowe OCR** w kilku linijkach, otrzymywać zdarzenia postępu w czasie rzeczywistym i wyświetlać rozpoznany tekst dla każdego obrazu. W tym samouczku przeprowadzimy Cię przez gotową do uruchomienia aplikację konsolową C#, która robi dokładnie to. + +Omówimy wszystko, co musisz wiedzieć: wymagane pakiety, dlaczego każda linijka ma znaczenie, przypadki brzegowe takie jak brakujące pliki oraz jak zweryfikować wyniki. Po zakończeniu będziesz mógł wkleić przykład do własnego rozwiązania i od razu zacząć wyodrębniać tekst z obrazów TIFF. + +## Czego będziesz potrzebować + +- **.NET 6 lub nowszy** (kod kompiluje się również z .NET Core) +- **Aspose.OCR for .NET** – pakiet NuGet `Install-Package Aspose.OCR` +- Folder zawierający kilka obrazów **TIFF**, które chcesz odczytać (demo używa `img1.tif`, `img2.tif`, `img3.tif`) +- Dowolne IDE – Visual Studio, Rider lub VS Code będą wystarczające + +Dodatkowa konfiguracja nie jest wymagana; biblioteka dostarcza własny silnik OCR, więc nie musisz instalować zewnętrznych binarek natywnych. + +--- + +## Krok 1 – Utworzenie instancji silnika OCR + +Pierwszą rzeczą, którą robisz, jest uruchomienie `OcrEngine`. To jak mózg, który analizuje każdy piksel i zamienia go na znaki. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Dlaczego to ważne:** +> Silnik przechowuje wewnętrzne modele językowe i ustawienia (np. DPI, język). Utworzenie go raz i ponowne użycie w partii jest znacznie wydajniejsze niż tworzenie nowego silnika dla każdego obrazu. + +--- + +## Krok 2 – Podłączenie zdarzeń postępu w czasie rzeczywistym + +Jeśli przetwarzasz dziesiątki plików TIFF, wskaźnik postępu może uratować Cię przed wątpliwościami, czy aplikacja się nie zawiesiła. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Zdarzenie `ProgressChanged` wywoływane jest po zakończeniu przetwarzania każdego obrazu, dostarczając `Current`, `Total` oraz `Percentage`. To **pętla sprzężenia zwrotnego przetwarzania wsadowego OCR**, którą większość programistów pomija. + +--- + +## Krok 3 – Zbudowanie listy strumieni obrazów + +Aspose.OCR pracuje z obiektami `ImageStream`. Najłatwiej jest wczytać każdy plik TIFF z dysku. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Wskazówka:** +> Jeśli masz dynamiczny folder, zamień listę na sztywno zakodowaną na `Directory.GetFiles(path, "*.tif")` i `Select(ImageStream.FromFile)` – w ten sposób naprawdę **przetwarzasz wsadowe OCR** bez ręcznych aktualizacji. + +--- + +## Krok 4 – Uruchomienie procesu wsadowego OCR + +Teraz następuje ciężka praca. `ProcessBatch` zwraca listę tylko do odczytu obiektów `OcrResult`, z których każdy zawiera wyodrębniony tekst i współczynniki pewności. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Dlaczego jest to wydajne:** +> Silnik ponownie używa tego samego modelu językowego dla wszystkich obrazów, co drastycznie zmniejsza zużycie pamięci w porównaniu z wywołaniami pojedynczych obrazów. + +--- + +## Krok 5 – Wyświetlenie lub zapis rozpoznanego tekstu + +Na koniec iterujemy po wynikach. W prawdziwym projekcie możesz zapisywać je w bazie danych lub pliku JSON, ale w tym demo po prostu wypiszemy je w konsoli. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Oczekiwany wynik w konsoli** (skrócony dla przejrzystości): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Jeśli którykolwiek obraz się nie uda, `result.Text` będzie pustym ciągiem, a zdarzenie `ProgressChanged` nadal zgłosi element jako przetworzony — dzięki czemu możesz osobno logować niepowodzenia. + +--- + +## Obsługa zdarzenia postępu (pełny kod) + +Umieść tę metodę w dowolnym miejscu klasy `BatchDemo` — najlepiej po metodzie `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Profesjonalna wskazówka:** +> Przekieruj ten output do paska postępu UI, jeśli tworzysz aplikację desktopową; to samo zdarzenie działa w WinForms, WPF czy nawet powiadomieniach ASP.NET Core SignalR. + +--- + +## Pełny, gotowy do uruchomienia przykład + +Łącząc wszystko razem, oto kompletny program, który możesz skopiować i wkleić do nowego projektu konsolowego. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Zapisz plik jako `Program.cs`, uruchom `dotnet add package Aspose.OCR`, zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę i naciśnij **Ctrl+F5**. Powinieneś zobaczyć liczby postępu, a następnie wyodrębniony tekst dla każdego pliku TIFF. + +--- + +## Obsługa typowych przypadków brzegowych + +| Sytuacja | Na co zwrócić uwagę | Szybka naprawa | +|-----------|-------------------|-----------| +| **Brakujący lub uszkodzony TIFF** | `ImageStream.FromFile` rzuca `FileNotFoundException` lub `ArgumentException`. | Owiń tworzenie listy w `try/catch` i pomiń nieprawidłowe pliki, logując problem. | +| **Bardzo duże obrazy ( >10 MP )** | OCR może zużywać dużo RAM i spowalniać. | Zmniejsz DPI przed przetwarzaniem: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Tekst nie‑angielski** | Domyślny model językowy to angielski. | Ustaw `ocrEngine.Language = Language.Spanish;` (lub dowolny obsługiwany język). | +| **Potrzeba zapisu wyników** | Wyjście w konsoli nie jest trwałe. | Zapisz `result.Text` do pliku `.txt` używając `File.WriteAllText`. | + +Rozwiązanie tych scenariuszy czyni Twoją aplikację odporną i pokazuje, że myślisz poza „szczęśliwą ścieżką”. + +--- + +## Kolejne kroki i tematy pokrewne + +- **Wyodrębnianie tekstu z PDF** – podobne API, wystarczy zamienić `ImageStream` na `PdfDocument`. +- **Równoległe wsadowe OCR** – przy ogromnych obciążeniach uruchom wiele instancji `OcrEngine` w osobnych wątkach; pamiętaj o limitach licencyjnych. +- **Post‑processing** – przetwarzaj wynik OCR przez korektor ortograficzny lub wyrażenia regularne, aby usunąć typowe artefakty OCR. + +Wszystkie te rozszerzenia wciąż opierają się na podstawowej idei **przetwarzania wsadowego OCR** i mogą być dodawane stopniowo. + +--- + +## Podsumowanie + +Właśnie pokazaliśmy, jak **wyodrębnić tekst z plików TIFF** efektywnie, wykorzystując **przetwarzanie wsadowe OCR** z Aspose OCR w C#. Przykład tworzy pojedynczy silnik, subskrybuje zdarzenia postępu, ładuje listę strumieni obrazów, uruchamia wsad i wypisuje każdy wynik. + +Od tego momentu możesz integrować wynik z bazami danych, generować przeszukiwalne PDF‑y lub przekazywać tekst do kolejnych potoków NLP. Nie ma granic — eksperymentuj z ustawieniami języka, DPI i równoległym wykonywaniem, aby dopasować rozwiązanie do własnych potrzeb. + +Masz pytania lub chcesz podzielić się własnymi modyfikacjami wsadu? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/polish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..ed4c168c4 --- /dev/null +++ b/ocr/polish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-11 +description: Dowiedz się, jak rozpoznawać tekst z pliku PNG i wyodrębniać tekst z + obrazu w C# przy użyciu Aspose OCR. Zawiera kroki ładowania pliku obrazu w C#, sprawdzanie + pisowni oraz pełny kod. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: pl +og_description: Rozpoznawaj tekst z plików PNG łatwo przy użyciu C#. Postępuj zgodnie + z tym przewodnikiem krok po kroku, aby wczytać plik obrazu w C#, wyodrębnić tekst + z obrazu w C# i przeprowadzić sprawdzanie pisowni. +og_title: Rozpoznawanie tekstu z PNG w C# – Kompletny samouczek OCR +tags: +- OCR +- C# +- Aspose +title: Rozpoznawanie tekstu z PNG w C# – Kompletny przewodnik po OCR i sprawdzaniu + pisowni +url: /pl/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznawanie tekstu z png – Kompletny samouczek C# OCR i sprawdzania pisowni + +Czy kiedykolwiek potrzebowałeś **rozpoznawać tekst z png** plików, ale nie wiedziałeś, którą bibliotekę wybrać? Nie jesteś sam; wielu programistów napotyka tę barierę, gdy po raz pierwszy zajmuje się ekstrakcją danych z obrazów. Dobre wieści? Dzięki Aspose OCR możesz wczytać plik obrazu w C#, wyodrębnić tekst i nawet uruchomić wbudowany sprawdzacz pisowni — wszystko w kilku linijkach. + +W tym przewodniku przeprowadzimy Cię przez cały proces: wczytywanie PNG, wywoływanie silnika OCR i w końcu sprawdzanie błędów ortograficznych. Po zakończeniu będziesz w stanie **wyodrębnić tekst z obrazu C#** w projektach bez przeszukiwania rozproszonych dokumentacji. Nie wymagana jest wcześniejsza znajomość OCR, wystarczy środowisko programistyczne .NET. + +## Czego będziesz potrzebować + +- **.NET 6.0** (lub dowolna nowsza wersja .NET) – API działa tak samo zarówno w .NET Core, jak i Framework. +- **Aspose.OCR for .NET** pakiet NuGet – zainstaluj go za pomocą `dotnet add package Aspose.OCR`. +- **Obraz PNG**, który zawiera czytelny tekst (np. `letter.png` umieszczony w folderze, którym zarządzasz). +- Edytor kodu lub IDE (Visual Studio, VS Code, Rider — wybierz, co lubisz). + +To wszystko. Bez dodatkowych silników OCR, bez natywnych DLL‑ów, tylko czysty zarządzany pakiet. + +## Krok 1: Wczytaj plik obrazu PNG w C# + +Zanim silnik OCR będzie mógł coś zrobić, potrzebuje strumienia wskazującego na obraz. Aspose udostępnia `ImageStream.FromFile`, który ukrywa szczegóły systemu plików. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Wskazówka:** Jeśli Twój obraz jest osadzony jako zasób lub pochodzi z żądania sieciowego, możesz użyć `ImageStream.FromBytes(byte[])` — nie musisz dotykać systemu plików. + +### Dlaczego wczytywanie ma znaczenie + +Poprawne wczytanie obrazu zapewnia, że silnik OCR otrzyma dokładne dane pikseli, których oczekuje. Uszkodzony strumień spowoduje wyjątek w `Recognize`, a Ty zmarnujesz czas na debugowanie później. + +## Krok 2: Zainicjalizuj silnik OCR + +Utworzenie instancji `OcrEngine` jest tanie, ale możesz chcieć dostosować język lub ustawienia dokładności dla konkretnych przypadków użycia (np. dokumenty wielojęzyczne). Konstruktor domyślny działa dobrze dla tekstu angielskiego. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Dlaczego instancja silnika? + +Silnik przechowuje konfigurację (język, filtry wstępnego przetwarzania itp.). Oddzielając konfigurację od obrazu, możesz ponownie używać tego samego silnika dla wielu plików — świetne rozwiązanie do przetwarzania wsadowego. + +## Krok 3: Rozpoznaj tekst z PNG + +Teraz dzieje się magia. `Recognize` zwraca obiekt `OcrResult`, który zawiera surowy ciąg znaków, wyniki pewności i więcej. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Oczekiwany wynik** (zakładając, że `letter.png` zawiera „Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Jeśli obraz zawiera wiele linii, wynik zachowuje podziały wierszy, co ułatwia dalsze przetwarzanie. + +### Przypadek brzegowy: PNG o niskiej rozdzielczości + +Jeśli wynik OCR jest zniekształcony, rozważ zwiększenie rozmiaru obrazu lub dostosowanie `ocrEngine.PreprocessingOptions`. Obrazy o niskim DPI często tracą szczegóły, na których opiera się silnik. + +## Krok 4: Uruchom wbudowany sprawdzacz pisowni + +Aspose OCR dostarcza lekki moduł sprawdzania pisowni, który działa bezpośrednio na wyniku OCR. Ten krok pomaga wykryć błędne rozpoznania, takie jak „H3llo” zamiast „Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Przykładowy wynik** (jeśli OCR błędnie odczytał „World” jako „W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Dlaczego sprawdzanie pisowni? + +OCR nigdy nie jest w 100 % doskonały, szczególnie przy zaszumionym tle. Szybkie sprawdzenie pisowni może odfiltrować oczywiste błędy, zanim wprowadzisz tekst do dalszej analizy lub baz danych. + +## Krok 5: Połącz wszystko – pełny działający przykład + +Poniżej znajduje się kompletny, gotowy do uruchomienia program. Skopiuj i wklej go do nowego projektu konsolowego, dostosuj ścieżkę do obrazu i naciśnij **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Uruchomienie demonstracji** wypisuje tekst OCR, a następnie wszelkie sugestie ortograficzne. Działa na każdym PNG zawierającym wyraźny, drukowany tekst angielski. Dla innych języków wystarczy odpowiednio ustawić `ocrEngine.Language`. + +## Częste pytania i pułapki + +| Pytanie | Odpowiedź | +|----------|--------| +| *Czy mogę przetwarzać pliki JPEG lub BMP?* | Oczywiście — `ImageStream.FromFile` akceptuje każdy format obsługiwany przez Aspose (PNG, JPEG, BMP, TIFF). | +| *Co jeśli obraz znajduje się w strumieniu pamięci?* | Użyj `ImageStream.FromBytes(byteArray)` lub `ImageStream.FromStream(stream)`. | +| *Czy sprawdzacz pisowni jest świadomy języka?* | Tak, respektuje język ustawiony w silniku OCR. | +| *Jak poprawić dokładność przy skośnych obrazach?* | Włącz `ocrEngine.PreprocessingOptions.Deskew = true;` przed wywołaniem `Recognize`. | +| *Czy potrzebna jest licencja na Aspose.OCR?* | Darmowa wersja próbna działa do 100 stron. W produkcji należy uzyskać licencję, aby usunąć znaki wodne. | + +## Kolejne kroki – wyjście poza podstawowy OCR + +Teraz, gdy możesz **rozpoznawać tekst z png** i **wyodrębniać tekst z obrazu C#**, rozważ następujące rozszerzenia: + +1. **Przetwarzanie wsadowe** – iteruj po katalogu PNG‑ów i zapisz każdy wynik OCR do osobnego pliku `.txt`. +2. **Integracja z Azure Cognitive Services** – połącz Aspose OCR z chmurowymi API tłumaczeń, aby tworzyć wielojęzyczne potoki. +3. **Ekstrakcja danych strukturalnych** – użyj wyrażeń regularnych na `recognizedText`, aby wyciągnąć daty, numery faktur lub adresy. +4. **Optymalizacja wydajności** – przy dużych wolumenach ponownie używaj jednej instancji `OcrEngine` i włącz wielowątkowość. + +Każde z nich opiera się na podstawowych krokach, które omówiliśmy, umożliwiając przekształcenie prostego obrazu w użyteczne dane. + +## Zakończenie + +Przeszliśmy przez kompletny przykład od początku do końca, który pokazuje, jak **rozpoznawać tekst z png** w C#, **poprawnie wczytywać plik obrazu C#**, a następnie **wyodrębniać tekst z obrazu C#**, jednocześnie wykrywając błędy ortograficzne. Kod jest samodzielny, wyjaśnienia obejmują zarówno „jak”, jak i „dlaczego”, a teraz masz solidne podstawy do każdej funkcji opartej na OCR, której możesz potrzebować. + +Wypróbuj to, dostosuj opcje wstępnego przetwarzania i zobacz, jak czysty może być wyodrębniony tekst. Jeśli napotkasz jakiekolwiek problemy, zostaw komentarz poniżej — miłego 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/portuguese/net/ocr-configuration/_index.md b/ocr/portuguese/net/ocr-configuration/_index.md index 917456822..6129f8c34 100644 --- a/ocr/portuguese/net/ocr-configuration/_index.md +++ b/ocr/portuguese/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Desbloqueie o poder do reconhecimento de imagens OCR em .NET com Aspose.OCR. Ext Desbloqueie recursos poderosos de OCR com Aspose.OCR para .NET. Extraia texto de imagens de forma contínua. ### [OCROperation com Lista em Reconhecimento de Imagens OCR](./ocr-operation-with-list/) Desbloqueie o potencial do Aspose.OCR para .NET. Realize reconhecimento de imagens OCR com listas de forma simples. Aumente a produtividade e a extração de dados em suas aplicações. +### [Como desativar OCR em C# – Guia offline Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Desative o OCR em aplicações C# usando o Aspose OCR offline. Aprenda a desabilitar recursos e otimizar desempenho. ### Casos de Uso Comuns - **Extrair imagens de texto** de faturas escaneadas para contabilidade automatizada. @@ -102,4 +104,4 @@ A: Sim, o objeto `OcrResult` fornece valores de confiança que podem ser inspeci {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/portuguese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..308418d00 --- /dev/null +++ b/ocr/portuguese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: Aprenda como desativar o OCR no Aspose OCR para C# para executar offline, + extrair texto de imagem sem internet e carregar a imagem corretamente para o OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: pt +og_description: Como desativar o OCR no Aspose OCR para C# e executá‑lo offline, extrair + texto de imagens sem precisar de internet e carregar a imagem para OCR facilmente. +og_title: Como desativar OCR em C# – Guia offline de OCR da Aspose +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Como desativar OCR em C# – Guia offline de OCR da Aspose +url: /pt/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Desativar OCR em C# – Guia Offline do Aspose OCR + +Já se perguntou **como desativar OCR** quando você precisa de uma solução realmente offline? Talvez esteja construindo um aplicativo desktop seguro que não pode depender de uma conexão de rede, ou simplesmente queira evitar downloads inesperados. De qualquer forma, a boa notícia é que o Aspose OCR permite desligar o download automático de recursos, apontar para uma pasta local e manter tudo on‑premises. Neste tutorial você também verá como **extrair texto de imagem** e **carregar imagem para OCR** corretamente, sem contratempos. + +Vamos percorrer um exemplo completo, pronto‑para‑executar, que mostra cada passo — desde a inicialização do engine até a impressão do texto japonês reconhecido. Sem documentação externa, sem mágica oculta; apenas código C# puro que você pode inserir no seu projeto hoje. Ao final, você entenderá por que desativar o recurso de download automático é importante, como definir o caminho dos recursos e quais armadilhas evitar. + +## Pré‑requisitos + +- .NET 6.0 (ou qualquer versão recente do .NET) instalado na sua máquina. +- Pacote NuGet Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Uma pasta que já contenha os recursos de idioma que você precisa (por exemplo, o modelo japonês). +- Um arquivo de imagem (`japan_doc.png`) que você deseja processar com OCR. + +Se estiver faltando os pacotes de idioma, baixe‑os uma única vez no portal da Aspose, descompacte‑os em uma pasta como `AsposeOCRResources` e pronto. Nenhum download adicional ocorrerá depois que você desativar o recurso de download automático. + +![Como desativar OCR offline](/images/how-to-disable-ocr.png "ilustração de como desativar OCR") + +## Etapa 1 – Criar a Instância do OCR Engine + +A primeira coisa a fazer é instanciar `OcrEngine`. Pense neste objeto como o cérebro que lerá sua imagem. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por que isso importa:** Sem um engine você não pode configurar nada. O objeto contém todas as definições, incluindo a flag crucial que indica à biblioteca se ela pode acessar a internet. + +## Etapa 2 – Desativar o Download Automático de Recursos + +Por padrão, o Aspose OCR tenta buscar arquivos de idioma ausentes em tempo real. Para manter tudo offline, altere o interruptor `AutoDownloadResources` para `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Dica de especialista:** Desligar isso não só garante privacidade, como também acelera a primeira execução de reconhecimento, pois o engine não perderá tempo verificando atualizações. + +## Etapa 3 – Apontar para a Sua Pasta Local de Recursos + +Agora informe ao engine onde os pacotes de idioma pré‑baixados estão armazenados. Este é o caminho que você configurou nos pré‑requisitos. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **O que pode dar errado?** Se o caminho estiver errado ou o arquivo de idioma necessário estiver ausente, o engine lançará uma `ResourceNotFoundException`. Verifique a ortografia da pasta e se o modelo japonês (`jpn.traineddata`) está presente. + +## Etapa 4 – Selecionar o Modelo de Idioma Local + +Escolha o idioma que realmente está disponível no disco. No nosso exemplo usamos japonês, mas você pode trocar `Language.Japanese` por qualquer outro idioma que tenha baixado. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Caso extremo:** Alguns idiomas exigem dicionários adicionais (por exemplo, chinês). Certifique‑se de que esses arquivos auxiliares também estejam na mesma pasta de recursos. + +## Etapa 5 – Carregar a Imagem para OCR + +Aqui é onde **carregamos a imagem para OCR**. O método `ImageStream.FromFile` lê o arquivo para um stream que o Aspose pode processar. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Dica:** Formatos suportados incluem PNG, JPEG, BMP e TIFF. Se precisar lidar com PDFs, converta cada página para imagem primeiro. + +## Etapa 6 – Executar o Processo de Reconhecimento + +Agora o engine realmente lê os pixels e tenta transformá‑los em texto. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Por que esta etapa pode ser lenta:** OCR consome muita CPU, especialmente para imagens de alta resolução. Se o desempenho for crítico, considere reduzir a escala da imagem antes do reconhecimento. + +## Etapa 7 – Exibir o Texto Extraído + +Por fim, **extraímos texto de imagem** e o imprimimos no console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Executar o programa deve exibir os caracteres japoneses que estavam em `japan_doc.png`. Se tudo estiver configurado corretamente, você verá um bloco limpo de texto Unicode no seu console. + +### Saída Esperada + +``` +これはサンプルの日本語テキストです。 +``` + +(Seu resultado real dependerá do conteúdo da imagem.) + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Solução | +|----------|------------------|---------| +| **Arquivo de idioma ausente** | `AutoDownloadResources` está false, então o engine não pode buscá‑lo. | Verifique se `ResourcesPath` aponta para a pasta que contém `jpn.traineddata`. | +| **Caminho da imagem incorreto** | `ImageStream.FromFile` lança `FileNotFoundException`. | Use caminhos absolutos ou garanta que o diretório de trabalho esteja configurado corretamente. | +| **Formato de imagem não suportado** | Aspose lê apenas determinados formatos. | Converta sua imagem para PNG ou JPEG antes de chamar `FromFile`. | +| **Falha por falta de memória em imagens grandes** | OCR carrega a imagem inteira na memória. | Redimensione ou divida a imagem em blocos, ou aumente o limite de memória do processo. | + +## Expandindo o Exemplo + +- **Processamento em lote:** Percorra um diretório de imagens, chame o mesmo código de reconhecimento e grave cada resultado em um arquivo `.txt` separado. +- **Idiomas diferentes:** Substitua `Language.Japanese` por `Language.English` (ou outro) após colocar os arquivos de recurso correspondentes. +- **Pré‑processamento personalizado:** Use Aspose.Imaging para corrigir inclinação ou melhorar o contraste antes do OCR, obtendo maior precisão. + +## Conclusão + +Agora você sabe **como desativar OCR** no Aspose OCR para C# e executá‑lo completamente offline. Ao definir `AutoDownloadResources` como `false`, apontar o engine para uma pasta local de recursos e **carregar imagem para OCR** corretamente, você pode **extrair texto de imagem** sem jamais tocar na internet. Essa abordagem é ideal para ambientes seguros, pipelines de CI ou qualquer cenário onde o acesso à rede seja limitado. + +Pronto para o próximo passo? Experimente processar uma pasta inteira de PDFs escaneados, teste diferentes pacotes de idioma ou integre o resultado do OCR em um banco de dados pesquisável. A configuração offline que você construiu hoje é uma base sólida para qualquer fluxo de trabalho de processamento de documentos on‑premises. + +Boa codificação, e sinta‑se à vontade para deixar um comentário se encontrar algum obstáculo! + +{{< /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 7a728f21a..7a79430b8 100644 --- a/ocr/portuguese/net/ocr-optimization/_index.md +++ b/ocr/portuguese/net/ocr-optimization/_index.md @@ -28,7 +28,7 @@ Neste guia você descobrirá como **extrair texto de imagem** de arquivos com As - **O .NET Core é suportado?** Totalmente suportado no .NET Framework 4.5+, .NET Core 3.1+, .NET 5/6+. ## O que é “extrair texto de imagem”? -Extrair texto de uma imagem significa usar reconhecimento óptico de caracteres (OCR) para ler os caracteres que aparecem em um bitmap e exportá‑los como texto simples ou documentos formatados. Aspose.OCR utiliza algoritmos sofisticados para lidar com várias fontes, idiomas e qualidades de imagem. +Extrair texto de uma imagem significa usar reconhecimento óptico de caracteres (OCR) para ler os caracteres que aparecem em um bitmap e exportá‑‑los como texto simples ou documentos formatados. Aspose.OCR utiliza algoritmos sofisticados para lidar com várias fontes, idiomas e qualidades de imagem. ## Por que usar Aspose.OCR para .NET? - **Alta precisão** – mecanismos avançados de reconhecimento reduzem erros. @@ -74,6 +74,8 @@ Explore Aspose.OCR para .NET. Aumente a precisão do OCR com filtros de pré‑p Melhore a precisão do OCR com Aspose.OCR para .NET. Corrija ortografia, personalize dicionários e alcance reconhecimento de texto livre de erros sem esforço. ### [Salvar Resultado Multipágina como Documento em Reconhecimento de Imagem OCR](./save-multipage-result-as-document/) Desbloqueie o potencial do Aspose.OCR para .NET. Salve facilmente resultados de OCR multipágina como documentos com este guia completo passo a passo. +### [Como melhorar a precisão do OCR em C# com Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Descubra técnicas avançadas para aumentar a precisão do OCR em aplicações C# usando Aspose OCR. ## Perguntas Frequentes diff --git a/ocr/portuguese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/portuguese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..34e5da979 --- /dev/null +++ b/ocr/portuguese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: Aprenda como melhorar OCR em C# reconhecendo texto de JPG, corrigindo + a inclinação das imagens e removendo ruído usando Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: pt +og_description: Descubra como melhorar OCR reconhecendo texto de JPG, corrigindo a + inclinação das imagens e removendo ruído — guia completo em C#. +og_title: Como melhorar a precisão do OCR em C# com Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Como melhorar a precisão do OCR em C# com Aspose OCR +url: /pt/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como melhorar a precisão do OCR em C# com Aspose OCR + +Já se perguntou **how to improve OCR** quando seus escaneamentos parecem mais arte abstrata do que texto legível? Você não está sozinho. Em muitos projetos do mundo real—pense em faturas, recibos ou notas manuscritas—as imagens de origem costumam estar inclinadas, granulosas ou simplesmente barulhentas. A boa notícia? Aspose OCR oferece alguns controles de pré‑processamento que podem transformar essa bagunça em caracteres limpos e legíveis por máquina. Neste tutorial vamos percorrer um exemplo completo e executável que mostra **how to improve OCR** ao **recognize text from JPG**, corrigindo a inclinação da imagem e removendo ruídos indesejados. + +> *Pro tip:* Se você pular o pré‑processamento, provavelmente terminará com uma saída confusa que parece um crucigrama criptográfico. Vamos evitar isso. + +![Como melhorar o OCR com pré‑processamento do Aspose OCR](https://example.com/ocr-preprocess.png "como melhorar o OCR com Aspose OCR") + +## O que você aprenderá + +1. Como configurar o motor Aspose OCR para precisão ideal. +2. O código exato necessário para **recognize text from JPG** arquivos. +3. Por que habilitar *AutoDeskew* e *RemoveNoise* é importante e como ajustá‑los. +4. Como **extract text from image** arquivos sem escrever um filtro personalizado. +5. Armadilhas comuns (arquivo ausente, formato não suportado) e correções rápidas. + +Ao final, você terá um único aplicativo console C# que pode receber qualquer JPG, limpá‑lo e gerar a string extraída—pronta para processamento posterior ou armazenamento. + +## Pré‑requisitos + +- .NET 6.0 SDK ou superior (o exemplo usa declarações de nível superior para brevidade). +- Pacote NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Uma imagem JPG de exemplo (nomeada `input.jpg`) colocada na mesma pasta do executável. +- Familiaridade básica com C#—nenhum conceito avançado necessário. + +Se você já tem um projeto, basta inserir o código; caso contrário, crie um novo aplicativo console: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Agora vamos mergulhar no código. + +## Como melhorar o OCR: Visão geral das configurações de pré‑processamento + +O coração de **how to improve OCR** está no objeto `PreprocessSettings`. Pense nele como um mini‑editor de imagens que roda *before* o motor de reconhecimento de caracteres. Abaixo está um resumo rápido das flags mais impactantes: + +| Configuração | O que faz | Caso de uso típico | +|------------------------|----------------------------------------------------------|--------------------| +| `AutoDeskew` | Aplica um algoritmo de correção de inclinação baseado em deep‑learning. | Páginas escaneadas que estão ligeiramente inclinadas. | +| `AdaptiveThreshold` | Aumenta o contraste em imagens com pouca luz ou desbotadas. | Recibos antigos com tinta desbotada. | +| `RemoveNoise` | Executa um filtro de desfoque Gaussiano para suprimir manchas. | Fotos tiradas com flash de smartphone. | +| `NoiseRemovalStrength` | Controla a agressividade (1 = baixo, 3 = alto). | Ajuste fino com base no nível de granulação da fonte. | + +Habilitar essas opções é essencialmente o “segredo” para **how to improve OCR** em entradas imperfeitas. + +## Reconhecer texto de JPG com Aspose OCR + +A seguir está o programa completo, pronto para execução. Cada linha está anotada para que você veja *por que* cada parte existe, não apenas *o que* ela faz. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Saída esperada + +Se `input.jpg` contiver a frase “Invoice #12345 – Total: $256.78”, o console exibirá: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Observe como a saída está limpa, com o traço e o símbolo de dólar preservados—exatamente o que se espera ao **extract text from image** arquivos. + +## Como corrigir inclinação da imagem usando configurações de pré‑processamento + +Por que a correção de inclinação importa? Mesmo uma inclinação de 2 graus pode confundir a fase de segmentação de caracteres, levando a letras identificadas incorretamente. A flag `AutoDeskew` executa uma rede neural convolucional nos bastidores que detecta o ângulo dominante e rotaciona a imagem de volta à linha de base. + +Se precisar de mais controle, pode definir manualmente o ângulo: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **When to use manual deskew:** Se você souber que a câmera inclina as imagens consistentemente por um valor fixo (por exemplo, um scanner fixo), codificar o ângulo economiza um pouquinho de tempo de processamento. + +## Como remover ruído para extração mais limpa + +O ruído aparece como manchas ou granulação aleatória, especialmente em fotos com pouca luz. A flag `RemoveNoise` aplica um filtro bilateral que suaviza o fundo enquanto preserva as bordas (os próprios caracteres). A propriedade `NoiseRemovalStrength` permite ajustar a agressividade: + +| Intensidade | Efeito | +|-------------|--------| +| 1 | Suavização leve — boa para imagens ligeiramente granuladas. | +| 2 | Equilibrado — funciona para a maioria das capturas de smartphone. | +| 3 | Suavização pesada — use quando a imagem está extremamente ruidosa, mas cuidado com o borrão de traços finos. | + +Se encontrar um cenário em que fontes pequenas ficam ilegíveis após a suavização pesada, basta reduzir a intensidade ou desativar o filtro completamente. + +## Extrair texto da imagem: além do JPG + +Embora nossa demonstração foque em JPG, o Aspose OCR suporta PNG, BMP, TIFF e até páginas PDF. Para **extract text from image** formatos diferentes de JPG, basta mudar a extensão do arquivo em `ImageStream.FromFile`. Para TIFFs de várias páginas, você pode percorrer cada página: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Esse trecho mostra como escalar o mesmo fluxo de **how to improve OCR** para processar em lote uma pilha inteira de documentos escaneados. + +## Armadilhas comuns e como corrigi‑las + +| Sintoma | Causa provável | Correção rápida | +|-----------------------|-----------------------------------------------------------|-----------------| +| Saída em branco | Imagem completamente branca após pré‑processamento (limiar excessivo) | Reduza `NoiseRemovalStrength` ou defina `AdaptiveThreshold = false`. | +| Caracteres confusos | Modelo de idioma errado (padrão é English) | Defina `ocrEngine.Settings.Language = Language.English;` ou carregue um pacote de idioma personalizado. | +| Falha em arquivos grandes | Falta de memória devido a imagem de alta resolução | Reduza a escala com `ocrEngine.Settings.ImageResizeFactor = 0.5;` antes do reconhecimento. | +| Nenhuma saída para escaneamentos rotacionados | `AutoDeskew` desativado inadvertidamente | Habilite `AutoDeskew = true` ou forneça o `DeskewAngle` correto. | + +Manter essas informações em mente economizará horas de depuração quando você estiver tentando **how to improve OCR** em pipelines de produção. + +## Bônus: Ajustando para velocidade vs. precisão + +Se você processa milhares de recibos por dia, pode priorizar a velocidade. Desative `AdaptiveThreshold` e defina `NoiseRemovalStrength = 1`. Por outro lado, para documentos legais onde um único caractere perdido pode ser custoso, mantenha todas as flags ativadas e considere aumentar `NoiseRemovalStrength` para 3. + +## Conclusão + +Cobremos toda a jornada de **how to improve OCR** em C# usando Aspose OCR: desde a criação do motor, configuração do pré‑processamento (a base de *how to deskew image* e *how to remove noise*), carregamento de um JPG, reconhecimento de texto e tratamento de casos extremos. O código é autônomo, funciona imediatamente e demonstra os passos exatos que você precisa para **recognize text from jpg** e **extract text from image** arquivos. + +### O que vem a seguir? + +- Experimente outros formatos de imagem (PNG, TIFF) para ver como as mesmas configurações se comportam. +- Integre a saída do OCR em um banco de dados ou + +{{< /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 8efadbd23..3adcbfc2f 100644 --- a/ocr/portuguese/net/text-recognition/_index.md +++ b/ocr/portuguese/net/text-recognition/_index.md @@ -53,11 +53,22 @@ Liberte o poder do Aspose.OCR para .NET. Aprenda a obter resultados de OCR no fo Aprimore seus aplicativos .NET com Aspose.OCR para reconhecimento eficiente de texto de imagem. Explore o modo de detecção de áreas de OCR para obter resultados precisos. ### [Reconhecer PDF em reconhecimento de imagem OCR](./recognize-pdf/) 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. +### [Criar PDF pesquisável em C# – Guia completo](./create-searchable-pdf-in-c-complete-guide/) +Aprenda a criar PDFs pesquisáveis em C# usando Aspose.OCR, seguindo um guia completo passo a passo. ### [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. +### [Extrair texto de imagem em C# – Guia completo de OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Aprenda a extrair texto de imagens usando C# com Aspose.OCR, seguindo um guia completo passo a passo. +### [Extrair texto de TIFF com OCR em lote em C# – Guia completo](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Aprenda a extrair texto de arquivos TIFF usando OCR em lote com C# e Aspose.OCR, seguindo um guia passo a passo. +### [Reconhecer texto de PNG em C# – Guia completo de OCR e verificação ortográfica](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Aprenda a reconhecer texto de PNG em C# com OCR completo e verificação ortográfica passo a passo. +### [Converter imagem para JSON – Tutorial OCR em C# para recibos](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Aprenda a converter imagens de recibos em JSON usando OCR com C# e Aspose.OCR, passo a passo. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/portuguese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..9a6032bdf --- /dev/null +++ b/ocr/portuguese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: Converta imagem para JSON usando Aspose OCR Cloud em C#. Aprenda como + reconhecer texto, extrair texto de imagens e processar recibos com OCR em minutos. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: pt +og_description: Converta imagem em JSON com Aspose OCR Cloud em C#. Este guia mostra + como reconhecer texto, extrair texto de uma imagem e processar recibos com OCR. +og_title: Converter imagem para JSON – Tutorial de OCR em C# para recibos +tags: +- OCR +- C# +- Aspose +- JSON +title: Converter imagem para JSON – Tutorial de OCR em C# para recibos +url: /pt/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter Imagem para JSON – Tutorial OCR em C# para Recibos + +Já precisou **converter imagem para JSON** mas não sabia por onde começar? Neste guia vamos percorrer um tutorial completo, de ponta a ponta, em C# OCR que captura uma foto de um recibo, reconhece o texto e gera um payload JSON organizado. + +Se você já se perguntou *como reconhecer texto* em um documento escaneado, ou está procurando uma maneira rápida de **extrair texto de imagem**, está no lugar certo. Ao final deste artigo você será capaz de **processar recibos com OCR** e enviar o resultado diretamente para suas APIs downstream. + +## O que você vai precisar + +- .NET 6 SDK ou superior (o código também funciona com .NET Core) +- Uma chave de API Aspose Cloud – você pode obter um teste gratuito no portal da Aspose +- Uma imagem de recibo de exemplo (`receipt.jpg`) armazenada localmente +- Seu IDE favorito (Visual Studio, VS Code, Rider – qualquer um serve) + +Nenhum pacote NuGet extra além do cliente oficial `Aspose.OCR.Cloud` é necessário. Se você já tem o SDK instalado, está pronto para começar. + +## Etapa 1 – Converter Imagem para JSON: Configurar o Cliente OCR + +Primeiro, precisamos de uma instância de `CloudOcrClient`. Esse objeto gerencia toda a comunicação com o serviço OCR da Aspose e retornará o resultado em formato JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Por que isso importa:** Inicializar o cliente é a ponte entre seu código C# e o motor OCR na nuvem. O método `RecognizeAsync` faz o trabalho pesado – ele envia a imagem, executa o motor OCR e devolve uma string JSON que contém o texto reconhecido, pontuações de confiança e coordenadas de caixa delimitadora. + +> **Dica profissional:** Armazene a chave da API em uma variável de ambiente ou em um gerenciador de segredos ao invés de codificá‑la diretamente. Assim você evita vazamentos acidentais. + +## Etapa 2 – Como Reconhecer Texto do Recibo + +Agora que o cliente está pronto, vamos entender o *como* por trás do reconhecimento de texto. O Aspose OCR suporta vários idiomas, mas para a maioria dos recibos o inglês funciona bem. Se precisar de outro idioma, basta substituir `Language.English` pelo valor enum apropriado. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**O que está acontecendo nos bastidores?** O serviço executa um modelo de deep‑learning que detecta caracteres, agrupa‑os em palavras e, em seguida, monta linhas. O JSON retornado tem aproximadamente este formato: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Você pode analisar esse JSON com `System.Text.Json` ou `Newtonsoft.Json` para extrair os campos que lhe interessam. + +## Etapa 3 – Extrair Texto da Imagem e Construir JSON Manualmente (Opcional) + +Às vezes você não quer o JSON bruto que o Aspose fornece; talvez precise de uma estrutura personalizada para seu serviço downstream. Abaixo está um exemplo rápido que desserializa a resposta e a reempacota em um objeto mais limpo. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Por que reformatar?** Muitas APIs esperam um esquema específico (por exemplo, `{ "total": "12.34", "date": "2026-04-10" }`). Ao extrair apenas os campos necessários, você mantém o payload leve e evita vazar metadados desnecessários do OCR. + +## Etapa 4 – Testar o Tutorial OCR em C# com um Recibo de Exemplo + +Execute o programa a partir do seu terminal: + +```bash +dotnet run +``` + +Você deverá ver dois blocos de saída: + +1. O JSON bruto retornado pela Aspose (o resultado **converter imagem para json** direto da nuvem). +2. O JSON customizado que você construiu na etapa anterior. + +Uma saída típica se parece com: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Se aparecer um erro como *401 Unauthorized*, verifique se sua chave de API é válida e se o caminho da imagem está correto. + +## Casos de Borda & Armadilhas Comuns + +| Situação | O que observar | Correção sugerida | +|-----------|----------------|-------------------| +| **Recibo de baixa resolução** | A confiança do OCR cai abaixo de 0.8 | Pré‑processar a imagem (aumentar DPI, nitidez) antes de enviar | +| **Caracteres não‑inglês** | Enum de idioma errado | Use `Language.AutoDetect` ou especifique o idioma correto | +| **Grande lote de recibos** | Erros de limite de taxa | Implemente back‑off exponencial ou solicite cota maior à Aspose | +| **Campos ausentes** | O parser customizado retorna `null` | Adicione lógica de fallback ou padrões regex para extração mais robusta | + +## Visão Geral Visual + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Texto alternativo:* *diagrama de fluxo converter imagem para json ilustrando as etapas abordadas neste tutorial.* + +## Recapitulação + +Mostramos como **converter imagem para JSON** com o Aspose OCR Cloud, explicamos *como reconhecer texto* em um recibo, demonstramos maneiras de **extrair texto de imagem**, e reunimos tudo em um **tutorial OCR em C#** limpo que você pode inserir em qualquer projeto .NET. + +Os principais aprendizados são: + +- Configurar `CloudOcrClient` com sua chave de API. +- Chamar `RecognizeAsync` para obter um payload JSON direto do serviço. +- Opcionalmente remodelar esse payload para atender ao seu contrato de dados. + +## O que vem a seguir? + +- **Processamento em lote:** Percorrer uma pasta de recibos e agregar os resultados em um único array JSON. +- **Parsing avançado:** Usar expressões regulares ou um pequeno modelo de NLP para extrair itens de linha, impostos e descontos. +- **Integração:** Enviar o JSON final para um banco de dados, fila de mensagens ou Azure Function para automação adicional. + +Sinta‑se à vontade para experimentar diferentes formatos de imagem (PNG, TIFF) ou testar o fluxo **processar recibo com OCR** em fotos capturadas por dispositivos móveis. O céu é o limite assim que você tem um método confiável de **converter imagem para JSON**. + +Tem dúvidas ou encontrou algum problema? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/portuguese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..45ba519c0 --- /dev/null +++ b/ocr/portuguese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Crie PDF pesquisável a partir de uma imagem rapidamente. Aprenda a gerar + PDF a partir de imagem, incorporar PDF de imagem, converter TIF para PDF e usar + OCR para PDF em C# com Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: pt +og_description: Crie PDF pesquisável instantaneamente. Este tutorial mostra como gerar + PDF a partir de imagem, incorporar PDF de imagem, converter TIF para PDF e usar + OCR para PDF em C#. +og_title: Criar PDF pesquisável em C# – Guia passo a passo +tags: +- C# +- OCR +- PDF generation +title: Criar PDF pesquisável em C# – Guia completo +url: /pt/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar PDF pesquisável em C# – Guia Completo + +Já precisou **criar PDF pesquisável** a partir de um documento escaneado, mas não sabia por onde começar? Você não está sozinho; muitos desenvolvedores enfrentam o mesmo obstáculo ao lidar com arquivos TIFF e OCR. Neste tutorial, vamos percorrer uma solução prática que permite **gerar PDF a partir de imagem**, incorporar a foto original para uma pesquisabilidade perfeita e concluir com um fluxo de trabalho limpo de **OCR para PDF C#**. + +Cobriremos tudo, desde a instalação da biblioteca Aspose.OCR até o tratamento de casos extremos como TIFFs de várias páginas. Ao final, você terá um programa pronto para executar que transforma `input.tif` em um `output.pdf` totalmente pesquisável. Sem serviços externos, sem mágica oculta — apenas código C# puro que você pode inserir em qualquer projeto .NET. + +## O que você precisará + +- .NET 6.0 ou posterior (o código também funciona no .NET Framework 4.7+) +- Visual Studio 2022 (ou qualquer editor de sua preferência) +- Uma licença ativa do Aspose.OCR ou uma chave de avaliação gratuita (o pacote NuGet funciona sem chave para avaliação) +- Uma imagem TIFF de exemplo (`input.tif`) colocada em uma pasta que você possa referenciar + +> **Dica profissional:** Mantenha seus arquivos de imagem abaixo de 10 MB para evitar picos de memória ao processar grandes lotes. + +## Etapa 1: Instalar Aspose.OCR e Configurar o Projeto + +Primeiro, adicione o pacote NuGet Aspose.OCR ao seu projeto. Abra o Console do Gerenciador de Pacotes e execute: + +```powershell +Install-Package Aspose.OCR +``` + +Se preferir a interface gráfica, clique com o botão direito em **Dependencies → Manage NuGet Packages**, procure por *Aspose.OCR* e clique em **Install**. + +Por que esta etapa é importante: o Aspose.OCR inclui um mecanismo OCR de alto desempenho e um exportador de PDF embutido, portanto você não precisa de bibliotecas separadas para manipulação de imagens ou criação de PDF. + +### Estrutura Completa do Projeto + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Nota:** Substitua `YOUR_DIRECTORY` pelo caminho real da pasta na sua máquina. + +## Etapa 2: Carregar a Imagem – Fundamento de *Generate PDF from Image* + +Carregar o arquivo de origem é uma etapa pequena, mas crítica. O Aspose.OCR espera um `ImageStream`, que abstrai a I/O de arquivos e suporta vários formatos (TIFF, PNG, JPEG, etc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Por que não passar apenas o caminho?** +O wrapper `ImageStream` gerencia o buffer interno e garante que o motor OCR trabalhe com TIFFs de várias páginas grandes sem carregar todo o arquivo na memória de uma só vez. + +## Etapa 3: Configurar Exportação de PDF – *Embed Image PDF* para Pesquisabilidade Perfeita + +Ao exportar os resultados do OCR para PDF, você tem duas opções: incorporar apenas o texto extraído ou incorporar a imagem original junto à camada de texto oculto. Incorporar a imagem mantém a fidelidade visual da digitalização e permite que os usuários selecionem ou copiem o texto posteriormente. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Caso extremo:** Se você definir `EmbedOriginalImage` como `false`, o PDF resultante será menor, mas perderá a imagem original — útil para arquivos puramente de texto. + +## Etapa 4: Exportar – *OCR to PDF C#* em uma única chamada + +O Aspose.OCR simplifica o trabalho pesado para uma única linha. O método `ExportToPdf` executa o OCR, constrói a camada de texto oculto e grava o arquivo final. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Resultado Esperado + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Abra `output.pdf` em qualquer visualizador (Adobe Reader, Edge, etc.) e tente selecionar texto — você verá a imagem original por baixo, confirmando que a operação **create searchable pdf** foi bem-sucedida. + +## Etapa 5: Verificar o PDF – Verificações Rápidas que Você Pode Automatizar + +Embora a inspeção manual seja suficiente para um único arquivo, você pode querer garantir programaticamente que o PDF contém uma camada de texto. O Aspose.PDF (uma biblioteca irmã) pode ler o documento e extrair texto: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Adicione uma chamada a `VerifyPdfContainsText(pdfPath);` após a exportação se desejar uma verificação automática de sanidade. + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| **Out‑of‑memory em TIFFs enormes** | Carregar o arquivo inteiro de uma vez excede a RAM. | Use `ImageStream.FromFile` (como mostrado) e processe as páginas uma a uma se você tiver arquivos de várias páginas. | +| **Licença ausente gera marcas d'água** | O modo de avaliação adiciona uma marca d'água visível em cada página. | Aplique sua licença Aspose.OCR cedo: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Separadores de caminho incorretos no Linux** | `\` codificado diretamente quebra em sistemas não Windows. | Use `Path.Combine` ou literais de string bruta com `/`. | +| **Texto não pesquisável** | `EmbedOriginalImage` definido como `false` ou OCR desativado. | Garanta que `PdfExportOptions.EmbedOriginalImage = true` e que o motor OCR esteja corretamente inicializado. | + +## Bônus: Converter TIF para PDF Sem OCR (Quando o Texto Não é Necessário) + +Se você só precisa **converter TIF para PDF** sem a camada de texto oculto, pode pular totalmente a etapa de OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Execute o programa, abra `output.pdf` e você verá uma réplica fiel do TIFF original com uma camada de texto oculta e selecionável — exatamente o que **create searchable pdf** significa na prática. + +## Conclusão + +Acabamos de percorrer um fluxo de trabalho completo de **create searchable pdf** em C#. Partindo de um TIFF bruto, **geramos pdf a partir de imagem**, escolhemos **embed image pdf** para fidelidade visual e demonstramos o pipeline completo de **ocr to pdf c#** usando Aspose.OCR. + +Sinta‑se à vontade para ajustar o `PdfExportOptions` (compressão, versão do PDF, etc.) ou encadear várias imagens para processamento em lote. Em seguida, você pode explorar a adição de proteção por senha, assinaturas digitais ou até mesmo mesclar vários PDFs pesquisáveis em um documento mestre. + +Tem dúvidas sobre escalar isso para milhares de arquivos ou integrá‑lo a uma API ASP.NET? Deixe um comentário abaixo ou me chame no GitHub — feliz codificação! + +![Exemplo de PDF pesquisável](/images/searchable-pdf.png "Exemplo de PDF pesquisável") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/portuguese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..83935cf46 --- /dev/null +++ b/ocr/portuguese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: Extraia texto de imagem usando Aspose OCR em C#. Aprenda como carregar + a imagem para OCR e reconhecer texto de arquivos TIFF com suporte a GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: pt +og_description: Extrair texto de imagem com Aspose OCR em C#. Este tutorial mostra + como carregar a imagem para OCR e reconhecer texto de TIFF usando aceleração GPU. +og_title: Extrair texto de imagem em C# – Guia completo de OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Extrair Texto de Imagem em C# – Guia Completo de OCR +url: /pt/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair Texto de Imagem em C# – Guia Completo de OCR + +Já precisou **extrair texto de imagem** mas não tinha certeza de qual biblioteca lidaria com um TIFF gigantesco sem travar? Você não está sozinho. Em muitos projetos reais — pense em digitalização de notas fiscais ou arquivamento de livros escaneados — a capacidade de carregar a imagem para OCR e então reconhecer texto de um TIFF rapidamente se torna um recurso decisivo. + +Neste guia vamos percorrer uma solução prática que faz exatamente isso usando Aspose OCR para .NET. Ao final, você terá um aplicativo console C# executável que carrega um escaneamento de alta resolução, dispara o processamento acelerado por GPU (com fallback elegante) e gera o resultado em texto simples. Sem peças faltando, sem “veja a documentação” que não leva a nada. + +## O que você precisará + +- **.NET 6 ou superior** (o código compila com qualquer SDK recente) +- **Aspose.OCR para .NET** pacote NuGet + `dotnet add package Aspose.OCR` +- Um **TIFF grande** ou qualquer outro formato de imagem que você queira fazer OCR + (o exemplo usa `large_scan.tif`) +- (Opcional) Uma GPU que suporte CUDA 11+ – se você não tiver, a biblioteca mudará automaticamente para modo CPU. + +É só isso. Vamos começar. + +![Extract text from image using Aspose OCR in C#](image-placeholder.png "Extract text from image using Aspose OCR in C#") + +## Etapa 1: Extrair Texto de Imagem – Inicializar o Motor OCR + +Antes que qualquer imagem possa ser processada, você precisa de uma instância `OcrEngine`. O motor contém todas as configurações que controlam como o reconhecimento é executado. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Por que isso importa:** +`ProcessingMode.Gpu` pode reduzir segundos do tempo de reconhecimento em uma placa moderna, mas definir `ProcessingMode.Auto` (ou deixar o padrão) é mais seguro para ambientes onde a GPU pode estar ausente. A proteção `GpuMemoryLimit` é uma dica prática — sem ela, uma imagem enorme poderia monopolizar toda a VRAM e fazer outros aplicativos travarem. + +## Etapa 2: Carregar Imagem para OCR – Trazer o TIFF para a Memória + +Agora que o motor está pronto, precisamos alimentá‑lo com a imagem que queremos analisar. Aspose fornece `ImageStream.FromFile`, que abstrai o tratamento de formatos. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**O que está acontecendo nos bastidores?** +`ImageStream.FromFile` lê o arquivo para um stream e detecta automaticamente o formato da imagem (TIFF, PNG, JPEG, etc.). Se você estiver lidando com TIFFs de múltiplas páginas, Aspose tratará cada página como um quadro separado; você pode iterar sobre eles depois, se necessário. + +## Etapa 3: Reconhecer Texto do TIFF – Executar o Motor OCR + +Com a imagem carregada, começa o trabalho pesado. O método `Recognize` devolve um objeto `OcrResult` que contém o texto extraído e alguns campos de metadados úteis. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Por que chamar `Recognize` apenas uma vez?** +Porque o motor cacheia estruturas internas após a primeira execução, e uma única chamada basta na maioria dos cenários. Se precisar processar muitas páginas, reutilize a mesma instância `OcrEngine` — isso evita a sobrecarga de reinicializar contextos de GPU. + +## Etapa 4: Exibir o Resultado – Mostrar o Texto Extraído + +Por fim, enviamos a string reconhecida para o console. Em uma aplicação real, você provavelmente gravaria isso em um banco de dados ou em um arquivo. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Saída esperada:** +Se `large_scan.tif` contiver uma nota fiscal impressa, você verá algo como: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +O layout exato depende da imagem fonte, mas o ponto principal é que agora você tem resultados de **extrair texto de imagem** prontos para processamento posterior. + +## Etapa 5: Solução de Problemas & Casos de Borda + +### GPU não detectada? + +Se você executar o exemplo em uma máquina sem GPU compatível, o motor recairá silenciosamente para CPU quando usar `ProcessingMode.Auto`. Para forçar o modo CPU explicitamente, substitua a linha anterior por: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFFs que consomem muita memória + +Escaneamentos muito grandes (por exemplo, 10 000 × 10 000 px) ainda podem ultrapassar o limite de 1 GB de GPU que definimos. Nesse caso, aumente `GpuMemoryLimit` (se houver VRAM disponível) ou reduza a escala da imagem antes de enviá‑la ao motor: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Documentos de múltiplas páginas + +Se o seu TIFF contiver várias páginas, itere sobre elas: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Suporte a Idiomas & Fontes + +Aspose OCR detecta automaticamente scripts baseados em latim, mas para cirílico, árabe ou fontes personalizadas pode ser necessário fornecer um pacote de idioma: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Dicas Profissionais & Melhores Práticas + +- **Reutilize o motor**: Criar um novo `OcrEngine` por imagem adiciona latência perceptível. +- **Processamento em lote**: Ao lidar com dezenas de TIFFs, enfileire‑os e processe em threads paralelas — apenas fique atento à contenção de memória da GPU. +- **Valide a saída**: OCR não é perfeito; execute uma verificação ortográfica simples ou validação por regex em `ocrResult.Text` para capturar erros óbvios. +- **Registre desempenho**: Meça o tempo decorrido com `Stopwatch` antes e depois de `Recognize` para decidir se a aceleração por GPU vale a configuração extra no seu ambiente. + +## Conclusão + +Agora você tem um exemplo completo, de ponta a ponta, que **extrai texto de imagem** usando Aspose OCR em C#. Ao carregar a imagem para OCR, invocar o motor para reconhecer texto de TIFF e lidar com cenários de GPU vs. CPU, este tutorial fornece uma base pronta para produção que pode ser adaptada a notas fiscais, passaportes ou qualquer documento escaneado. + +Qual o próximo passo? Experimente trocar o TIFF por um PDF de múltiplas páginas, teste pacotes de idioma personalizados ou direcione a saída para um pipeline de processamento de linguagem natural para extração automática de dados. O céu é o limite — 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/portuguese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..a47f6f74e --- /dev/null +++ b/ocr/portuguese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Extraia texto de arquivos TIFF usando o processamento em lote do Aspose + OCR em C#. Aprenda como processar OCR em lote de forma eficiente e obter feedback + de progresso em tempo real. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: pt +og_description: Extraia texto de arquivos TIFF usando o processamento em lote de OCR + da Aspose em C#. Este tutorial mostra passo a passo como processar OCR em lote e + ler o progresso. +og_title: Extrair texto de TIFF com OCR em lote em C# – Guia completo +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extrair Texto de TIFF com OCR em Lote no C# – Guia Completo +url: /pt/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair Texto de TIFF – Guia Completo de OCR em Lote + +Já precisou **extrair texto de TIFF** arquivos, mas ficou preso na parte de processamento em lote? Você não está sozinho. Em muitos projetos de automação de documentos, lidar com dezenas de imagens TIF de alta resolução pode rapidamente se tornar um gargalo — especialmente quando você deseja feedback ao vivo sobre o progresso. + +A boa notícia? Com Aspose OCR você pode **process batch OCR** em poucas linhas, obter eventos de progresso em tempo real e gerar o texto reconhecido para cada imagem. Neste tutorial, vamos percorrer um aplicativo console C# pronto‑para‑executar que faz exatamente isso. + +Cobriremos tudo o que você precisa saber: pacotes necessários, por que cada linha importa, casos extremos como arquivos ausentes e como verificar os resultados. Ao final, você poderá inserir o exemplo em sua própria solução e começar a extrair texto de imagens TIFF imediatamente. + +## O que você precisará + +- **.NET 6 ou posterior** (o código também compila com .NET Core) +- **Aspose.OCR for .NET** pacote NuGet – `Install-Package Aspose.OCR` +- Uma pasta contendo algumas imagens **TIFF** que você deseja ler (a demonstração usa `img1.tif`, `img2.tif`, `img3.tif`) +- Qualquer IDE que você prefira – Visual Studio, Rider ou VS Code serve + +Nenhuma configuração extra é necessária; a biblioteca vem com seu próprio motor OCR, então você não precisará instalar binários nativos externos. + +--- + +## Etapa 1 – Criar a Instância do Motor OCR + +A primeira coisa que você faz é iniciar um `OcrEngine`. Pense nele como o cérebro que analisará cada pixel e o transformará em caracteres. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por que isso importa:** +> O motor contém modelos de linguagem internos e configurações (ex.: DPI, idioma). Criá‑lo uma única vez e reutilizá‑lo para um lote é muito mais eficiente do que instanciar um novo motor por imagem. + +--- + +## Etapa 2 – Conectar Eventos de Progresso em Tempo Real + +Se você está processando dezenas de arquivos TIFF, um indicador de progresso pode evitar que você se pergunte se o aplicativo está travado. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +O evento `ProgressChanged` dispara após a conclusão de cada imagem, fornecendo `Current`, `Total` e `Percentage`. Este é o loop de feedback **process batch OCR** que a maioria dos desenvolvedores esquece de implementar. + +--- + +## Etapa 3 – Construir uma Lista de Fluxos de Imagem + +Aspose.OCR trabalha com objetos `ImageStream`. A maneira mais fácil é carregar cada TIFF do disco. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Dica:** +> Se você tem uma pasta dinâmica, substitua a lista codificada por `Directory.GetFiles(path, "*.tif")` e `Select(ImageStream.FromFile)` – assim você realmente **process batch OCR** sem atualizações manuais. + +--- + +## Etapa 4 – Executar o Processo de OCR em Lote + +Agora o trabalho pesado acontece. `ProcessBatch` retorna uma lista somente‑leitura de objetos `OcrResult`, cada um contendo o texto extraído e as pontuações de confiança. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Por que isso é eficiente:** +> O motor reutiliza o mesmo modelo de linguagem em todas as imagens, reduzindo drasticamente o consumo de memória em comparação com chamadas de imagem única. + +--- + +## Etapa 5 – Exibir ou Armazenar o Texto Reconhecido + +Finalmente, itere sobre os resultados. Em um projeto real você pode gravá‑los em um banco de dados ou em um arquivo JSON, mas para esta demonstração apenas imprimiremos no console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Saída esperada no console** (truncada para brevidade): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Se alguma imagem falhar, `result.Text` será uma string vazia, e o evento `ProgressChanged` ainda reportará o item como processado — assim você pode registrar falhas separadamente. + +--- + +## O Manipulador de Evento de Progresso (Código Completo) + +Coloque este método em qualquer lugar dentro da classe `BatchDemo` — de preferência após o `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Dica profissional:** +> Redirecione esta saída para uma barra de progresso UI se você estiver construindo um aplicativo desktop; o mesmo evento funciona para WinForms, WPF ou até notificações ASP.NET Core SignalR. + +--- + +## Exemplo Completo, Pronto‑para‑Executar + +Juntando tudo, aqui está o programa completo que você pode copiar‑colar em um novo projeto console. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Salve o arquivo como `Program.cs`, execute `dotnet add package Aspose.OCR`, substitua `YOUR_DIRECTORY` pelo caminho real e pressione **Ctrl+F5**. Você deverá ver números de progresso seguidos pelo texto extraído para cada TIFF. + +--- + +## Tratamento de Casos Limite Comuns + +| Situação | O que observar | Correção rápida | +|-----------|-------------------|-----------| +| **TIFF ausente ou corrompido** | `ImageStream.FromFile` lança `FileNotFoundException` ou `ArgumentException`. | Envolva a criação da lista em um `try/catch` e ignore arquivos inválidos, registrando o problema. | +| **Imagens muito grandes ( >10 MP )** | OCR pode consumir muita RAM e ficar lento. | Reduza o DPI antes do processamento: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Texto não‑inglês** | O modelo de idioma padrão é inglês. | Defina `ocrEngine.Language = Language.Spanish;` (ou qualquer idioma suportado). | +| **Necessidade de salvar resultados** | A saída do console não é persistente. | Escreva `result.Text` em um arquivo `.txt` usando `File.WriteAllText`. | + +Abordar esses cenários torna sua solução robusta e demonstra que você pensou além do caminho feliz. + +--- + +## Próximos Passos e Tópicos Relacionados + +- **Extrair texto de PDF** – API similar, basta substituir `ImageStream` por `PdfDocument`. +- **OCR em lote paralelo** – para cargas de trabalho massivas, crie múltiplas instâncias de `OcrEngine` em threads separadas; lembre‑se de respeitar os limites de licenciamento. +- **Pós‑processamento** – execute a saída do OCR por um corretor ortográfico ou regex para limpar artefatos comuns de OCR. + +Todas essas extensões ainda se baseiam na ideia central de **process batch OCR** e podem ser adicionadas incrementalmente. + +--- + +## Conclusão + +Acabamos de demonstrar como **extrair texto de TIFF** arquivos de forma eficiente usando **process batch OCR** com Aspose OCR em C#. O exemplo cria um único motor, inscreve‑se em eventos de progresso, carrega uma lista de fluxos de imagem, executa o lote e imprime cada resultado. + +A partir daqui você pode integrar a saída em bancos de dados, gerar PDFs pesquisáveis ou alimentar o texto em pipelines de NLP subsequentes. O céu é o limite — experimente configurações de idioma, ajustes de DPI e execução paralela para adequar ao seu volume de trabalho específico. + +Tem perguntas ou quer compartilhar como personalizou o lote? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/portuguese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..e924abc6c --- /dev/null +++ b/ocr/portuguese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Aprenda como reconhecer texto de PNG e extrair texto de imagem em C# + usando Aspose OCR. Inclui etapas de carregamento de arquivo de imagem em C#, verificação + ortográfica e código completo. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: pt +og_description: Reconheça texto de PNG facilmente com C#. Siga este guia passo a passo + para carregar um arquivo de imagem em C#, extrair texto da imagem em C# e executar + a verificação ortográfica. +og_title: reconhecer texto de png em C# – Tutorial completo de OCR +tags: +- OCR +- C# +- Aspose +title: Reconhecer texto de PNG em C# – Guia completo de OCR e verificação ortográfica +url: /pt/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconhecer texto de png – Tutorial Completo de OCR e Verificação Ortográfica em C# + +Já precisou **reconhecer texto de arquivos png** mas não sabia qual biblioteca escolher? Você não está sozinho; muitos desenvolvedores encontram essa barreira ao primeiro contato com extração de dados baseada em imagens. A boa notícia? Com o Aspose OCR você pode carregar um arquivo de imagem em C#, extrair o texto e ainda executar um corretor ortográfico embutido — tudo em poucas linhas. + +Neste guia vamos percorrer todo o processo: carregar o PNG, chamar o motor de OCR e, por fim, verificar palavras incorretas. Ao final, você será capaz de **extrair texto de imagem C#** em projetos sem precisar vasculhar documentação espalhada. Não é necessário ter experiência prévia com OCR, apenas um ambiente de desenvolvimento .NET. + +## O que você vai precisar + +- **.NET 6.0** (ou qualquer versão recente do .NET) – a API funciona da mesma forma em .NET Core e Framework. +- **Aspose.OCR for .NET** pacote NuGet – instale-o via `dotnet add package Aspose.OCR`. +- Uma **imagem PNG** que contenha texto legível (por exemplo, `letter.png` colocado em uma pasta que você controla). +- Um editor de código ou IDE (Visual Studio, VS Code, Rider — escolha o que preferir). + +É só isso. Sem motores OCR adicionais, sem DLLs nativas, apenas um pacote gerenciado limpo. + +--- + +## Etapa 1: Carregar o arquivo de imagem PNG em C# + +Antes que o motor de OCR faça qualquer coisa, ele precisa de um stream que aponte para a imagem. Aspose fornece `ImageStream.FromFile`, que abstrai os detalhes do sistema de arquivos. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Dica profissional:** Se sua imagem estiver incorporada como recurso ou vier de uma requisição web, você pode usar `ImageStream.FromBytes(byte[])` — sem precisar tocar no sistema de arquivos. + +### Por que o carregamento importa + +Carregar a imagem corretamente garante que o motor de OCR receba os dados de pixel exatos que ele espera. Um stream corrompido fará com que `Recognize` lance exceção, e você perderá tempo depurando depois. + +--- + +## Etapa 2: Inicializar o Motor de OCR + +Criar uma instância de `OcrEngine` é barato, mas você pode querer ajustar idioma ou configurações de precisão para casos de uso específicos (por exemplo, documentos multilíngues). O construtor padrão funciona bem para texto em inglês. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Por que uma instância do motor? + +O motor mantém a configuração (idioma, filtros de pré‑processamento, etc.). Ao separar a configuração da imagem, você pode reutilizar o mesmo motor para vários arquivos — ótimo para processamento em lote. + +--- + +## Etapa 3: Reconhecer Texto do PNG + +Agora a mágica acontece. `Recognize` retorna um objeto `OcrResult` que contém a string bruta, pontuações de confiança e mais. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Saída esperada** (supondo que `letter.png` contenha “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Se a imagem contiver várias linhas, o resultado preserva quebras de linha, facilitando o processamento posterior. + +### Caso extremo: PNGs de baixa resolução + +Se o resultado do OCR aparecer confuso, considere ampliar a imagem ou ajustar `ocrEngine.PreprocessingOptions`. Imagens com DPI baixo costumam perder detalhes que o motor utiliza. + +--- + +## Etapa 4: Executar o Verificador Ortográfico Embutido + +Aspose OCR inclui um módulo de verificação ortográfica leve que funciona diretamente no resultado do OCR. Esta etapa ajuda a capturar reconhecimentos errados como “H3llo” ao invés de “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Exemplo de saída** (se o OCR leu “World” como “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Por que fazer verificação ortográfica? + +OCR nunca é 100 % perfeito, especialmente com fundos ruidosos. Uma verificação rápida pode filtrar erros óbvios antes de enviar o texto para análises ou bancos de dados posteriores. + +--- + +## Etapa 5: Juntar Tudo – Exemplo Completo Funcional + +Abaixo está o programa completo, pronto para ser executado. Copie‑e‑cole em um novo projeto de console, ajuste o caminho da imagem e pressione **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Executar a demonstração** imprime o texto reconhecido seguido de quaisquer sugestões de ortografia. Funciona em qualquer PNG que contenha texto impresso claro em inglês. Para outros idiomas, basta definir `ocrEngine.Language` de acordo. + +--- + +## Perguntas Frequentes & Armadilhas + +| Pergunta | Resposta | +|----------|----------| +| *Posso processar arquivos JPEG ou BMP?* | Absolutamente — `ImageStream.FromFile` aceita qualquer formato suportado pelo Aspose (PNG, JPEG, BMP, TIFF). | +| *E se a imagem estiver em um stream de memória?* | Use `ImageStream.FromBytes(byteArray)` ou `ImageStream.FromStream(stream)`. | +| *O verificador ortográfico reconhece idioma?* | Sim, ele respeita o idioma definido no motor de OCR. | +| *Como melhorar a precisão em imagens inclinadas?* | Ative `ocrEngine.PreprocessingOptions.Deskew = true;` antes de chamar `Recognize`. | +| *Preciso de licença para o Aspose.OCR?* | Um teste gratuito funciona para até 100 páginas. Para produção, obtenha uma licença para remover marcas d'água. | + +--- + +## Próximos Passos – Indo Além do OCR Básico + +Agora que você pode **reconhecer texto de png** e **extrair texto de imagem C#**, considere estas extensões: + +1. **Processamento em lote** – Percorra um diretório de PNGs e grave cada resultado OCR em um arquivo `.txt` separado. +2. **Integração com Azure Cognitive Services** – Combine o Aspose OCR com APIs de tradução baseadas em nuvem para pipelines multilíngues. +3. **Extração de dados estruturados** – Use expressões regulares em `recognizedText` para obter datas, números de nota fiscal ou endereços. +4. **Ajuste de desempenho** — Para grandes volumes, reutilize uma única instância de `OcrEngine` e habilite multithreading. + +Cada uma dessas ideias se baseia nos passos centrais que cobrimos, permitindo transformar uma simples imagem em dados acionáveis. + +--- + +## Conclusão + +Percorremos um exemplo completo, de ponta a ponta, que demonstra como **reconhecer texto de png** em C#, **carregar arquivo de imagem C#** corretamente e, em seguida, **extrair texto de imagem C#** enquanto corrigimos erros ortográficos. O código é autocontido, as explicações cobrem tanto o “como” quanto o “por quê”, e agora você tem uma base sólida para qualquer recurso orientado a OCR que precisar. + +Experimente, ajuste as opções de pré‑processamento e veja o quão limpo seu texto extraído pode ficar. Se encontrar alguma particularidade, deixe um comentário abaixo — 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/russian/net/ocr-configuration/_index.md b/ocr/russian/net/ocr-configuration/_index.md index 2a0ac8c03..6171d2483 100644 --- a/ocr/russian/net/ocr-configuration/_index.md +++ b/ocr/russian/net/ocr-configuration/_index.md @@ -21,7 +21,7 @@ weight: 24 Если вы ищете **как извлечь данные OCR** ​​из изображений в ваших проектах .NET, вы найдете это в нужном месте. Aspose.OCR для .NET выполняет распознавание изображений OCR простым, быстрым и высоконастраиваемым. В этом руководстве мы предлагаем основные схемы построения — работу с архивами, папками, выбор языка и обработку на основе списков — чтобы вы могли уверенно получать текст из изображений. ## Быстрые ответы -- **Что означает «как извлечь OCR»?** Это использование OCR‑движки для чтения и преобразования текста, находящегося на изображении, в редактируемых строках. +- **Что означает «как извлечь OCR»?** Это использование OCR‑движка для чтения и преобразования текста, находящегося на изображении, в редактируемых строках. - **Какая библиотека рекомендуется для .NET?** Aspose.OCR Обеспечивает богатый API для поиска изображений OCR без внешних зависимостей. - **Нужна ли мне лицензия?** Бесплатная пробная версия подходит для измерений; для использования в продаже требуется коммерческая лицензия. - **Какие версии .NET поддерживаются?** .NET Framework4.5+, .NETCore3.1+, .NET5/6/7+. @@ -62,6 +62,8 @@ weight: 24 Откройте мощные возможности OCR с Aspose.OCR для .NET. Бесшовно извлеките текст из изображений. ### [OCROоперация со списком в распознавании изображений OCR](./ocr-operation-with-list/) Расширьте потенциал Aspose.OCR для .NET. Легко выполняйте распознавание изображений OCR со списками. Повышайте продуктивность и извлечение данных в ваших приложениях. +### [Как отключить OCR в C# – Офлайн руководство по Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Пошаговое руководство по отключению OCR в приложениях C# без подключения к сети, используя Aspose OCR. ### Распространенные случаи использования - **Извлечение текстовых изображений** из отсканированных счетов для автоматического бухгалтерского учета. @@ -102,4 +104,4 @@ A: Да, объект `OcrResult` обеспечивает значения до {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/russian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..aad53b9d0 --- /dev/null +++ b/ocr/russian/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,169 @@ +--- +category: general +date: 2026-04-11 +description: Узнайте, как отключить OCR в Aspose OCR для C#, чтобы работать офлайн, + извлекать текст из изображения без интернета и правильно загружать изображение для + OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: ru +og_description: Как отключить OCR в Aspose OCR для C#, запускать его офлайн, извлекать + текст из изображения без доступа к интернету и легко загружать изображение для OCR. +og_title: Как отключить OCR в C# – Руководство по офлайн OCR от Aspose +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Как отключить OCR в C# — Руководство по офлайн‑использованию Aspose OCR +url: /ru/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как отключить OCR в C# – Руководство по офлайн Aspose OCR + +Когда‑то задавались вопросом **как отключить OCR**, если нужен полностью офлайн‑решение? Возможно, вы создаёте защищённое настольное приложение, которое не может полагаться на сетевое соединение, или просто хотите избежать неожиданных загрузок. В любом случае хорошая новость в том, что Aspose OCR позволяет выключить автоматическое получение ресурсов, указать локальную папку и держать всё на‑premises. В этом руководстве вы также увидите, как **извлекать текст из изображения** и правильно **загружать изображение для OCR** без проблем. + +Мы пройдём через полностью готовый к запуску пример, показывающий каждый шаг — от инициализации движка до вывода распознанного японского текста. Никакой внешней документации, никакой скрытой магии; просто чистый C#‑код, который вы можете вставить в свой проект уже сегодня. К концу вы поймёте, почему важно отключать функцию авто‑загрузки, как задать путь к ресурсам и какие подводные камни могут возникнуть. + +## Требования + +- .NET 6.0 (или любая современная версия .NET), установленная на вашем компьютере. +- NuGet‑пакет Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Папка, уже содержащая необходимые языковые ресурсы (например, японскую модель). +- Файл изображения (`japan_doc.png`), к которому вы хотите применить OCR. + +Если у вас нет языковых пакетов, скачайте их один раз с портала Aspose, распакуйте в папку, например `AsposeOCRResources`, и всё готово. После отключения авто‑загрузки дальнейших загрузок не будет. + +![Как отключить OCR офлайн](/images/how-to-disable-ocr.png "иллюстрация как отключить OCR") + +## Шаг 1 – Создание экземпляра OCR Engine + +Первое, что нужно сделать, — создать объект `OcrEngine`. Представьте его как мозг, который будет читать ваше изображение. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Почему это важно:** Без движка вы не сможете ничего настроить. Объект хранит все параметры, включая критически важный флаг, который указывает библиотеке, может ли она обращаться к интернету. + +## Шаг 2 – Отключение автоматической загрузки ресурсов + +По умолчанию Aspose OCR пытается «на лету» загрузить недостающие языковые файлы. Чтобы всё оставалось офлайн, переключите параметр `AutoDownloadResources` в `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Совет:** Отключение этой опции не только гарантирует конфиденциальность, но и ускоряет первый запуск распознавания, поскольку движок не будет тратить время на проверку обновлений. + +## Шаг 3 – Указание локальной папки с ресурсами + +Теперь сообщите движку, где находятся предварительно загруженные языковые пакеты. Это путь, который вы задали в разделе требований. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Что может пойти не так?** Если путь неверный или требуемый языковой файл отсутствует, движок бросит `ResourceNotFoundException`. Проверьте правильность написания папки и наличие японской модели (`jpn.traineddata`). + +## Шаг 4 – Выбор локальной языковой модели + +Укажите язык, который действительно есть у вас на диске. В нашем примере используется японский, но вы можете заменить `Language.Japanese` на любой другой загруженный язык. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Особый случай:** Некоторые языки требуют дополнительных словарей (например, китайский). Убедитесь, что эти вспомогательные файлы также находятся в той же папке ресурсов. + +## Шаг 5 – Загрузка изображения для OCR + +Здесь мы **загружаем изображение для OCR**. Метод `ImageStream.FromFile` читает файл в поток, который может обработать Aspose. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Подсказка:** Поддерживаемые форматы включают PNG, JPEG, BMP и TIFF. Если нужно работать с PDF, сначала преобразуйте каждую страницу в изображение. + +## Шаг 6 – Запуск процесса распознавания + +Теперь движок действительно читает пиксели и пытается превратить их в текст. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Почему этот шаг может быть медленным:** OCR требует значительных ресурсов процессора, особенно для изображений высокого разрешения. Если важна производительность, рассмотрите уменьшение масштаба изображения перед распознаванием. + +## Шаг 7 – Вывод извлечённого текста + +Наконец, мы **извлекаем текст из изображения** и выводим его в консоль. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Запуск программы должен отобразить японские символы, находившиеся в `japan_doc.png`. Если всё настроено правильно, вы увидите чистый блок Unicode‑текста в консоли. + +### Ожидаемый вывод + +``` +これはサンプルの日本語テキストです。 +``` + +(Ваш реальный вывод будет зависеть от содержимого изображения.) + +## Распространённые проблемы и способы их избежать + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| **Отсутствует языковой файл** | `AutoDownloadResources` отключён, поэтому движок не может его загрузить. | Убедитесь, что `ResourcesPath` указывает на папку, содержащую `jpn.traineddata`. | +| **Неправильный путь к изображению** | `ImageStream.FromFile` бросает `FileNotFoundException`. | Используйте абсолютные пути или убедитесь, что рабочая директория задана корректно. | +| **Неподдерживаемый формат изображения** | Aspose читает только определённые форматы. | Преобразуйте изображение в PNG или JPEG перед вызовом `FromFile`. | +| **Недостаток памяти при больших изображениях** | OCR загружает всё изображение в память. | Уменьшите размер или разбейте изображение на части, либо увеличьте лимит памяти процесса. | + +## Расширение примера + +- **Пакетная обработка:** Пройдитесь по каталогу изображений, вызывайте тот же код распознавания и сохраняйте каждый результат в отдельный файл `.txt`. +- **Другие языки:** Замените `Language.Japanese` на `Language.English` (или любой другой) после размещения соответствующих файлов ресурсов. +- **Пользовательская предобработка:** Используйте Aspose.Imaging для исправления наклона или улучшения контрастности перед OCR, чтобы повысить точность. + +## Заключение + +Теперь вы знаете **как отключить OCR** в Aspose OCR для C# и полностью запустить его в офлайн‑режиме. Установив `AutoDownloadResources` в `false`, указав движку локальную папку с ресурсами и правильно **загрузив изображение для OCR**, вы сможете надёжно **извлекать текст из изображения** без какого‑либо обращения к интернету. Такой подход идеален для защищённых сред, CI‑конвейеров или любых сценариев, где сетевой доступ ограничен. + +Готовы к следующему шагу? Попробуйте обработать целую папку отсканированных PDF, поэкспериментируйте с разными языковыми пакетами или интегрируйте результат OCR в поисковую базу данных. Офлайн‑настройка, которую вы создали сегодня, станет надёжным фундаментом для любой on‑premises системы обработки документов. + +Удачной разработки, и не стесняйтесь оставлять комментарии, если столкнётесь с трудностями! + +{{< /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 64f6e406b..8e307465f 100644 --- a/ocr/russian/net/ocr-optimization/_index.md +++ b/ocr/russian/net/ocr-optimization/_index.md @@ -74,6 +74,9 @@ weight: 25 ### [Сохранение многостраничных результатов как документ в распознавании OCR](./save-multipage-result-as-document/) Раскройте потенциал Aspose.OCR для .NET. Легко сохраняйте многостраничные результаты OCR в виде документов с помощью этого всестороннего пошагового руководства. +### [Как улучшить точность OCR в C# с Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Узнайте, как повысить точность распознавания текста в C# с помощью Aspose OCR, используя предобработку и настройки. + ## Часто задаваемые вопросы **Q: Могу ли я извлекать текст из файлов изображений, содержащих несколько языков?** diff --git a/ocr/russian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/russian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..b950ebdda --- /dev/null +++ b/ocr/russian/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Узнайте, как улучшить OCR в C#, распознавая текст из JPG, исправляя наклон + изображений и удаляя шум с помощью Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: ru +og_description: Узнайте, как улучшить OCR, распознавая текст из JPG, исправляя наклон + изображений и удаляя шум — полный гид по C#. +og_title: Как повысить точность OCR в C# с помощью Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Как улучшить точность OCR в C# с помощью Aspose OCR +url: /ru/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как улучшить точность OCR в C# с Aspose OCR + +Когда‑нибудь задавались вопросом **how to improve OCR**, когда ваши сканы выглядят скорее как абстрактное искусство, чем читаемый текст? Вы не одиноки. Во многих реальных проектах — счета, чеки или рукописные заметки — исходные изображения часто наклонены, зернисты или просто шумные. Хорошая новость? Aspose OCR предоставляет несколько параметров предобработки, которые могут превратить этот беспорядок в чистые, машинно‑читаемые символы. В этом руководстве мы пройдем через полностью готовый пример, показывающий **how to improve OCR** с помощью **recognize text from JPG**, выравнивания изображения и удаления нежелательного шума. + +> *Pro tip:* Если пропустить предобработку, вы, скорее всего, получите искажённый вывод, похожий на загадочный кроссворд. Давайте этого избегать. + +![Как улучшить OCR с предобработкой Aspose OCR](https://example.com/ocr-preprocess.png "как улучшить OCR с Aspose OCR") + +## Что вы узнаете + +В течение нескольких минут вы увидите: + +1. Как настроить движок Aspose OCR для оптимальной точности. +2. Точный код, необходимый для **recognize text from JPG** файлов. +3. Почему включение *AutoDeskew* и *RemoveNoise* важно и как их настроить. +4. Как **extract text from image** файлы без написания собственного фильтра. +5. Распространённые подводные камни (отсутствующий файл, неподдерживаемый формат) и быстрые решения. + +К концу вы получите одно консольное приложение C#, которое может взять любой JPG, очистить его и вывести извлечённую строку — готовую для дальнейшей обработки или хранения. + +## Предварительные требования + +- .NET 6.0 SDK или новее (пример использует top‑level statements для краткости). +- NuGet‑пакет Aspose.OCR (`dotnet add package Aspose.OCR`). +- Пример изображения JPG (названный `input.jpg`), размещённый в той же папке, что и исполняемый файл. +- Базовое знакомство с C# — продвинутые концепции не требуются. + +Если у вас уже есть проект, просто вставьте код; иначе создайте новое консольное приложение: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Теперь давайте погрузимся в код. + +## Как улучшить OCR: Обзор настроек предобработки + +Суть **how to improve OCR** заключается в объекте `PreprocessSettings`. Представьте его как мини‑редактор изображений, который работает *до* запуска самого движка распознавания символов. Ниже быстрый обзор самых влиятельных флагов: + +| Настройка | Что делает | Типичный случай использования | +|------------------------|----------------------------------------------------------|--------------------------------| +| `AutoDeskew` | Применяет алгоритм выравнивания на основе глубокого обучения. | Отсканированные страницы, слегка наклонённые. | +| `AdaptiveThreshold` | Повышает контраст в условиях низкой освещённости или выцветших изображений. | Старые чеки с вымытым чернилами. | +| `RemoveNoise` | Применяет фильтр Гауссового размытия для подавления пятен. | Фотографии, сделанные со вспышкой смартфона. | +| `NoiseRemovalStrength`| Контролирует агрессивность (1 = низкая, 3 = высокая). | Точная настройка в зависимости от зернистости исходного изображения. | + +Включение этих опций — по сути «секретный соус» для **how to improve OCR** на несовершенных входных данных. + +## Распознавание текста из JPG с Aspose OCR + +Ниже полностью готовая к запуску программа. Каждая строка аннотирована, чтобы вы видели *почему* она нужна, а не только *что* она делает. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Ожидаемый вывод + +Если `input.jpg` содержит фразу “Invoice #12345 – Total: $256.78”, консоль выведет: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Обратите внимание, что вывод чистый, тире и знак доллара сохранены — именно то, чего вы ожидаете при **extracting text from image** файлах. + +## Как выровнять изображение с помощью настроек предобработки + +Почему выравнивание важно? Даже наклон в 2 градуса может сбить с толку этап сегментации символов, приводя к ошибочным буквам. Флаг `AutoDeskew` запускает сверточную нейронную сеть, которая определяет доминирующий угол и вращает изображение обратно к базовой линии. + +Если нужен больший контроль, можно задать угол вручную: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **When to use manual deskew:** Если вы знаете, что камера постоянно наклоняет изображения на фиксированный угол (например, установленный сканер), жёстко задав угол, вы сэкономите небольшое количество времени обработки. + +## Как удалить шум для более чистого извлечения + +Шум проявляется в виде случайных пятен или зернистости, особенно на снимках при плохом освещении. Флаг `RemoveNoise` применяет билинейный фильтр, который сглаживает фон, сохраняя края (самые символы). Свойство `NoiseRemovalStrength` позволяет регулировать агрессивность: + +| Сила | Эффект | +|------|--------| +| 1 | Лёгкое сглаживание — подходит для слегка зернистых изображений. | +| 2 | Сбалансированное — работает для большинства снимков со смартфона. | +| 3 | Сильное сглаживание — используйте, когда изображение крайне шумное, но будьте осторожны, чтобы не размыть тонкие штрихи. | + +Если после сильного сглаживания мелкий шрифт становится нечитаемым, просто уменьшите силу или полностью отключите фильтр. + +## Извлечение текста из изображения: не только JPG + +Хотя наша демонстрация сосредоточена на JPG, Aspose OCR поддерживает PNG, BMP, TIFF и даже страницы PDF. Чтобы **extract text from image** форматы, отличные от JPG, просто измените расширение файла в `ImageStream.FromFile`. Для многополосных TIFF можно перебрать каждую страницу: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Этот фрагмент показывает, как масштабировать тот же **how to improve OCR** процесс для пакетной обработки целой стопки отсканированных документов. + +## Распространённые подводные камни и способы их устранения + +| Симптом | Вероятная причина | Быстрое решение | +|------------------------|---------------------------------------------------------------|-----------------| +| Пустой вывод | Изображение полностью белое после предобработки (слишком агрессивный порог) | Уменьшить `NoiseRemovalStrength` или установить `AdaptiveThreshold = false`. | +| Искажённые символы | Неправильная языковая модель (по умолчанию English) | Установить `ocrEngine.Settings.Language = Language.English;` или загрузить пользовательский языковой пакет. | +| Сбой при больших файлах| Недостаток памяти из‑за изображения высокого разрешения | Снизить разрешение с помощью `ocrEngine.Settings.ImageResizeFactor = 0.5;` перед распознаванием. | +| Нет вывода для повернутых сканов | `AutoDeskew` случайно отключён | Включить `AutoDeskew = true` или задать правильный `DeskewAngle`. | + +Учёт этих моментов сэкономит часы отладки, когда вы пытаетесь **how to improve OCR** в производственных конвейерах. + +## Бонус: Настройка скорости vs. точности + +Если вы обрабатываете тысячи чеков в день, возможно, вам важнее скорость. Отключите `AdaptiveThreshold` и установите `NoiseRemovalStrength = 1`. С другой стороны, для юридических документов, где одна пропущенная буква может стоить дорого, оставьте все флаги включёнными и рассмотрите увеличение `NoiseRemovalStrength` до 3. + +## Итоги + +Мы прошли весь путь **how to improve OCR** в C# с использованием Aspose OCR: от создания движка, настройки предобработки (ключевой элемент *how to deskew image* и *how to remove noise*), загрузки JPG, распознавания текста и обработки граничных случаев. Код автономный, работает «из коробки» и демонстрирует точные шаги, необходимые для **recognize text from jpg** и **extract text from image** файлов. + +### Что дальше? + +- Поэкспериментировать с другими форматами изображений (PNG, TIFF), чтобы увидеть, как работают те же настройки. +- Интегрировать вывод 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/_index.md b/ocr/russian/net/text-recognition/_index.md index cbc7a99c9..c4e75f2e7 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,19 @@ url: /ru/net/text-recognition/ Раскройте потенциал оптического распознавания символов в .NET с помощью Aspose.OCR. Извлекайте текст из PDF-файлов без особых усилий. Загрузите сейчас и получите беспрепятственную интеграцию. ### [Распознать таблицу в распознавании изображений OCR](./recognize-table/) Раскройте потенциал Aspose.OCR для .NET с помощью нашего подробного руководства по распознаванию таблиц в распознавании изображений OCR. +### [Извлечение текста из изображения на C# – Полное руководство по OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Полное руководство по извлечению текста из изображений в C# с использованием Aspose.OCR, включая настройку и примеры кода. +### [Извлечение текста из TIFF с пакетным OCR в C# – Полное руководство](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Полное руководство по извлечению текста из файлов TIFF с использованием пакетного OCR в C# с Aspose.OCR. +### [Создать поисковый PDF в C# – Полное руководство](./create-searchable-pdf-in-c-complete-guide/) +Полное руководство по созданию поискового PDF в C# с использованием Aspose.OCR. +### [Распознать текст из PNG в C# – Полное руководство по OCR и проверке орфографии](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Полное руководство по извлечению текста из PNG‑изображений в C# с использованием Aspose.OCR и проверкой орфографии. +### [Преобразовать изображение в JSON – Руководство по OCR на C# для чеков](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Научитесь конвертировать изображения чеков в JSON с помощью 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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/russian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..c532aa9ff --- /dev/null +++ b/ocr/russian/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Преобразуйте изображение в JSON с помощью Aspose OCR Cloud на C#. Узнайте, + как распознавать текст, извлекать его из изображения и обрабатывать чек с помощью + OCR за считанные минуты. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: ru +og_description: Преобразуйте изображение в JSON с помощью Aspose OCR Cloud на C#. + Это руководство показывает, как распознавать текст, извлекать текст из изображения + и обрабатывать чек с помощью OCR. +og_title: Преобразование изображения в JSON – учебник по OCR на C# для чеков +tags: +- OCR +- C# +- Aspose +- JSON +title: Преобразование изображения в JSON – учебник по OCR на C# для чеков +url: /ru/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Преобразование изображения в JSON – C# OCR‑урок для чеков + +Когда‑нибудь вам нужно было **convert image to JSON**, но вы не знали, с чего начать? В этом руководстве мы проведём вас через полный, сквозной C# OCR‑урок, который берёт фото чека, распознаёт текст и выдаёт аккуратный JSON‑payload. + +Если вы когда‑нибудь задавались вопросом *how to recognize text* в отсканированном документе, или ищете быстрый способ **extract text from image** файлов, вы попали в нужное место. К концу этой статьи вы сможете **process receipt with OCR** и передать результат напрямую в ваши downstream API. + +## Что вам понадобится + +- .NET 6 SDK или новее (код также работает с .NET Core) +- Ключ Aspose Cloud API – вы можете получить бесплатную пробную версию на портале Aspose +- Пример изображения чека (`receipt.jpg`), сохранённый локально +- Ваш любимый IDE (Visual Studio, VS Code, Rider – любой подойдет) + +Никакие дополнительные пакеты NuGet, кроме официального клиента `Aspose.OCR.Cloud`, не требуются. Если SDK уже установлен, вы готовы к работе. + +## Шаг 1 – Convert Image to JSON: настройка OCR‑клиента + +Прежде всего, нам нужен экземпляр `CloudOcrClient`. Этот объект обрабатывает всю коммуникацию с сервисом OCR от Aspose и вернёт результат в формате JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Why this matters:** Инициализация клиента — это мост между вашим C# кодом и облачным OCR‑движком. Метод `RecognizeAsync` выполняет основную работу — загружает изображение, запускает OCR‑движок и возвращает строку JSON, содержащую распознанный текст, оценки уверенности и координаты ограничивающих рамок. + +> **Pro tip:** Храните ключ API в переменной окружения или в менеджере секретов вместо того, чтобы хардкодить его. Так вы избежите случайных утечек. + +## Шаг 2 – How to Recognize Text from the Receipt + +Теперь, когда клиент готов, давайте разберёмся в *how* распознавания текста. Aspose OCR поддерживает множество языков, но для большинства чеков английский работает отлично. Если нужен другой язык, просто замените `Language.English` на соответствующее значение enum. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**What’s happening under the hood?** Сервис использует модель глубокого обучения, которая обнаруживает символы, группирует их в слова, а затем собирает строки. Возвращаемый JSON выглядит примерно так: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Вы можете разобрать этот JSON с помощью `System.Text.Json` или `Newtonsoft.Json`, чтобы извлечь нужные вам поля. + +## Шаг 3 – Extract Text from Image and Build JSON Manually (Optional) + +Иногда вам не нужен сырой JSON, который выдаёт Aspose; возможно, вам нужна пользовательская структура для вашего downstream‑сервиса. Ниже приведён быстрый пример, который десериализует ответ и переупаковывает его в более чистый объект. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Why re‑format?** Многие API ожидают определённую схему (например, `{ \"total\": \"12.34\", \"date\": \"2026-04-10\" }`). Извлекая только нужные поля, вы делаете полезную нагрузку лёгкой и избегаете утечки ненужных OCR‑метаданных. + +## Шаг 4 – Test the C# OCR Tutorial with a Sample Receipt + +Запустите программу из терминала: + +```bash +dotnet run +``` + +Вы должны увидеть два блока вывода: + +1. Сырой JSON, возвращённый Aspose (результат **convert image to json**, полученный напрямую из облака). +2. Пользовательский JSON, который вы создали на предыдущем шаге. + +Типичный вывод выглядит так: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Если вы получаете ошибку вроде *401 Unauthorized*, дважды проверьте, что ваш API‑ключ действителен и путь к изображению указан правильно. + +## Пограничные случаи и распространённые подводные камни + +| Situation | What to Watch For | Suggested Fix | +|-----------|------------------|---------------| +| **Low‑resolution receipt** | OCR confidence drops below 0.8 | Предобработайте изображение (увеличьте DPI, резкость) перед отправкой | +| **Non‑English characters** | Wrong language enum | Используйте `Language.AutoDetect` или укажите правильный язык | +| **Large batch of receipts** | Rate‑limit errors | Реализуйте экспоненциальную задержку или запросите более высокий квот у Aspose | +| **Missing fields** | Custom parser returns `null` | Добавьте резервную логику или шаблоны regex для более надёжного извлечения | + +## Визуальный обзор + +![Диаграмма, показывающая поток от файла изображения → OCR‑клиент → JSON‑ответ → пользовательский парсинг → окончательный JSON‑вывод](https://example.com/ocr-flow-diagram.png "преобразование изображения в json") + +*Alt text:* *диаграмма потока преобразования изображения в json, иллюстрирующая шаги, охваченные в этом руководстве.* + +## Итоги + +Мы показали вам, как **convert image to JSON** с помощью Aspose OCR Cloud, объяснили *how to recognize text* в чеке, продемонстрировали способы **extract text from image**, и собрали всё в чистый **C# OCR tutorial**, который вы можете добавить в любой .NET‑проект. + +Ключевые выводы: + +- Настройте `CloudOcrClient` с вашим API‑ключом. +- Вызовите `RecognizeAsync`, чтобы получить JSON‑payload напрямую из сервиса. +- При необходимости преобразуйте этот payload под ваш собственный контракт данных. + +## Что дальше? + +- **Batch processing:** Пройдитесь по папке с чеками и соберите результаты в один массив JSON. +- **Advanced parsing:** Используйте регулярные выражения или небольшую NLP‑модель, чтобы извлечь позиции, налоги и скидки. +- **Integration:** Отправьте окончательный JSON в базу данных, очередь сообщений или Azure Function для дальнейшей автоматизации. + +Не стесняйтесь экспериментировать с различными форматами изображений (PNG, TIFF) или попробовать поток **process receipt with OCR** на фотографиях, сделанных мобильным устройством. Возможности безграничны, как только у вас есть надёжный способ **convert image to 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/russian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/russian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..a9e303fff --- /dev/null +++ b/ocr/russian/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: Быстро создавайте PDF с возможностью поиска из изображения. Узнайте, + как генерировать PDF из изображения, встраивать изображение в PDF, конвертировать + TIF в PDF и использовать OCR для PDF в C# с Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: ru +og_description: Создайте поисковый PDF мгновенно. В этом руководстве показано, как + генерировать PDF из изображения, встраивать изображение в PDF, конвертировать TIF + в PDF и использовать OCR для PDF на C#. +og_title: Создание PDF с поиском в C# – пошаговое руководство +tags: +- C# +- OCR +- PDF generation +title: Создание PDF с возможностью поиска в C# – Полное руководство +url: /ru/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание поискового PDF в C# – Полное руководство + +Когда‑нибудь вам нужно было **create searchable PDF** из отсканированного документа, но вы не знали, с чего начать? Вы не одиноки; многие разработчики сталкиваются с тем же при работе с TIFF‑файлами и OCR. В этом руководстве мы пройдем практическое решение, которое позволяет **generate PDF from image**, встроить оригинальное изображение для идеальной поисковости и завершить чистым **OCR to PDF C#**. + +Мы рассмотрим всё: от установки библиотеки Aspose.OCR до обработки граничных случаев, таких как многостраничные TIFF. К концу вы получите готовую к запуску программу, которая преобразует `input.tif` в полностью поисковый `output.pdf`. Никаких внешних сервисов, никакой скрытой магии — только чистый C# код, который можно добавить в любой проект .NET. + +## Что понадобится + +- .NET 6.0 или новее (код также работает на .NET Framework 4.7+) +- Visual Studio 2022 (или любой предпочитаемый редактор) +- Действующая лицензия Aspose.OCR или бесплатный пробный ключ (пакет NuGet работает без ключа в режиме оценки) +- Пример TIFF‑изображения (`input.tif`), размещённый в папке, к которой вы можете обратиться + +> **Совет профессионала:** держите файлы изображений размером менее 10 МБ, чтобы избежать всплесков памяти при обработке больших пакетов. + +## Шаг 1: Установите Aspose.OCR и настройте проект + +Сначала добавьте пакет Aspose.OCR из NuGet в ваш проект. Откройте консоль диспетчера пакетов и выполните: + +```powershell +Install-Package Aspose.OCR +``` + +Если вы предпочитаете UI, щелкните правой кнопкой **Dependencies → Manage NuGet Packages**, найдите *Aspose.OCR* и нажмите **Install**. + +Почему этот шаг важен: Aspose.OCR включает высокопроизводительный OCR‑движок и встроенный экспортёр PDF, поэтому отдельные библиотеки для работы с изображениями или создания PDF не требуются. + +### Полный скелет проекта + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Примечание:** замените `YOUR_DIRECTORY` реальным путём к папке на вашем компьютере. + +## Шаг 2: Загрузка изображения – фундамент *Generate PDF from Image* + +Загрузка исходного файла — небольший, но критический шаг. Aspose.OCR ожидает `ImageStream`, который абстрагирует ввод‑вывод файлов и поддерживает множество форматов (TIFF, PNG, JPEG и т.д.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Почему нельзя просто передать путь?** +Обёртка `ImageStream` управляет внутренней буферизацией и гарантирует, что OCR‑движок работает с большими многостраничными TIFF, не загружая весь файл в память сразу. + +## Шаг 3: Настройка экспорта PDF – *Embed Image PDF* для идеальной поисковости + +При экспорте результатов OCR в PDF у вас есть два варианта: встроить только извлечённый текст или встроить оригинальное изображение вместе со скрытым текстовым слоем. Встраивание изображения сохраняет визуальное качество скана и позволяет пользователям позже выделять или копировать текст. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Граничный случай:** если установить `EmbedOriginalImage` в `false`, полученный PDF будет меньше, но потеряет оригинальное изображение — полезно для чисто текстовых архивов. + +## Шаг 4: Экспорт — *OCR to PDF C#* одним вызовом + +Aspose.OCR делает всю тяжёлую работу однострочником. Метод `ExportToPdf` запускает OCR, формирует скрытый текстовый слой и записывает окончательный файл. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Ожидаемый результат + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Откройте `output.pdf` в любом просмотрщике (Adobe Reader, Edge и т.д.) и попробуйте выделить текст — вы увидите оригинальное изображение под ним, подтверждая, что операция **create searchable pdf** выполнена успешно. + +## Шаг 5: Проверка PDF — быстрые проверки, которые можно автоматизировать + +Хотя ручная проверка подходит для одного файла, вы можете программно убедиться, что PDF содержит текстовый слой. Aspose.PDF (сестринская библиотека) может прочитать документ и извлечь текст: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Добавьте вызов `VerifyPdfContainsText(pdfPath);` после экспорта, если хотите автоматическую проверку. + +## Распространённые подводные камни и как их избежать + +| Проблема | Почему происходит | Решение | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | Загрузка всего файла сразу превышает объём ОЗУ. | Используйте `ImageStream.FromFile` (как показано) и обрабатывайте страницы по одной, если у вас многостраничные файлы. | +| **Missing license leads to watermarks** | Режим оценки добавляет видимый водяной знак на каждой странице. | Примените вашу лицензию Aspose.OCR сразу: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | Жёстко заданный `\` ломает работу в не‑Windows ОС. | Используйте `Path.Combine` или строковые литералы с `/`. | +| **Text not searchable** | `EmbedOriginalImage` установлен в `false` или OCR отключён. | Убедитесь, что `PdfExportOptions.EmbedOriginalImage = true` и OCR‑движок правильно инициализирован. | + +## Бонус: Конвертация TIF в PDF без OCR (когда текст не нужен) + +Если вам нужно только **convert TIF to PDF** без скрытого текстового слоя, вы можете полностью пропустить шаг OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +## Полный рабочий пример (готовый к копированию и вставке) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Запустите программу, откройте `output.pdf`, и вы увидите точную копию оригинального TIFF с скрытым, выделяемым текстовым слоем — именно то, что означает **create searchable pdf** на практике. + +## Заключение + +Мы только что прошли полный рабочий процесс **create searchable pdf** в C#. Начиная с сырого TIFF, мы **generate pdf from image**, выбрали **embed image pdf** для визуального качества и продемонстрировали полный конвейер **ocr to pdf c#**, используя Aspose.OCR. + +Не стесняйтесь менять `PdfExportOptions` (сжатие, версия PDF и т.д.) или объединять несколько изображений для пакетной обработки. Далее вы можете исследовать добавление защиты паролем, цифровых подписей или даже объединение нескольких поисковых PDF в один основной документ. + +Есть вопросы о масштабировании до тысяч файлов или интеграции в ASP.NET API? Оставьте комментарий ниже или напишите мне на GitHub — приятного кодинга! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/russian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..77cfa27cc --- /dev/null +++ b/ocr/russian/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Извлеките текст из изображения с помощью Aspose OCR в C#. Узнайте, как + загрузить изображение для OCR и распознать текст из файлов TIFF с поддержкой GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: ru +og_description: Извлеките текст из изображения с помощью Aspose OCR в C#. Этот учебник + показывает, как загрузить изображение для OCR и распознать текст из TIFF с использованием + ускорения GPU. +og_title: Извлечение текста из изображения в C# – Полное руководство по OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Извлечение текста из изображения в C# – Полное руководство по OCR +url: /ru/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение текста из изображения в C# – Полное руководство по OCR + +Когда‑нибудь вам нужно было **извлечь текст из изображения**, но вы не были уверены, какая библиотека справится с гигантским TIFF без сбоев? Вы не одиноки. Во многих реальных проектах — подумайте о цифровке счетов или архивировании отсканированных книг — возможность загрузить изображение для OCR и затем распознать текст из TIFF быстро становится решающей функцией. + +В этом руководстве мы пройдем практическое решение, которое делает именно это с использованием Aspose OCR для .NET. К концу вы получите готовое консольное приложение C#, которое загружает скан высокого разрешения, запускает ускоренную GPU‑обработку (с плавным переключением на CPU), и выводит результат в виде простого текста. Никаких недостающих частей, никаких «см. документацию» тупиков. + +## Что понадобится + +- **.NET 6 или новее** (код компилируется с любой современной SDK) +- **Aspose.OCR for .NET** NuGet пакет + `dotnet add package Aspose.OCR` +- **Большой TIFF** или любой другой формат изображения, который вы хотите распознать OCR + (пример использует `large_scan.tif`) +- (Опционально) GPU, поддерживающий CUDA 11+ — если у вас его нет, библиотека автоматически переключится в режим CPU. + +Вот и всё. Погрузимся. + +![Извлечение текста из изображения с помощью Aspose OCR в C#](image-placeholder.png "Извлечение текста из изображения с помощью Aspose OCR в C#") + +## Шаг 1: Извлечение текста из изображения — инициализация OCR‑движка + +Прежде чем можно будет обработать любое изображение, вам нужен экземпляр `OcrEngine`. Движок хранит все настройки, которые управляют процессом распознавания. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Почему это важно:** +`ProcessingMode.Gpu` может сократить время распознавания на несколько секунд на современной карте, но установка `ProcessingMode.Auto` (или оставление значения по умолчанию) безопаснее для сред, где может отсутствовать GPU. Защита `GpuMemoryLimit` — практический совет: без неё огромное изображение может захватить всю видеопамять и привести к сбою других приложений. + +## Шаг 2: Загрузка изображения для OCR — загрузка TIFF в память + +Теперь, когда движок готов, нам нужно передать ему изображение, которое мы хотим проанализировать. Aspose предоставляет `ImageStream.FromFile`, который абстрагирует обработку форматов. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Что происходит «под капотом»?** +`ImageStream.FromFile` читает файл в поток и автоматически определяет формат изображения (TIFF, PNG, JPEG и т.д.). Если вы работаете с многостраничными TIFF, Aspose будет рассматривать каждую страницу как отдельный кадр; при необходимости вы сможете перебрать их позже. + +## Шаг 3: Распознавание текста из TIFF — запуск OCR‑движка + +После загрузки изображения начинается тяжелая работа. Метод `Recognize` возвращает объект `OcrResult`, содержащий извлеченный текст и несколько полезных полей метаданных. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Почему вызывать `Recognize` только один раз?** +Потому что движок кэширует внутренние структуры после первого запуска, одного вызова достаточно для большинства сценариев. Если нужно обработать много страниц, переиспользуйте тот же экземпляр `OcrEngine` — это избавит от накладных расходов на повторную инициализацию GPU‑контекстов. + +## Шаг 4: Вывод результата — отображение извлеченного текста + +Наконец, мы выводим распознанную строку в консоль. В реальном приложении вы, вероятно, запишете её в базу данных или файл. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Ожидаемый вывод:** +Если `large_scan.tif` содержит печатный счет, вы увидите что‑то вроде: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Точный формат зависит от исходного изображения, но главное, что теперь у вас есть результаты **извлечения текста из изображения**, готовые для последующей обработки. + +## Шаг 5: Устранение неполадок и крайние случаи + +### GPU не обнаружен? + +Если вы запускаете пример на машине без совместимого GPU, движок тихо переключается на CPU при использовании `ProcessingMode.Auto`. Чтобы явно принудительно использовать режим CPU, замените предыдущую строку на: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Памяти‑емкие TIFF + +Очень большие сканы (например, 10 000 × 10 000 px) могут всё ещё превышать установленный нами лимит GPU в 1 ГБ. В этом случае либо увеличьте `GpuMemoryLimit` (если у вас есть свободная видеопамять), либо уменьшите масштаб изображения перед передачей его в движок: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Многостраничные документы + +Если ваш TIFF содержит несколько страниц, выполните цикл по ним: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Поддержка языков и шрифтов + +Aspose OCR автоматически определяет латинские скрипты, но для кириллицы, арабского или пользовательских шрифтов может потребоваться предоставить языковой пакет: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Профессиональные советы и лучшие практики + +- **Переиспользуйте движок**: создание нового `OcrEngine` для каждого изображения добавляет заметную задержку. +- **Пакетная обработка**: при работе с десятками TIFF, ставьте их в очередь и обрабатывайте в параллельных потоках — только учитывайте конкуренцию за видеопамять GPU. +- **Проверка вывода**: OCR не идеален; выполните простую проверку орфографии или валидацию с помощью регулярных выражений на `ocrResult.Text`, чтобы поймать очевидные ошибки распознавания. +- **Логирование производительности**: измерьте прошедшее время `Stopwatch` до и после `Recognize`, чтобы решить, стоит ли ускорение GPU дополнительных настроек в вашей среде. + +## Заключение + +Теперь у вас есть полный пример от начала до конца, который **извлекает текст из изображений** с помощью Aspose OCR в C#. Загрузка изображения для OCR, вызов движка для распознавания текста из TIFF и обработка сценариев GPU vs. CPU делают это руководство готовой к использованию в продакшене основой, которую вы можете адаптировать под счета, паспорта или любые отсканированные документы. + +Что дальше? Попробуйте заменить TIFF на многостраничный PDF, поэкспериментировать с пользовательскими языковыми пакетами или передать вывод в конвейер обработки естественного языка для автоматического извлечения данных. Возможности безграничны — приятного кодинга! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/russian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..42781adba --- /dev/null +++ b/ocr/russian/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-04-11 +description: Извлекайте текст из TIFF‑файлов с помощью пакетной обработки OCR в Aspose + на C#. Узнайте, как эффективно обрабатывать пакетный OCR и получать обратную связь + о прогрессе в реальном времени. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: ru +og_description: Извлекайте текст из файлов TIFF с помощью пакетной обработки OCR Aspose + в C#. Этот учебник пошагово показывает, как выполнять пакетный OCR и отслеживать + прогресс. +og_title: Извлечение текста из TIFF с помощью пакетного OCR в C# – Полное руководство +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Извлечение текста из TIFF с помощью пакетного OCR в C# — полное руководство +url: /ru/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение текста из TIFF – Полное руководство по пакетному OCR + +Когда‑нибудь вам нужно было **извлечь текст из TIFF** файлов, но вы застряли на этапе пакетной обработки? Вы не одиноки. Во многих проектах автоматизации документов обработка десятков изображений высокого разрешения TIF может быстро стать узким местом — особенно когда требуется мгновенная обратная связь о прогрессе. + +Хорошие новости? С Aspose OCR вы можете **process batch OCR** в несколько строк, получать события прогресса в реальном времени и выводить распознанный текст для каждого изображения. В этом руководстве мы пройдем готовое консольное приложение C#, которое делает именно это. + +Мы охватим всё, что вам нужно знать: необходимые пакеты, почему каждая строка важна, граничные случаи, такие как отсутствие файлов, и как проверить результаты. К концу вы сможете добавить пример в своё решение и сразу начать извлекать текст из TIFF‑изображений. + +## Что понадобится + +- **.NET 6 или новее** (код также компилируется с .NET Core) +- **Aspose.OCR for .NET** NuGet‑пакет – `Install-Package Aspose.OCR` +- Папка, содержащая несколько **TIFF**‑изображений, которые вы хотите прочитать (в демо используются `img1.tif`, `img2.tif`, `img3.tif`) +- Любая IDE — Visual Studio, Rider или VS Code подойдёт + +Дополнительная конфигурация не требуется; библиотека поставляется со своим OCR‑движком, так что вам не придётся устанавливать внешние нативные бинарники. + +--- + +## Шаг 1 – Создание экземпляра OCR Engine + +Первое, что вы делаете, — создаёте `OcrEngine`. Считайте его мозгом, который будет анализировать каждый пиксель и превращать его в символы. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Почему это важно:** +> Движок хранит внутренние языковые модели и настройки (например, DPI, язык). Создать его один раз и переиспользовать для пакета гораздо эффективнее, чем инстанцировать новый движок для каждого изображения. + +--- + +## Шаг 2 – Подключение событий прогресса в реальном времени + +Если вы обрабатываете десятки TIFF‑файлов, индикатор прогресса спасёт вас от вопросов, «застрял ли процесс». + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +Событие `ProgressChanged` срабатывает после завершения обработки каждого изображения, предоставляя `Current`, `Total` и `Percentage`. Это **process batch OCR**‑обратная связь, которую большинство разработчиков забывают реализовать. + +--- + +## Шаг 3 – Создание списка потоков изображений + +Aspose.OCR работает с объектами `ImageStream`. Самый простой способ — загрузить каждый TIFF с диска. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Подсказка:** +> Если у вас динамическая папка, замените жёстко заданный список на `Directory.GetFiles(path, "*.tif")` и `Select(ImageStream.FromFile)` — так вы действительно **process batch OCR** без ручных обновлений. + +--- + +## Шаг 4 – Запуск пакетного OCR процесса + +Теперь происходит тяжёлая работа. `ProcessBatch` возвращает только‑для‑чтения список объектов `OcrResult`, каждый из которых содержит извлечённый текст и оценки уверенности. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Почему это эффективно:** +> Движок переиспользует одну и ту же языковую модель для всех изображений, резко снижая нагрузку на память по сравнению с вызовами по отдельному изображению. + +--- + +## Шаг 5 – Отображение или сохранение распознанного текста + +Наконец, пройдитесь по результатам. В реальном проекте вы, вероятно, запишете их в базу данных или JSON‑файл, но для этой демонстрации мы просто выведем их в консоль. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Ожидаемый вывод в консоль** (усечённый для краткости): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Если какое‑либо изображение не удалось обработать, `result.Text` будет пустой строкой, а событие `ProgressChanged` всё равно сообщит, что элемент обработан — так что вы можете отдельно логировать ошибки. + +--- + +## Обработчик события прогресса (полный код) + +Разместите этот метод где‑угодно внутри класса `BatchDemo` — предпочтительно после `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> Перенаправьте этот вывод в индикатор прогресса UI, если вы создаёте настольное приложение; то же событие работает для WinForms, WPF или даже уведомлений ASP.NET Core SignalR. + +--- + +## Полный готовый к запуску пример + +Объединив всё вместе, получаем полную программу, которую можно скопировать‑вставить в новый консольный проект. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Сохраните файл как `Program.cs`, выполните `dotnet add package Aspose.OCR`, замените `YOUR_DIRECTORY` реальным путём и нажмите **Ctrl+F5**. Вы увидите номера прогресса, за которыми следует извлечённый текст для каждого TIFF. + +--- + +## Обработка распространённых граничных случаев + +| Ситуация | На что обратить внимание | Быстрое решение | +|-----------|-------------------|-----------| +| **Отсутствующий или повреждённый TIFF** | `ImageStream.FromFile` бросает `FileNotFoundException` или `ArgumentException`. | Оберните создание списка в `try/catch` и пропускайте недействительные файлы, записывая проблему в лог. | +| **Очень большие изображения ( >10 MP )** | OCR может потреблять много ОЗУ и замедляться. | Снизьте DPI перед обработкой: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Текст не на английском** | Модель языка по умолчанию — английская. | Установите `ocrEngine.Language = Language.Spanish;` (или любой поддерживаемый язык). | +| **Необходимо сохранять результаты** | Вывод в консоль не сохраняется. | Запишите `result.Text` в файл `.txt` с помощью `File.WriteAllText`. | + +Устранение этих сценариев делает решение надёжным и демонстрирует, что вы продумали работу за пределами «счастливого пути». + +## Следующие шаги и связанные темы + +- **Extract text from PDF** – аналогичный API, просто замените `ImageStream` на `PdfDocument`. +- **Parallel batch OCR** – для огромных нагрузок запустите несколько экземпляров `OcrEngine` в отдельных потоках; не забудьте учитывать ограничения лицензии. +- **Post‑processing** – пропустите вывод OCR через проверку орфографии или регулярные выражения, чтобы очистить типичные артефакты OCR. + +Все эти расширения всё ещё опираются на основную идею **process batch OCR** и могут добавляться поэтапно. + +## Заключение + +Мы только что продемонстрировали, как **извлечь текст из TIFF** файлов эффективно, используя **process batch OCR** с Aspose OCR в C#. Пример создаёт один движок, подписывается на события прогресса, загружает список потоков изображений, запускает пакетную обработку и выводит каждый результат. + +Отсюда вы можете интегрировать вывод в базы данных, генерировать поисковые PDF‑файлы или передавать текст в последующие NLP‑конвейеры. Возможности безграничны — экспериментируйте с настройками языка, параметрами DPI и параллельным выполнением, чтобы подобрать оптимальный вариант под вашу нагрузку. + +Есть вопросы или хотите поделиться, как вы кастомизировали пакет? Оставьте комментарий ниже, и счастливого кодинга! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/russian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..d0b993ba3 --- /dev/null +++ b/ocr/russian/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-11 +description: Узнайте, как распознавать текст из PNG и извлекать его из изображения + на C# с помощью Aspose OCR. Включает шаги загрузки файла изображения в C#, проверку + орфографии и полный код. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: ru +og_description: распознавайте текст из PNG легко с помощью C#. Следуйте этому пошаговому + руководству, чтобы загрузить файл изображения в C#, извлечь текст из изображения + в C# и выполнить проверку орфографии. +og_title: Распознавание текста из PNG в C# – Полный учебник по OCR +tags: +- OCR +- C# +- Aspose +title: Распознавание текста из PNG в C# – Полное руководство по OCR и проверке орфографии +url: /ru/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# распознавание текста из png – Полный C# OCR & Spell‑Check учебник + +Когда‑нибудь вам нужно было **распознавать текст из png** файлов, но вы не знали, какую библиотеку выбрать? Вы не одиноки; многие разработчики сталкиваются с этим, когда впервые берутся за извлечение данных из изображений. Хорошая новость? С Aspose OCR вы можете загрузить файл изображения в C#, извлечь текст и даже запустить встроенную проверку орфографии — всё это в нескольких строках. + +В этом руководстве мы пройдём весь процесс: загрузка PNG, вызов OCR‑движка и, наконец, проверка на орфографические ошибки. К концу вы сможете **извлекать текст из изображения C#** в проектах без необходимости искать разрозненные документы. Предыдущий опыт работы с OCR не требуется, нужен лишь .NET‑окружение. + +## Что понадобится + +- **.NET 6.0** (или любая современная версия .NET) – API работает одинаково в .NET Core и Framework. +- **Aspose.OCR for .NET** NuGet‑пакет – установите его командой `dotnet add package Aspose.OCR`. +- **PNG‑изображение**, содержащее читаемый текст (например, `letter.png`, помещённый в папку, которой вы управляете). +- Редактор кода или IDE (Visual Studio, VS Code, Rider — выбирайте, что вам нравится). + +Вот и всё. Никаких дополнительных OCR‑движков, никаких нативных DLL, только чистый управляемый пакет. + +--- + +## Шаг 1: Загрузка PNG‑файла изображения в C# + +Прежде чем OCR‑движок сможет что‑то сделать, ему нужен поток, указывающий на изображение. Aspose предоставляет `ImageStream.FromFile`, который абстрагирует детали файловой системы. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** Если ваше изображение встроено как ресурс или поступает из веб‑запроса, вы можете использовать `ImageStream.FromBytes(byte[])` — не требуется обращаться к файловой системе. + +### Почему правильная загрузка важна + +Корректная загрузка изображения гарантирует, что OCR‑движок получит именно те пиксельные данные, которые он ожидает. Повреждённый поток вызовет исключение в `Recognize`, и вы потратите время на отладку позже. + +## Шаг 2: Инициализация OCR‑движка + +Создание экземпляра `OcrEngine` дешево, но вы можете настроить язык или параметры точности для конкретных сценариев (например, многоязычные документы). Конструктор по умолчанию отлично подходит для английского текста. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Зачем нужен экземпляр движка? + +Движок хранит конфигурацию (язык, фильтры предобработки и т.д.). Разделяя конфигурацию и изображение, вы можете переиспользовать один и тот же движок для множества файлов — удобно для пакетной обработки. + +## Шаг 3: Распознавание текста из PNG + +Теперь происходит магия. `Recognize` возвращает объект `OcrResult`, содержащий сырую строку, оценки уверенности и многое другое. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Ожидаемый вывод** (при условии, что в `letter.png` написано «Hello World!»): + +``` +=== OCR Output === +Hello World! +``` + +Если изображение содержит несколько строк, результат сохраняет разрывы строк, что упрощает последующую обработку. + +### Пограничный случай: PNG с низким разрешением + +Если результат OCR выглядит искажённым, попробуйте увеличить масштаб изображения или скорректировать `ocrEngine.PreprocessingOptions`. Изображения с низким DPI часто теряют детали, необходимые движку. + +## Шаг 4: Запуск встроенной проверки орфографии + +Aspose OCR поставляется с лёгким модулем проверки орфографии, который работает напрямую с результатом OCR. Этот шаг помогает обнаружить ошибки распознавания, такие как «H3llo» вместо «Hello». + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Пример вывода** (если OCR неправильно прочитал «World» как «W0rld»): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Почему нужна проверка орфографии? + +OCR никогда не бывает на 100 % точным, особенно при шумных фонах. Быстрая проверка орфографии может отфильтровать очевидные ошибки до того, как вы передадите текст в последующий анализ или базы данных. + +## Шаг 5: Соберите всё вместе – полностью рабочий пример + +Ниже представлен полный, готовый к запуску код. Скопируйте его в новый консольный проект, укажите путь к изображению и нажмите **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Запуск демо** выводит распознанный OCR‑текст, а затем любые предложения по исправлению. Работает с любым PNG, содержащим чёткий печатный английский текст. Для других языков просто задайте `ocrEngine.Language` соответствующим образом. + +## Часто задаваемые вопросы & подводные камни + +| Вопрос | Ответ | +|----------|--------| +| *Можно ли обрабатывать JPEG или BMP файлы?* | Конечно — `ImageStream.FromFile` принимает любой формат, поддерживаемый Aspose (PNG, JPEG, BMP, TIFF). | +| *Что делать, если изображение находится в памяти (memory stream)?* | Используйте `ImageStream.FromBytes(byteArray)` или `ImageStream.FromStream(stream)`. | +| *Является ли проверка орфографии языко‑зависимой?* | Да, она учитывает язык, установленный в OCR‑движке. | +| *Как улучшить точность при наклонённых изображениях?* | Включите `ocrEngine.PreprocessingOptions.Deskew = true;` перед вызовом `Recognize`. | +| *Нужна ли лицензия для Aspose.OCR?* | Бесплатная пробная версия работает до 100 страниц. Для продакшна приобретите лицензию, чтобы убрать водяные знаки. | + +## Следующие шаги – выход за рамки базового OCR + +Теперь, когда вы умеете **распознавать текст из png** и **извлекать текст из изображения C#**, рассмотрите следующие расширения: + +1. **Пакетная обработка** — переберите каталог PNG‑файлов и запишите каждый результат OCR в отдельный `.txt` файл. +2. **Интеграция с Azure Cognitive Services** — комбинируйте Aspose OCR с облачными API перевода для многоязычных конвейеров. +3. **Извлечение структурированных данных** — используйте регулярные выражения над `recognizedText` для получения дат, номеров счетов или адресов. +4. **Тонкая настройка производительности** — при больших объёмах переиспользуйте один экземпляр `OcrEngine` и включите многопоточность. + +Каждый из этих пунктов опирается на базовые шаги, которые мы рассмотрели, позволяя превратить простое изображение в полезные данные. + +## Заключение + +Мы прошли полный пример от начала до конца, показывающий, как **распознавать текст из png** в C#, **правильно загружать файл изображения C#** и затем **извлекать текст из изображения C#**, одновременно отлавливая орфографические ошибки. Код автономный, объяснения охватывают как «как», так и «почему», и теперь у вас есть надёжная база для любой функции, основанной на 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/spanish/net/ocr-configuration/_index.md b/ocr/spanish/net/ocr-configuration/_index.md index 4a9277b33..5e356b265 100644 --- a/ocr/spanish/net/ocr-configuration/_index.md +++ b/ocr/spanish/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Desbloquea el poder del reconocimiento de imágenes OCR en .NET con Aspose.OCR. Desbloquea potentes capacidades OCR con Aspose.OCR para .NET. Extrae texto de imágenes de forma fluida. ### [OCROperation con Lista en Reconocimiento de Imágenes OCR](./ocr-operation-with-list/) Desbloquea el potencial de Aspose.OCR para .NET. Realiza reconocimiento de imágenes OCR con listas de manera sencilla. Incrementa la productividad y la extracción de datos en tus aplicaciones. +### [Cómo desactivar OCR en C# – Guía offline de Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Desactiva la funcionalidad OCR en tus aplicaciones C# usando Aspose OCR sin conexión. ### Casos de uso comunes - **Extraer texto de imágenes** de facturas escaneadas para contabilidad automatizada. @@ -102,4 +104,4 @@ R: Sí, el objeto `OcrResult` proporciona valores de confianza que puedes inspec {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/spanish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..2fcd4b488 --- /dev/null +++ b/ocr/spanish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Aprende cómo desactivar OCR en Aspose OCR para C# para ejecutarlo sin + conexión, extraer texto de una imagen sin internet y cargar correctamente la imagen + para OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: es +og_description: Cómo desactivar OCR en Aspose OCR para C# y ejecutarlo sin conexión, + extraer texto de una imagen sin necesidad de internet y cargar la imagen para OCR + fácilmente. +og_title: Cómo desactivar OCR en C# – Guía de Aspose OCR sin conexión +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Cómo desactivar OCR en C# – Guía offline de Aspose OCR +url: /es/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo desactivar OCR en C# – Guía offline de Aspose OCR + +¿Alguna vez te has preguntado **cómo desactivar OCR** cuando necesitas una solución verdaderamente offline? Tal vez estés construyendo una aplicación de escritorio segura que no pueda depender de una conexión de red, o simplemente quieras evitar descargas inesperadas. Sea cual sea el caso, la buena noticia es que Aspose OCR te permite desactivar su obtención automática de recursos, apuntar a una carpeta local y mantener todo en las instalaciones. En este tutorial también verás cómo **extraer texto de una imagen** y **cargar la imagen para OCR** sin contratiempos. + +Recorreremos un ejemplo completo, listo para ejecutar, que muestra cada paso: desde la inicialización del motor hasta la impresión del texto japonés reconocido. Sin documentación externa, sin magia oculta; solo código C# puro que puedes incorporar a tu proyecto hoy mismo. Al final sabrás por qué es importante desactivar la función de descarga automática, cómo establecer la ruta de recursos y qué trampas evitar. + +## Requisitos previos + +- .NET 6.0 (o cualquier versión reciente de .NET) instalado en tu máquina. +- Paquete NuGet Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Una carpeta que ya contenga los recursos de idioma que necesitas (por ejemplo, el modelo japonés). +- Un archivo de imagen (`japan_doc.png`) contra el que quieras ejecutar OCR. + +Si te faltan los paquetes de idioma, descárgalos una vez desde el portal de Aspose, descomprímelos en una carpeta como `AsposeOCRResources` y listo. No se producirán más descargas una vez que hayas desactivado la función de descarga automática. + +![Cómo desactivar OCR offline](/images/how-to-disable-ocr.png "ilustración de cómo desactivar OCR") + +## Paso 1 – Crear la instancia del motor OCR + +Lo primero que haces es instanciar `OcrEngine`. Piensa en este objeto como el cerebro que leerá tu imagen. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por qué es importante:** Sin un motor no puedes configurar nada. El objeto contiene todas las configuraciones, incluido el indicador crucial que le dice a la biblioteca si puede o no acceder a Internet. + +## Paso 2 – Desactivar la descarga automática de recursos + +Por defecto Aspose OCR intentará obtener los archivos de idioma faltantes sobre la marcha. Para mantener todo offline, cambia el interruptor `AutoDownloadResources` a `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Consejo profesional:** Desactivar esto no solo garantiza la privacidad, sino que también acelera la primera ejecución de reconocimiento porque el motor no pierde tiempo verificando actualizaciones. + +## Paso 3 – Apuntar a tu carpeta local de recursos + +Ahora indica al motor dónde viven los paquetes de idioma pre‑descargados. Esta es la ruta que configuraste en los requisitos previos. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **¿Qué podría fallar?** Si la ruta es incorrecta o falta el archivo de idioma requerido, el motor lanzará una `ResourceNotFoundException`. Verifica la ortografía de la carpeta y que el modelo japonés (`jpn.traineddata`) esté presente. + +## Paso 4 – Seleccionar el modelo de idioma local + +Elige el idioma que realmente tienes en disco. En nuestro ejemplo usamos japonés, pero puedes cambiar `Language.Japanese` por cualquier otro idioma que hayas descargado. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Caso límite:** Algunos idiomas requieren diccionarios adicionales (p. ej., chino). Asegúrate de que esos archivos auxiliares también estén en la misma carpeta de recursos. + +## Paso 5 – Cargar la imagen para OCR + +Aquí es donde **cargamos la imagen para OCR**. El método `ImageStream.FromFile` lee el archivo en un flujo que Aspose puede procesar. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Consejo:** Los formatos compatibles incluyen PNG, JPEG, BMP y TIFF. Si necesitas manejar PDFs, conviértelos primero a imágenes, una página por imagen. + +## Paso 6 – Ejecutar el proceso de reconocimiento + +Ahora el motor realmente lee los píxeles y trata de convertirlos en texto. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Por qué este paso puede ser lento:** OCR es intensivo en CPU, especialmente para imágenes de alta resolución. Si el rendimiento es una preocupación, considera reducir la escala de la imagen antes del reconocimiento. + +## Paso 7 – Mostrar el texto extraído + +Finalmente, **extraemos texto de la imagen** y lo imprimimos en la consola. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Ejecutar el programa debería mostrar los caracteres japoneses que estaban en `japan_doc.png`. Si todo está configurado correctamente, verás un bloque limpio de texto Unicode en tu consola. + +### Salida esperada + +``` +これはサンプルの日本語テキストです。 +``` + +(Tu salida real dependerá del contenido de la imagen.) + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **Falta el archivo de idioma** | `AutoDownloadResources` está en false, por lo que el motor no puede obtenerlo. | Verifica que `ResourcesPath` apunte a la carpeta que contiene `jpn.traineddata`. | +| **Ruta de imagen incorrecta** | `ImageStream.FromFile` lanza `FileNotFoundException`. | Usa rutas absolutas o asegura que el directorio de trabajo esté configurado correctamente. | +| **Formato de imagen no compatible** | Aspose solo lee ciertos formatos. | Convierte tu imagen a PNG o JPEG antes de llamar a `FromFile`. | +| **Falta de memoria con imágenes grandes** | OCR carga la imagen completa en memoria. | Redimensiona o divide la imagen en mosaicos, o incrementa el límite de memoria del proceso. | + +## Extensión del ejemplo + +- **Procesamiento por lotes:** Recorre un directorio de imágenes, llama al mismo código de reconocimiento y escribe cada resultado en un archivo `.txt` separado. +- **Idiomas diferentes:** Reemplaza `Language.Japanese` por `Language.English` (o cualquier otro) después de colocar los archivos de recursos correspondientes. +- **Preprocesamiento personalizado:** Usa Aspose.Imaging para corregir la inclinación o mejorar el contraste antes de OCR y obtener mayor precisión. + +## Conclusión + +Ahora sabes **cómo desactivar OCR** en Aspose OCR para C# y ejecutarlo completamente offline. Al establecer `AutoDownloadResources` en `false`, apuntar el motor a una carpeta local de recursos y **cargar la imagen para OCR** correctamente, puedes **extraer texto de una imagen** sin tocar nunca Internet. Este enfoque es ideal para entornos seguros, pipelines de CI o cualquier escenario donde el acceso a la red sea limitado. + +¿Listo para el siguiente paso? Prueba procesar una carpeta completa de PDFs escaneados, experimenta con diferentes paquetes de idioma o integra el resultado de OCR en una base de datos searchable. La configuración offline que has creado hoy es una base sólida para cualquier flujo de trabajo de procesamiento de documentos on‑premises. + +¡Feliz codificación, y no dudes en dejar un comentario si encuentras algún obstáculo! + +{{< /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 b9a9d4da6..498724f92 100644 --- a/ocr/spanish/net/ocr-optimization/_index.md +++ b/ocr/spanish/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Explora Aspose.OCR para .NET. Aumenta la precisión del OCR con filtros de prepr Mejora la precisión del OCR con Aspose.OCR para .NET. Corrige ortografía, personaliza diccionarios y logra un reconocimiento de texto sin errores sin esfuerzo. ### [Guardar resultados multipágina como documento en Reconocimiento de Imágenes OCR](./save-multipage-result-as-document/) Desbloquea el potencial de Aspose.OCR para .NET. Guarda fácilmente resultados OCR multipágina como documentos con esta guía completa paso a paso. +### [Cómo mejorar la precisión del OCR en C# con Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Aprende técnicas y configuraciones para aumentar la exactitud del reconocimiento OCR en aplicaciones C# usando Aspose OCR. ## Preguntas frecuentes diff --git a/ocr/spanish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/spanish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..c27a9581f --- /dev/null +++ b/ocr/spanish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Aprende cómo mejorar OCR en C# reconociendo texto de JPG, enderezando + imágenes y eliminando ruido usando Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: es +og_description: 'Descubre cómo mejorar el OCR reconociendo texto a partir de JPG, + enderezando imágenes y eliminando ruido: guía completa en C#.' +og_title: Cómo mejorar la precisión del OCR en C# con Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Cómo mejorar la precisión del OCR en C# con Aspose OCR +url: /es/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo mejorar la precisión de OCR en C# con Aspose OCR + +¿Alguna vez te has preguntado **cómo mejorar OCR** cuando tus escaneos parecen más arte abstracto que texto legible? No eres el único. En muchos proyectos del mundo real —piensa en facturas, recibos o notas manuscritas— las imágenes de origen a menudo están sesgadas, granuladas o simplemente ruidosas. ¿La buena noticia? Aspose OCR te brinda un conjunto de ajustes de preprocesamiento que pueden convertir ese caos en caracteres limpios y legibles por máquina. En este tutorial recorreremos un ejemplo completo y ejecutable que muestra **cómo mejorar OCR** mediante **reconocer texto de JPG**, enderezar la imagen y eliminar el ruido no deseado. + +> *Consejo profesional:* Si omites el preprocesamiento, probablemente terminarás con una salida garbled que parece un crucigrama críptico. Evitémoslo. + +![How to improve OCR with Aspose OCR preprocessing](https://example.com/ocr-preprocess.png "how to improve OCR with Aspose OCR") + +## Qué aprenderás + +En los próximos minutos verás: + +1. Cómo configurar el motor Aspose OCR para obtener la máxima precisión. +2. El código exacto necesario para **reconocer texto de JPG**. +3. Por qué habilitar *AutoDeskew* y *RemoveNoise* es importante y cómo afinarlos. +4. Cómo **extraer texto de imagen** sin escribir un filtro personalizado. +5. Trampas comunes (archivo faltante, formato no soportado) y soluciones rápidas. + +Al final tendrás una única aplicación de consola en C# que puede tomar cualquier JPG, limpiarlo y devolver la cadena extraída, lista para su procesamiento posterior o almacenamiento. + +## Requisitos previos + +- SDK de .NET 6.0 o superior (el ejemplo usa declaraciones de nivel superior para mayor brevedad). +- Paquete NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Una imagen JPG de ejemplo (llamada `input.jpg`) ubicada en la misma carpeta que el ejecutable. +- Familiaridad básica con C# —no se requieren conceptos avanzados. + +Si ya tienes un proyecto, simplemente pega el código; de lo contrario crea una nueva aplicación de consola: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Ahora sumergámonos en el código. + +## Cómo mejorar OCR: Visión general de los ajustes de preprocesamiento + +El corazón de **cómo mejorar OCR** reside en el objeto `PreprocessSettings`. Piensa en él como un mini editor de imágenes que se ejecuta *antes* de que el motor de reconocimiento de caracteres entre en acción. A continuación tienes un resumen rápido de los flags más impactantes: + +| Ajuste | Qué hace | Caso de uso típico | +|-----------------------|----------------------------------------------------------|--------------------| +| `AutoDeskew` | Aplica un algoritmo de desalineación basado en deep‑learning. | Páginas escaneadas ligeramente inclinadas. | +| `AdaptiveThreshold` | Aumenta el contraste en imágenes con poca luz o desvanecidas. | Recibos antiguos con tinta descolorida. | +| `RemoveNoise` | Ejecuta un filtro de desenfoque gaussiano para suprimir manchas. | Fotos tomadas con flash de smartphone. | +| `NoiseRemovalStrength`| Controla la agresividad (1 = bajo, 3 = alto). | Ajustar según cuán granulada sea la fuente. | + +Habilitar estas opciones es esencialmente la “salsa secreta” para **cómo mejorar OCR** en entradas imperfectas. + +## Reconocer texto de JPG con Aspose OCR + +A continuación tienes el programa completo, listo para ejecutar. Cada línea está anotada para que veas *por qué* existe cada pieza, no solo *qué* hace. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Salida esperada + +Si `input.jpg` contiene la frase “Invoice #12345 – Total: $256.78”, la consola imprimirá: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Observa cómo la salida es limpia, con el guion y el signo de dólar preservados —exactamente lo que esperarías al **extraer texto de imagen**. + +## Cómo enderezar la imagen usando los ajustes de preprocesamiento + +¿Por qué importa el enderezado? Incluso una inclinación de 2 grados puede confundir la etapa de segmentación de caracteres, provocando letras mal identificadas. El flag `AutoDeskew` ejecuta una red neuronal convolucional bajo el capó que detecta el ángulo dominante y rota la imagen de vuelta a la línea base. + +Si necesitas más control, puedes establecer el ángulo manualmente: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Cuándo usar el enderezado manual:** Si sabes que la cámara inclina consistentemente las imágenes una cantidad fija (p. ej., un escáner montado), codificar el ángulo ahorra un pequeño tiempo de procesamiento. + +## Cómo eliminar ruido para una extracción más limpia + +El ruido aparece como manchas aleatorias o granulado, sobre todo en fotos con poca luz. El flag `RemoveNoise` aplica un filtro bilateral que suaviza el fondo mientras preserva los bordes (los caracteres reales). La propiedad `NoiseRemovalStrength` te permite ajustar la agresividad: + +| Fuerza | Efecto | +|--------|--------| +| 1 | Suavizado ligero —bueno para imágenes ligeramente granuladas. | +| 2 | Balanceado —funciona para la mayoría de capturas con smartphone. | +| 3 | Suavizado intenso —útil cuando la imagen es extremadamente ruidosa, pero cuidado con difuminar trazos finos. | + +Si encuentras que fuentes pequeñas se vuelven ilegibles tras un suavizado intenso, simplemente reduce la fuerza o desactiva el filtro por completo. + +## Extraer texto de imagen: Más allá de JPG + +Aunque nuestra demo se centra en un JPG, Aspose OCR soporta PNG, BMP, TIFF e incluso páginas PDF. Para **extraer texto de imagen** en formatos distintos a JPG, solo cambia la extensión del archivo en `ImageStream.FromFile`. Para TIFF de varias páginas puedes iterar sobre cada una: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Ese fragmento muestra cómo podrías escalar el mismo flujo de **cómo mejorar OCR** para procesar por lotes una pila completa de documentos escaneados. + +## Trampas comunes y cómo solucionarlas + +| Síntoma | Causa probable | Solución rápida | +|---------|----------------|-----------------| +| Salida en blanco | La imagen queda completamente blanca después del preprocesamiento (umbral demasiado agresivo) | Reduce `NoiseRemovalStrength` o establece `AdaptiveThreshold = false`. | +| Caracteres garbled | Modelo de idioma incorrecto (por defecto es inglés) | Configura `ocrEngine.Settings.Language = Language.English;` o carga un paquete de idioma personalizado. | +| Crash con archivos grandes | Falta de memoria por imagen de alta resolución | Reduce la escala con `ocrEngine.Settings.ImageResizeFactor = 0.5;` antes del reconocimiento. | +| No hay salida para escaneos rotados | `AutoDeskew` desactivado accidentalmente | Habilita `AutoDeskew = true` o suministra `DeskewAngle` correcto. | + +Tener esto presente te ahorrará horas de depuración cuando intentes **cómo mejorar OCR** en pipelines de producción. + +## Bonus: Ajustando velocidad vs. precisión + +Si procesas miles de recibos al día, quizás priorices la velocidad. Desactiva `AdaptiveThreshold` y establece `NoiseRemovalStrength = 1`. Por el contrario, para documentos legales donde un solo carácter perdido puede ser costoso, mantén todos los flags activados y considera aumentar `NoiseRemovalStrength` a 3. + +## Conclusión + +Hemos cubierto todo el recorrido de **cómo mejorar OCR** en C# usando Aspose OCR: desde crear el motor, configurar el preprocesamiento (la base de *cómo enderezar imagen* y *cómo eliminar ruido*), cargar un JPG, reconocer texto y manejar casos límite. El código es autónomo, funciona de inmediato y muestra los pasos exactos que necesitas para **reconocer texto de jpg** y **extraer texto de imagen**. + +### ¿Qué sigue? + +- Experimenta con otros formatos de imagen (PNG, TIFF) para ver cómo se comportan los mismos ajustes. +- Integra la salida de OCR en una base de datos 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/spanish/net/text-recognition/_index.md b/ocr/spanish/net/text-recognition/_index.md index 8f06dcbf8..7e800c13b 100644 --- a/ocr/spanish/net/text-recognition/_index.md +++ b/ocr/spanish/net/text-recognition/_index.md @@ -27,7 +27,7 @@ Explore las capacidades de Aspose.OCR para .NET y transforme la forma en que man ## Obtenga resultados como JSON en el reconocimiento de imágenes OCR -Libere todo el potencial de Aspose.OCR para .NET aprendiendo cómo obtener resultados de OCR en formato JSON sin esfuerzo. Esta guía paso a paso garantiza un viaje sencillo hacia la mejora de sus capacidades de reconocimiento de imágenes. Aumente la eficiencia de su aplicación con las sólidas funciones y la tecnología líder en la industria de Aspose.OCR. +Libere todo el potencial de Aspose.OCR para .NET aprendiendo cómo obtener resultados OCR en formato JSON sin esfuerzo. Esta guía paso a paso garantiza un viaje sencillo hacia la mejora de sus capacidades de reconocimiento de imágenes. Aumente la eficiencia de su aplicación con las sólidas funciones y la tecnología líder en la industria de Aspose.OCR. ## Modo de detección de áreas OCR en reconocimiento de imágenes OCR @@ -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. +### [Extraer texto de una imagen en C# – Guía completa de OCR](./extract-text-from-image-in-c-complete-ocr-guide/) +Aprenda a extraer texto de imágenes usando C# con Aspose.OCR en esta guía completa paso a paso. +### [Extraer texto de TIFF con OCR por lotes en C# – Guía completa](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Aprenda a extraer texto de archivos TIFF usando OCR por lotes en C#, con una guía paso a paso para procesar múltiples imágenes eficientemente. +### [Reconocer texto de PNG en C# – Guía completa de OCR y corrección ortográfica](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Aprenda a extraer texto de archivos PNG en C# con OCR y corrección ortográfica usando Aspose.OCR. +### [Convertir imagen a JSON – Tutorial OCR en C# para recibos](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Aprenda a convertir imágenes de recibos a JSON usando Aspose.OCR en C# con este tutorial 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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/spanish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..a63a19bc9 --- /dev/null +++ b/ocr/spanish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: Convierte una imagen a JSON usando Aspose OCR Cloud en C#. Aprende cómo + reconocer texto, extraer texto de una imagen y procesar recibos con OCR en minutos. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: es +og_description: Convertir imagen a JSON con Aspose OCR Cloud en C#. Esta guía muestra + cómo reconocer texto, extraer texto de una imagen y procesar recibos con OCR. +og_title: Convertir imagen a JSON – Tutorial de OCR en C# para recibos +tags: +- OCR +- C# +- Aspose +- JSON +title: Convertir imagen a JSON – Tutorial de OCR en C# para recibos +url: /es/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir Imagen a JSON – Tutorial OCR en C# para Recibos + +¿Alguna vez necesitaste **convertir imagen a JSON** pero no sabías por dónde empezar? En esta guía te acompañaremos paso a paso en un tutorial completo de OCR en C# que toma una foto de un recibo, reconoce el texto y genera una carga JSON ordenada. + +Si alguna vez te has preguntado *cómo reconocer texto* en un documento escaneado, o buscas una forma rápida de **extraer texto de imagen** de archivos, estás en el lugar correcto. Al final de este artículo podrás **procesar recibo con OCR** y alimentar el resultado directamente a tus APIs downstream. + +## Lo que Necesitarás + +- .NET 6 SDK o posterior (el código también funciona con .NET Core) +- Una clave API de Aspose Cloud – puedes obtener una prueba gratuita desde el portal de Aspose +- Una imagen de muestra de recibo (`receipt.jpg`) almacenada localmente +- Tu IDE favorito (Visual Studio, VS Code, Rider – cualquiera sirve) + +No se requieren paquetes NuGet adicionales más allá del cliente oficial `Aspose.OCR.Cloud`. Si ya tienes el SDK instalado, estás listo para comenzar. + +## Paso 1 – Convertir Imagen a JSON: Configurar el Cliente OCR + +Lo primero es obtener una instancia de `CloudOcrClient`. Este objeto maneja toda la comunicación con el servicio OCR de Aspose y devolverá el resultado en formato JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Por qué es importante:** Inicializar el cliente es el puente entre tu código C# y el motor OCR en la nube. El método `RecognizeAsync` hace el trabajo pesado: sube la imagen, ejecuta el motor OCR y devuelve una cadena JSON que contiene el texto reconocido, puntuaciones de confianza y coordenadas de los cuadros delimitadores. + +> **Consejo profesional:** Almacena la clave API en una variable de entorno o en un gestor de secretos en lugar de codificarla directamente. Así evitas filtraciones accidentales. + +## Paso 2 – Cómo Reconocer Texto del Recibo + +Ahora que el cliente está listo, profundicemos en el *cómo* del reconocimiento de texto. Aspose OCR soporta muchos idiomas, pero para la mayoría de los recibos el inglés funciona bien. Si necesitas otro idioma, simplemente cambia `Language.English` por el valor de enumeración correspondiente. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**¿Qué ocurre bajo el capó?** El servicio ejecuta un modelo de deep‑learning que detecta caracteres, los agrupa en palabras y luego forma líneas. El JSON devuelto se parece aproximadamente a esto: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Puedes analizar este JSON con `System.Text.Json` o `Newtonsoft.Json` para extraer los campos que te interesan. + +## Paso 3 – Extraer Texto de la Imagen y Construir JSON Manualmente (Opcional) + +A veces no deseas el JSON bruto que Aspose te entrega; quizá necesites una estructura personalizada para tu servicio downstream. A continuación tienes un ejemplo rápido que deserializa la respuesta y la vuelve a empaquetar en un objeto más limpio. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**¿Por qué reformatear?** Muchas APIs esperan un esquema específico (p. ej., `{ "total": "12.34", "date": "2026-04-10" }`). Al extraer solo los campos que necesitas, mantienes la carga ligera y evitas filtrar metadatos OCR innecesarios. + +## Paso 4 – Probar el Tutorial OCR en C# con un Recibo de Muestra + +Ejecuta el programa desde tu terminal: + +```bash +dotnet run +``` + +Deberías ver dos bloques de salida: + +1. El JSON bruto devuelto por Aspose (el resultado de **convertir imagen a json** directamente desde la nube). +2. El JSON personalizado que construiste en el paso anterior. + +Una salida típica se ve así: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Si recibes un error como *401 Unauthorized*, verifica que tu clave API sea válida y que la ruta de la imagen sea correcta. + +## Casos Límite y Errores Comunes + +| Situación | Qué Vigilar | Solución Sugerida | +|-----------|-------------|-------------------| +| **Recibo de baja resolución** | La confianza del OCR cae por debajo de 0.8 | Pre‑procesar la imagen (aumentar DPI, enfocar) antes de enviarla | +| **Caracteres no ingleses** | Enum de idioma incorrecto | Usar `Language.AutoDetect` o especificar el idioma correcto | +| **Gran lote de recibos** | Errores de límite de velocidad | Implementar retroceso exponencial o solicitar una cuota mayor a Aspose | +| **Campos faltantes** | El parser personalizado devuelve `null` | Agregar lógica de respaldo o patrones regex para una extracción más robusta | + +## Visión General Visual + +![Diagrama que muestra el flujo desde archivo de imagen → cliente OCR → respuesta JSON → parseo personalizado → salida JSON final](https://example.com/ocr-flow-diagram.png "convertir imagen a json") + +*Texto alternativo:* *diagrama de flujo de convertir imagen a json que ilustra los pasos cubiertos en este tutorial.* + +## Recapitulación + +Te hemos mostrado cómo **convertir imagen a JSON** con Aspose OCR Cloud, explicado *cómo reconocer texto* en un recibo, demostrado formas de **extraer texto de imagen**, y empaquetado todo en un **tutorial OCR en C#** limpio que puedes incorporar a cualquier proyecto .NET. + +Los puntos clave son: + +- Configura `CloudOcrClient` con tu clave API. +- Llama a `RecognizeAsync` para obtener una carga JSON directamente del servicio. +- Opcionalmente reformatea esa carga para que se ajuste a tu propio contrato de datos. + +## ¿Qué Sigue? + +- **Procesamiento por lotes:** Recorrer una carpeta de recibos y agregar los resultados en un solo arreglo JSON. +- **Parseo avanzado:** Usa expresiones regulares o un pequeño modelo de PLN para extraer líneas de artículo, impuestos y descuentos. +- **Integración:** Envía el JSON final a una base de datos, una cola de mensajes o una Azure Function para mayor automatización. + +Siéntete libre de experimentar con diferentes formatos de imagen (PNG, TIFF) o probar el flujo **process receipt with OCR** con fotos capturadas desde móvil. El cielo es el límite una vez que tienes una forma fiable de **convertir imagen a JSON**. + +¿Tienes preguntas o encontraste un problema? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/spanish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..28e734dff --- /dev/null +++ b/ocr/spanish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Crea PDF buscable a partir de una imagen rápidamente. Aprende a generar + PDF desde una imagen, incrustar PDF de imagen, convertir TIF a PDF y usar OCR a + PDF en C# con Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: es +og_description: Crea PDF buscable al instante. Este tutorial muestra cómo generar + PDF a partir de una imagen, incrustar PDF de imagen, convertir TIF a PDF y usar + OCR para PDF en C#. +og_title: Crear PDF buscable en C# – Guía paso a paso +tags: +- C# +- OCR +- PDF generation +title: Crear PDF buscable en C# – Guía completa +url: /es/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear PDF buscable en C# – Guía completa + +¿Alguna vez necesitaste **crear PDF buscable** a partir de un documento escaneado pero no sabías por dónde empezar? No estás solo; muchos desarrolladores se topan con el mismo obstáculo al trabajar con archivos TIFF y OCR. En este tutorial recorreremos una solución práctica que te permite **generar PDF a partir de una imagen**, incrustar la foto original para una buscabilidad perfecta y terminar con un flujo de trabajo limpio de **OCR a PDF C#**. + +Cubriremos todo, desde la instalación de la biblioteca Aspose.OCR hasta el manejo de casos especiales como TIFFs de varias páginas. Al final tendrás un programa listo para ejecutar que convierte `input.tif` en un `output.pdf` totalmente buscable. Sin servicios externos, sin trucos ocultos—solo código C# puro que puedes incorporar a cualquier proyecto .NET. + +## Lo que necesitarás + +- .NET 6.0 o posterior (el código también funciona en .NET Framework 4.7+) +- Visual Studio 2022 (o cualquier editor que prefieras) +- Una licencia activa de Aspose.OCR o una clave de prueba gratuita (el paquete NuGet funciona sin clave para evaluación) +- Una imagen TIFF de ejemplo (`input.tif`) ubicada en una carpeta a la que puedas referenciar + +> **Consejo profesional:** Mantén tus archivos de imagen por debajo de 10 MB para evitar picos de memoria al procesar lotes grandes. + +## Paso 1: Instalar Aspose.OCR y configurar el proyecto + +Primero, agrega el paquete NuGet Aspose.OCR a tu proyecto. Abre la consola del Administrador de paquetes y ejecuta: + +```powershell +Install-Package Aspose.OCR +``` + +Si prefieres la interfaz gráfica, haz clic derecho en **Dependencies → Manage NuGet Packages**, busca *Aspose.OCR* y pulsa **Install**. + +¿Por qué es importante este paso? Aspose.OCR incluye un motor OCR de alto rendimiento y un exportador PDF incorporado, por lo que no necesitas bibliotecas separadas para el manejo de imágenes o la creación de PDF. + +### Esqueleto completo del proyecto + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Nota:** Sustituye `YOUR_DIRECTORY` por la ruta real de la carpeta en tu máquina. + +## Paso 2: Cargar la imagen – Base para *Generate PDF from Image* + +Cargar el archivo fuente es un paso pequeño pero crítico. Aspose.OCR espera un `ImageStream`, que abstrae la E/S de archivos y admite muchos formatos (TIFF, PNG, JPEG, etc.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**¿Por qué no pasar simplemente la ruta?** +El contenedor `ImageStream` maneja el búfer interno y asegura que el motor OCR trabaje con TIFFs de varias páginas sin cargar todo el archivo en memoria de una sola vez. + +## Paso 3: Configurar la exportación a PDF – *Embed Image PDF* para buscabilidad perfecta + +Al exportar los resultados OCR a PDF, tienes dos opciones: incrustar solo el texto extraído o incrustar la imagen original junto con la capa de texto oculta. Incrustar la imagen mantiene la fidelidad visual del escaneo y permite a los usuarios seleccionar o copiar texto después. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Caso límite:** Si estableces `EmbedOriginalImage` a `false`, el PDF resultante será más pequeño pero perderá la imagen original—útil para archivos puramente de texto. + +## Paso 4: Exportar – *OCR to PDF C#* en una sola llamada + +Aspose.OCR hace el trabajo pesado con una sola línea. El método `ExportToPdf` ejecuta OCR, construye la capa de texto oculta y escribe el archivo final. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Resultado esperado + +Al ejecutar el programa se muestra: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Abre `output.pdf` en cualquier visor (Adobe Reader, Edge, etc.) y prueba a seleccionar texto; verás la imagen original debajo, confirmando que la operación **create searchable pdf** se completó con éxito. + +## Paso 5: Verificar el PDF – Chequeos rápidos que puedes automatizar + +Aunque la inspección manual está bien para un solo archivo, quizá quieras comprobar programáticamente que el PDF contiene una capa de texto. Aspose.PDF (una biblioteca hermana) puede leer el documento y extraer texto: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Agrega una llamada a `VerifyPdfContainsText(pdfPath);` después de la exportación si deseas una verificación automática. + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **Falta de memoria con TIFFs enormes** | Cargar todo el archivo de una vez supera la RAM disponible. | Usa `ImageStream.FromFile` (como se muestra) y procesa las páginas una a una si tienes archivos de varias páginas. | +| **Licencia ausente genera marcas de agua** | El modo de evaluación añade una marca visible en cada página. | Aplica tu licencia de Aspose.OCR al inicio: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Separadores de ruta incorrectos en Linux** | El `\` codificado rompe en sistemas no Windows. | Usa `Path.Combine` o literales de cadena cruda con `/`. | +| **Texto no buscable** | `EmbedOriginalImage` está en `false` o el OCR está deshabilitado. | Asegúrate de que `PdfExportOptions.EmbedOriginalImage = true` y que el motor OCR esté correctamente inicializado. | + +## Bonus: Convertir TIF a PDF sin OCR (cuando no se necesita texto) + +Si solo necesitas **convertir TIF a PDF** sin la capa de texto oculta, puedes omitir completamente el paso de OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Este truco es útil para archivar documentos escaneados donde la buscabilidad no es un requisito. + +## Ejemplo completo listo para copiar y pegar + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Ejecuta el programa, abre `output.pdf` y verás una réplica fiel del TIFF original con una capa de texto oculta y seleccionable—exactamente lo que significa **create searchable pdf** en la práctica. + +## Conclusión + +Acabamos de recorrer un flujo de trabajo completo de **create searchable pdf** en C#. Partiendo de un TIFF crudo, **generamos pdf from image**, elegimos **embed image pdf** para mantener la fidelidad visual y demostramos todo el pipeline **ocr to pdf c#** usando Aspose.OCR. + +Siéntete libre de ajustar `PdfExportOptions` (compresión, versión de PDF, etc.) o encadenar varias imágenes para procesamiento por lotes. Próximamente podrías explorar añadir protección con contraseña, firmas digitales o incluso combinar varios PDFs buscables en un documento maestro. + +¿Tienes preguntas sobre escalar esto a miles de archivos o integrarlo en una API ASP.NET? Deja un comentario abajo o envíame un mensaje en GitHub—¡feliz codificación! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/spanish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..149b48507 --- /dev/null +++ b/ocr/spanish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Extraer texto de una imagen usando Aspose OCR en C#. Aprende cómo cargar + la imagen para OCR y reconocer texto de archivos TIFF con soporte GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: es +og_description: Extraer texto de una imagen con Aspose OCR en C#. Este tutorial muestra + cómo cargar una imagen para OCR y reconocer texto de un TIFF usando aceleración + GPU. +og_title: Extraer texto de una imagen en C# – Guía completa de OCR +tags: +- OCR +- C# +- Aspose +- GPU +title: Extraer texto de una imagen en C# – Guía completa de OCR +url: /es/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer texto de una imagen en C# – Guía completa de OCR + +¿Alguna vez necesitaste **extraer texto de una imagen** pero no estabas seguro de qué biblioteca manejaría un TIFF gigantesco sin colapsar? No estás solo. En muchos proyectos del mundo real—piensa en la digitalización de facturas o el archivo de libros escaneados—la capacidad de cargar una imagen para OCR y luego reconocer texto de un TIFF rápidamente se vuelve una característica decisiva. + +En esta guía recorreremos una solución práctica que hace exactamente eso usando Aspose OCR para .NET. Al final tendrás una aplicación de consola C# ejecutable que carga un escaneo de alta resolución, activa el procesamiento acelerado por GPU (con una caída elegante), y genera el resultado en texto plano. Sin piezas faltantes, sin callejones sin salida de “ver la documentación”. + +## Lo que necesitarás + +- **.NET 6 o posterior** (el código compila con cualquier SDK reciente) +- **Paquete NuGet Aspose.OCR para .NET** + `dotnet add package Aspose.OCR` +- Un **TIFF grande** o cualquier otro formato de imagen que quieras procesar con OCR + (el ejemplo usa `large_scan.tif`) +- (Opcional) Una GPU que soporte CUDA 11+ – si no tienes una, la biblioteca cambiará automáticamente al modo CPU. + +Eso es todo. Vamos al grano. + +![Extraer texto de una imagen usando Aspose OCR en C#](image-placeholder.png "Extraer texto de una imagen usando Aspose OCR en C#") + +## Paso 1: Extraer texto de la imagen – Inicializar el motor OCR + +Antes de que cualquier imagen pueda procesarse, necesitas una instancia de `OcrEngine`. El motor contiene todas las configuraciones que controlan cómo se ejecuta el reconocimiento. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Por qué es importante:** +`ProcessingMode.Gpu` puede ahorrar segundos en el tiempo de reconocimiento en una tarjeta moderna, pero establecer `ProcessingMode.Auto` (o dejar el valor predeterminado) es más seguro para entornos donde pueda faltar una GPU. La protección `GpuMemoryLimit` es un consejo práctico—sin ella, una imagen enorme podría monopolizar toda la VRAM y bloquear otras aplicaciones. + +## Paso 2: Cargar la imagen para OCR – Traer el TIFF a la memoria + +Ahora que el motor está listo, necesitamos alimentarle la foto que queremos analizar. Aspose proporciona `ImageStream.FromFile` que abstrae el manejo de formatos. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**¿Qué ocurre bajo el capó?** +`ImageStream.FromFile` lee el archivo en un stream y detecta automáticamente el formato de la imagen (TIFF, PNG, JPEG, etc.). Si trabajas con TIFF de varias páginas, Aspose tratará cada página como un fotograma separado; puedes iterar sobre ellos más tarde si lo necesitas. + +## Paso 3: Reconocer texto del TIFF – Ejecutar el motor OCR + +Con la imagen cargada, comienza el trabajo pesado. El método `Recognize` devuelve un objeto `OcrResult` que contiene el texto extraído y algunos campos de metadatos útiles. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**¿Por qué llamar a `Recognize` solo una vez?** +Porque el motor almacena en caché estructuras internas después de la primera ejecución, una única llamada es suficiente para la mayoría de los escenarios. Si necesitas procesar muchas páginas, reutiliza la misma instancia de `OcrEngine`—esto evita la sobrecarga de volver a inicializar contextos de GPU. + +## Paso 4: Mostrar el resultado – Ver el texto extraído + +Finalmente, mostramos la cadena reconocida en la consola. En una aplicación real probablemente la escribirías en una base de datos o en un archivo. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Salida esperada:** +Si `large_scan.tif` contiene una factura impresa, verás algo como: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +El diseño exacto depende de la imagen fuente, pero lo importante es que ahora tienes resultados de **extraer texto de imagen** listos para el procesamiento posterior. + +## Paso 5: Solución de problemas y casos límite + +### ¿GPU no detectada? + +Si ejecutas el ejemplo en una máquina sin GPU compatible, el motor cambia silenciosamente a CPU cuando usas `ProcessingMode.Auto`. Para forzar el modo CPU explícitamente, reemplaza la línea anterior con: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF que consumen mucha memoria + +Escaneos muy grandes (p. ej., 10 000 × 10 000 px) pueden seguir superando el límite de 1 GB de GPU que establecimos. En ese caso, aumenta `GpuMemoryLimit` (si tienes VRAM disponible) o reduce la escala de la imagen antes de pasarla al motor: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Documentos multipágina + +Si tu TIFF contiene varias páginas, recórrelas: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Soporte de idioma y fuentes + +Aspose OCR detecta automáticamente scripts basados en latín, pero para cirílico, árabe o fuentes personalizadas puede que necesites proporcionar un paquete de idioma: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Consejos profesionales y buenas prácticas + +- **Reutiliza el motor**: Crear un nuevo `OcrEngine` por imagen añade latencia notable. +- **Procesamiento por lotes**: Cuando manejes decenas de TIFF, encola y procesa en hilos paralelos—solo ten cuidado con la contención de memoria de GPU. +- **Valida la salida**: OCR no es perfecto; ejecuta una corrección ortográfica simple o una validación con expresiones regulares sobre `ocrResult.Text` para detectar errores evidentes. +- **Registra el rendimiento**: Mide el tiempo transcurrido con `Stopwatch` antes y después de `Recognize` para decidir si la aceleración por GPU vale la pena en tu entorno. + +## Conclusión + +Ahora tienes un ejemplo completo, de extremo a extremo, que **extrae texto de imágenes** usando Aspose OCR en C#. Al cargar la imagen para OCR, invocar el motor para reconocer texto de TIFF y manejar escenarios de GPU vs. CPU, este tutorial te brinda una base lista para producción que puedes adaptar a facturas, pasaportes o cualquier documento escaneado. + +¿Qué sigue? Prueba cambiar el TIFF por un PDF multipágina, experimenta con paquetes de idioma personalizados, o canaliza la salida a una tubería de procesamiento de lenguaje natural para extracción automática de datos. El cielo es el límite—¡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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/spanish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..a0847a3bf --- /dev/null +++ b/ocr/spanish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-04-11 +description: Extrae texto de archivos TIFF usando el procesamiento por lotes de Aspose + OCR en C#. Aprende cómo procesar OCR por lotes de manera eficiente y obtener retroalimentación + de progreso en tiempo real. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: es +og_description: Extraiga texto de archivos TIFF usando el procesamiento por lotes + de Aspose OCR en C#. Este tutorial muestra paso a paso cómo procesar OCR por lotes + y leer el progreso. +og_title: Extraer texto de TIFF con OCR por lotes en C# – Guía completa +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extraer texto de TIFF con OCR por lotes en C# – Guía completa +url: /es/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer texto de TIFF – Guía completa de OCR por lotes + +¿Alguna vez necesitaste **extraer texto de archivos TIFF** pero te quedaste atascado en la parte del procesamiento por lotes? No eres el único. En muchos proyectos de automatización de documentos, manejar decenas de imágenes TIF de alta resolución puede convertirse rápidamente en un cuello de botella, especialmente cuando deseas retroalimentación en tiempo real sobre el progreso. + +¿La buena noticia? Con Aspose OCR puedes **process batch OCR** en unas pocas líneas, obtener eventos de progreso en tiempo real y generar el texto reconocido para cada imagen. En este tutorial recorreremos una aplicación de consola C# lista para ejecutar que hace exactamente eso. + +Cubrirémos todo lo que necesitas saber: paquetes requeridos, por qué cada línea es importante, casos límite como archivos faltantes y cómo verificar los resultados. Al final podrás incorporar el ejemplo en tu propia solución y comenzar a extraer texto de imágenes TIFF de inmediato. + +## Lo que necesitarás + +- **.NET 6 o posterior** (el código también compila con .NET Core) +- **Aspose.OCR for .NET** paquete NuGet – `Install-Package Aspose.OCR` +- Una carpeta que contenga algunas imágenes **TIFF** que deseas leer (la demostración usa `img1.tif`, `img2.tif`, `img3.tif`) +- Cualquier IDE que prefieras – Visual Studio, Rider o VS Code sirve + +No se requiere configuración adicional; la biblioteca incluye su propio motor OCR, por lo que no tendrás que instalar binarios nativos externos. + +--- + +## Paso 1 – Crear la instancia del motor OCR + +Lo primero que haces es iniciar un `OcrEngine`. Piensa en él como el cerebro que analizará cada píxel y lo convertirá en caracteres. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Por qué es importante:** +> El motor contiene modelos de idioma internos y configuraciones (p. ej., DPI, idioma). Crearlo una vez y reutilizarlo para un lote es mucho más eficiente que instanciar un nuevo motor por imagen. + +--- + +## Paso 2 – Conectar eventos de progreso en tiempo real + +Si estás procesando decenas de archivos TIFF, un indicador de progreso puede evitar que te preguntes si la aplicación se ha quedado bloqueada. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +El evento `ProgressChanged` se dispara después de que cada imagen termina, proporcionándote `Current`, `Total` y `Percentage`. Este es el bucle de retroalimentación de **process batch OCR** que la mayoría de los desarrolladores olvidan implementar. + +--- + +## Paso 3 – Construir una lista de flujos de imagen + +Aspose.OCR trabaja con objetos `ImageStream`. La forma más sencilla es cargar cada TIFF desde el disco. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Consejo:** +> Si tienes una carpeta dinámica, reemplaza la lista codificada con `Directory.GetFiles(path, "*.tif")` y `Select(ImageStream.FromFile)` – de esa manera realmente **process batch OCR** sin actualizaciones manuales. + +--- + +## Paso 4 – Ejecutar el proceso OCR por lotes + +Ahora ocurre el trabajo pesado. `ProcessBatch` devuelve una lista de solo lectura de objetos `OcrResult`, cada uno conteniendo el texto extraído y las puntuaciones de confianza. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Por qué es eficiente:** +> El motor reutiliza el mismo modelo de idioma en todas las imágenes, reduciendo drásticamente el consumo de memoria en comparación con llamadas de una sola imagen. + +--- + +## Paso 5 – Mostrar o almacenar el texto reconocido + +Finalmente, itera sobre los resultados. En un proyecto real podrías escribirlos en una base de datos o en un archivo JSON, pero para esta demostración simplemente los imprimiremos en la consola. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Salida esperada en la consola** (truncada por brevedad): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Si alguna imagen falla, `result.Text` será una cadena vacía, y el evento `ProgressChanged` seguirá informando el elemento como procesado, de modo que puedas registrar los fallos por separado. + +--- + +## El manejador del evento de progreso (código completo) + +Coloca este método en cualquier parte dentro de la clase `BatchDemo`, preferiblemente después de `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Consejo profesional:** +> Redirige esta salida a una barra de progreso de UI si estás construyendo una aplicación de escritorio; el mismo evento funciona para WinForms, WPF o incluso notificaciones de ASP.NET Core SignalR. + +--- + +## Ejemplo completo, listo para ejecutar + +Juntando todo, aquí tienes el programa completo que puedes copiar y pegar en un nuevo proyecto de consola. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Guarda el archivo como `Program.cs`, ejecuta `dotnet add package Aspose.OCR`, reemplaza `YOUR_DIRECTORY` con la ruta real y pulsa **Ctrl+F5**. Deberías ver los números de progreso seguidos del texto extraído para cada TIFF. + +--- + +## Manejo de casos límite comunes + +| Situación | Qué observar | Solución rápida | +|-----------|--------------|-----------------| +| **TIFF faltante o corrupto** | `ImageStream.FromFile` lanza `FileNotFoundException` o `ArgumentException`. | Envuelve la creación de la lista en un `try/catch` y omite los archivos inválidos, registrando el problema. | +| **Imágenes muy grandes ( >10 MP )** | OCR puede consumir mucha RAM y ralentizarse. | Reduce DPI antes de procesar: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Texto no inglés** | El modelo de idioma predeterminado es inglés. | Establece `ocrEngine.Language = Language.Spanish;` (o cualquier idioma soportado). | +| **Necesidad de guardar resultados** | La salida de consola no es persistente. | Escribe `result.Text` a un archivo `.txt` usando `File.WriteAllText`. | + +--- + +## Próximos pasos y temas relacionados + +- **Extraer texto de PDF** – API similar, solo reemplaza `ImageStream` con `PdfDocument`. +- **OCR por lotes en paralelo** – para cargas de trabajo masivas, inicia múltiples instancias de `OcrEngine` en hilos separados; recuerda respetar los límites de licencia. +- **Post‑procesamiento** – ejecuta la salida OCR a través de un corrector ortográfico o expresiones regulares para limpiar artefactos comunes del OCR. + +Todas estas extensiones siguen basándose en la idea central de **process batch OCR** y pueden añadirse de forma incremental. + +## Conclusión + +Acabamos de demostrar cómo **extraer texto de archivos TIFF** de manera eficiente mediante **process batch OCR** con Aspose OCR en C#. El ejemplo crea un único motor, se suscribe a eventos de progreso, carga una lista de flujos de imagen, ejecuta el lote y muestra cada resultado. + +Desde aquí puedes integrar la salida en bases de datos, generar PDFs buscables o alimentar el texto a pipelines de NLP posteriores. El cielo es el límite—experimenta con configuraciones de idioma, ajustes de DPI y ejecución paralela para adaptarlo a tu carga de trabajo específica. + +¿Tienes preguntas o quieres compartir cómo personalizaste el lote? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/spanish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..401a3ee1c --- /dev/null +++ b/ocr/spanish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-04-11 +description: Aprende a reconocer texto de PNG y extraer texto de una imagen en C# + usando Aspose OCR. Incluye pasos para cargar el archivo de imagen en C#, corrección + ortográfica y el código completo. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: es +og_description: Reconoce texto de PNG fácilmente con C#. Sigue esta guía paso a paso + para cargar un archivo de imagen con C#, extraer texto de la imagen con C# y ejecutar + una corrección ortográfica. +og_title: reconocer texto de PNG en C# – Tutorial completo de OCR +tags: +- OCR +- C# +- Aspose +title: Reconocer texto de PNG en C# – Guía completa de OCR y corrección ortográfica +url: /es/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconocer texto de png – Tutorial completo de OCR y corrección ortográfica en C# + +¿Alguna vez necesitaste **reconocer texto de png** pero no estabas seguro de qué biblioteca elegir? No estás solo; muchos desarrolladores se topan con ese obstáculo cuando abordan por primera vez la extracción de datos basada en imágenes. ¿La buena noticia? Con Aspose OCR puedes cargar un archivo de imagen en C#, extraer el texto e incluso ejecutar un corrector ortográfico incorporado, todo en unas pocas líneas. + +En esta guía recorreremos todo el proceso: cargar el PNG, llamar al motor OCR y, finalmente, verificar palabras mal escritas. Al final podrás **extraer texto de imagen C#** en tus proyectos sin buscar en documentación dispersa. No se requiere experiencia previa en OCR, solo un entorno de desarrollo .NET. + +## Lo que necesitarás + +- **.NET 6.0** (o cualquier versión reciente de .NET) – la API funciona igual en .NET Core y Framework. +- **Aspose.OCR for .NET** paquete NuGet – instálalo mediante `dotnet add package Aspose.OCR`. +- Una **imagen PNG** que contenga texto legible (p. ej., `letter.png` ubicada en una carpeta que controles). +- Un editor de código o IDE (Visual Studio, VS Code, Rider—elige el que prefieras). + +Eso es todo. Sin motores OCR adicionales, sin DLLs nativas, solo un paquete administrado limpio. + +--- + +## Paso 1: Cargar el archivo de imagen PNG en C# + +Antes de que el motor OCR pueda hacer algo, necesita un flujo que apunte a la imagen. Aspose proporciona `ImageStream.FromFile`, que abstrae los detalles del sistema de archivos. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Consejo profesional:** Si tu imagen está incrustada como recurso o proviene de una solicitud web, puedes usar `ImageStream.FromBytes(byte[])` en su lugar—no necesitas tocar el sistema de archivos. + +### Por qué es importante cargar + +Cargar la imagen correctamente garantiza que el motor OCR reciba los datos de píxeles exactos que espera. Un flujo corrupto hará que `Recognize` lance una excepción, y perderás tiempo depurando más tarde. + +--- + +## Paso 2: Inicializar el motor OCR + +Crear una instancia de `OcrEngine` es barato, pero puede que quieras ajustar el idioma o la configuración de precisión para casos de uso específicos (p. ej., documentos multilingües). El constructor predeterminado funciona bien para texto en inglés. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### ¿Por qué una instancia del motor? + +El motor mantiene la configuración (idioma, filtros de preprocesamiento, etc.). Al separar la configuración de la imagen, puedes reutilizar el mismo motor para muchos archivos—ideal para procesamiento por lotes. + +--- + +## Paso 3: Reconocer texto del PNG + +Ahora ocurre la magia. `Recognize` devuelve un objeto `OcrResult` que contiene la cadena cruda, puntuaciones de confianza y más. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Salida esperada** (suponiendo que `letter.png` dice “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Si la imagen contiene varias líneas, el resultado conserva los saltos de línea, lo que facilita el procesamiento posterior. + +### Caso límite: PNGs de baja resolución + +Si el resultado OCR se ve distorsionado, considera escalar la imagen o ajustar `ocrEngine.PreprocessingOptions`. Las imágenes de baja DPI a menudo pierden detalle del que depende el motor. + +--- + +## Paso 4: Ejecutar el corrector ortográfico incorporado + +Aspose OCR incluye un módulo de corrección ortográfica ligero que funciona directamente sobre el resultado OCR. Este paso te ayuda a detectar errores de reconocimiento como “H3llo” en lugar de “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Salida de ejemplo** (si el OCR interpreta “World” como “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### ¿Por qué la corrección ortográfica? + +El OCR nunca es 100 % perfecto, especialmente con fondos ruidosos. Una corrección ortográfica rápida puede filtrar errores obvios antes de que ingreses el texto en análisis posteriores o bases de datos. + +--- + +## Paso 5: Juntar todo – Ejemplo completo y funcional + +A continuación se muestra el programa completo, listo para ejecutar. Copia y pega en un nuevo proyecto de consola, ajusta la ruta de la imagen y pulsa **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Ejecutar la demo** imprime el texto OCR seguido de cualquier sugerencia ortográfica. Funciona con cualquier PNG que contenga texto impreso en inglés claro. Para otros idiomas, simplemente establece `ocrEngine.Language` según corresponda. + +--- + +## Preguntas frecuentes y trucos + +| Pregunta | Respuesta | +|----------|-----------| +| *¿Puedo procesar archivos JPEG o BMP?* | Absolutamente—`ImageStream.FromFile` acepta cualquier formato soportado por Aspose (PNG, JPEG, BMP, TIFF). | +| *¿Qué pasa si la imagen está en un flujo de memoria?* | Use `ImageStream.FromBytes(byteArray)` o `ImageStream.FromStream(stream)`. | +| *¿El corrector ortográfico es consciente del idioma?* | Sí, respeta el idioma configurado en el motor OCR. | +| *¿Cómo mejoro la precisión en imágenes sesgadas?* | Active `ocrEngine.PreprocessingOptions.Deskew = true;` antes de llamar a `Recognize`. | +| *¿Necesito una licencia para Aspose.OCR?* | Una prueba gratuita funciona hasta 100 páginas. Para producción, obtén una licencia para eliminar marcas de agua. | + +--- + +## Próximos pasos – Más allá del OCR básico + +Ahora que puedes **reconocer texto de png** y **extraer texto de imagen C#**, considera estas extensiones: + +1. **Procesamiento por lotes** – Recorrer un directorio de PNG y escribir cada resultado OCR en un archivo `.txt` separado. +2. **Integración con Azure Cognitive Services** – Combina Aspose OCR con APIs de traducción en la nube para flujos multilingües. +3. **Extracción de datos estructurados** – Usa expresiones regulares en `recognizedText` para extraer fechas, números de factura o direcciones. +4. **Ajuste de rendimiento** – Para grandes volúmenes, reutiliza una única instancia de `OcrEngine` y habilita multihilo. + +Cada una de estas se basa en los pasos básicos que cubrimos, permitiéndote convertir una imagen simple en datos accionables. + +--- + +## Conclusión + +Hemos recorrido un ejemplo completo de extremo a extremo que muestra cómo **reconocer texto de png** en C#, **cargar archivo de imagen C#** correctamente, y luego **extraer texto de imagen C#** mientras se detectan errores ortográficos. El código es autónomo, las explicaciones cubren tanto el “cómo” como el “por qué”, y ahora tienes una base sólida para cualquier funcionalidad impulsada por OCR que necesites. + +Pruébalo, ajusta las opciones de preprocesamiento y observa cuán limpio puede quedar tu texto extraído. Si encuentras algún inconveniente, 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/swedish/net/ocr-configuration/_index.md b/ocr/swedish/net/ocr-configuration/_index.md index 7431b04a2..150483483 100644 --- a/ocr/swedish/net/ocr-configuration/_index.md +++ b/ocr/swedish/net/ocr-configuration/_index.md @@ -61,6 +61,8 @@ Lås upp kraften i 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. ### [OCROoperation med lista i OCR-bildigenkänning](./ocr-operation-with-list/) Lås upp potentialen i Aspose.OCR för .NET. Utför OCR‑bildigenkänning med listor utan ansträngning. Öka produktivitet och datautdragning i dina applikationer. +### [Hur du inaktiverar OCR i C# – Offline Aspose OCR-guide](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Lär dig hur du stänger av OCR-funktionen i C#‑applikationer för offline-användning med Aspose OCR. ### Vanliga användningsfall - **Extrahera textbilder** från skannade fakturor för automatiserad bokföring. @@ -99,4 +101,4 @@ A: Ja, `OcrResult`‑objektet ger förtroendevärden som du kan inspektera progr {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/swedish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..a3576789b --- /dev/null +++ b/ocr/swedish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: Lär dig hur du inaktiverar OCR i Aspose OCR för C# för att köra offline, + extrahera text från en bild utan internet och korrekt ladda bilden för OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: sv +og_description: Hur du inaktiverar OCR i Aspose OCR för C# och kör offline, extraherar + text från en bild utan att behöva internet, och enkelt laddar bild för OCR. +og_title: Hur man inaktiverar OCR i C# – Offline Aspose OCR‑guide +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Hur du inaktiverar OCR i C# – Offline Aspose OCR‑guide +url: /sv/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man inaktiverar OCR i C# – Offline Aspose OCR‑guide + +Har du någonsin funderat **hur man inaktiverar OCR** när du behöver en riktigt offline‑lösning? Kanske bygger du en säker skrivbordsapp som inte kan förlita sig på en nätverksanslutning, eller så vill du bara undvika oväntade nedladdningar. Oavsett är den goda nyheten att Aspose OCR låter dig stänga av sin automatiska resurshämtning, peka den mot en lokal mapp och hålla allt på‑premises. I den här handledningen får du också se hur du **extraherar text från bild**‑filer och korrekt **laddar bild för OCR** utan några problem. + +Vi går igenom ett komplett, färdigt exempel som visar varje steg – från att initiera motorn till att skriva ut den igenkända japanska texten. Inga externa dokument, ingen gömd magi; bara ren C#‑kod som du kan klistra in i ditt projekt idag. När du är klar vet du varför det är viktigt att inaktivera den automatiska nedladdningsfunktionen, hur du anger sökvägen till resurserna och vilka fallgropar du bör hålla utkik efter. + +## Förutsättningar + +- .NET 6.0 (eller någon nyare .NET‑version) installerad på din maskin. +- Aspose.OCR för .NET NuGet‑paket (`Install-Package Aspose.OCR`). +- En mapp som redan innehåller de språkresurser du behöver (t.ex. den japanska modellen). +- En bildfil (`japan_doc.png`) som du vill köra OCR på. + +Om du saknar språkpaketen, hämta dem en gång från Aspose‑portalen, packa upp dem i en mapp som `AsposeOCRResources`, så är du klar. Inga ytterligare nedladdningar sker när du har inaktiverat den automatiska nedladdningsfunktionen. + +![Hur man inaktiverar OCR offline](/images/how-to-disable-ocr.png "illustration av hur man inaktiverar OCR") + +## Steg 1 – Skapa OCR‑motorn + +Det första du gör är att instansiera `OcrEngine`. Tänk på detta objekt som hjärnan som kommer att läsa din bild. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Varför detta är viktigt:** Utan en motor kan du inte konfigurera någonting. Objektet innehåller alla inställningar, inklusive den avgörande flaggan som talar om för biblioteket huruvida det får nå internet. + +## Steg 2 – Inaktivera automatisk resurshämtning + +Som standard försöker Aspose OCR hämta saknade språkfiler i farten. För att hålla allt offline, sätt `AutoDownloadResources`‑växeln till `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Proffstips:** Att stänga av detta garanterar inte bara integritet utan snabbar också upp den första igenkänningskörningen eftersom motorn inte slösar tid på att leta efter uppdateringar. + +## Steg 3 – Peka på din lokala resursermapp + +Berätta nu för motorn var de för‑nedladdade språkpaketen finns. Detta är den sökväg du satte upp i förutsättningarna. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Vad kan gå fel?** Om sökvägen är fel eller den nödvändiga språkfilen saknas, kastar motorn ett `ResourceNotFoundException`. Dubbelkolla mappnamnet och att den japanska modellen (`jpn.traineddata`) finns där. + +## Steg 4 – Välj den lokala språkmodellen + +Välj det språk du faktiskt har på disken. I vårt exempel använder vi japanska, men du kan byta `Language.Japanese` mot vilket annat språk du har laddat ner. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Edge case:** Vissa språk kräver extra ordböcker (t.ex. kinesiska). Se till att dessa hjälpfiler också finns i samma resursermapp. + +## Steg 5 – Ladda bilden för OCR + +Här **laddar vi bild för OCR**. Metoden `ImageStream.FromFile` läser filen till en ström som Aspose kan bearbeta. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Tips:** Stödda format inkluderar PNG, JPEG, BMP och TIFF. Om du behöver hantera PDF‑filer, konvertera varje sida till en bild först. + +## Steg 6 – Kör igenkänningsprocessen + +Nu läser motorn faktiskt pixlarna och försöker omvandla dem till text. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Varför detta steg kan vara långsamt:** OCR är CPU‑intensivt, särskilt för högupplösta bilder. Om prestanda är ett problem, överväg att skala ner bilden innan igenkänning. + +## Steg 7 – Skriv ut den extraherade texten + +Till sist **extraherar vi text från bild** och skriver ut den i konsolen. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +När du kör programmet bör de japanska tecknen som fanns i `japan_doc.png` visas. Om allt är korrekt konfigurerat ser du ett rent block med Unicode‑text i din konsol. + +### Förväntad utdata + +``` +これはサンプルの日本語テキストです。 +``` + +(Din faktiska utdata beror på innehållet i bilden.) + +## Vanliga fallgropar & hur du undviker dem + +| Problem | Varför det händer | Lösning | +|-------|----------------|-----| +| **Saknad språkfil** | `AutoDownloadResources` är falskt, så motorn kan inte hämta den. | Verifiera att `ResourcesPath` pekar på mappen som innehåller `jpn.traineddata`. | +| **Felaktig bildsökväg** | `ImageStream.FromFile` kastar `FileNotFoundException`. | Använd absoluta sökvägar eller säkerställ att arbetskatalogen är korrekt. | +| **Ej stödd bildformat** | Aspose läser bara vissa format. | Konvertera din bild till PNG eller JPEG innan du anropar `FromFile`. | +| **Minnesbrist på stora bilder** | OCR laddar hela bilden i minnet. | Ändra storlek eller dela upp bilden, eller öka processens minnesgräns. | + +## Utöka exemplet + +- **Batch‑bearbetning:** Loopa igenom en katalog med bilder, anropa samma igenkänningskod och skriv varje resultat till en separat `.txt`‑fil. +- **Olika språk:** Byt `Language.Japanese` mot `Language.English` (eller något annat) efter att du placerat motsvarande resursfiler. +- **Anpassad förbehandling:** Använd Aspose.Imaging för att räta upp eller förbättra kontrasten innan OCR för bättre noggrannhet. + +## Slutsats + +Du vet nu **hur man inaktiverar OCR** i Aspose OCR för C# och kör den helt offline. Genom att sätta `AutoDownloadResources` till `false`, peka motorn mot en lokal resursermapp och korrekt **ladda bild för OCR**, kan du på ett pålitligt sätt **extrahera text från bild** utan att nå internet. Detta tillvägagångssätt är idealiskt för säkra miljöer, CI‑pipelines eller alla scenarier där nätverksåtkomst är begränsad. + +Redo för nästa steg? Prova att bearbeta en hel mapp med skannade PDF‑filer, experimentera med olika språkpaket, eller integrera OCR‑resultatet i en sökbar databas. Den offline‑konfiguration du byggt idag är en solid grund för alla on‑premises dokument‑bearbetningsarbetsflöden. + +Lycka till med kodandet, och lämna gärna en kommentar om du stöter på några problem! + +{{< /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 c5eb6aaed..6990b6dd8 100644 --- a/ocr/swedish/net/ocr-optimization/_index.md +++ b/ocr/swedish/net/ocr-optimization/_index.md @@ -74,6 +74,7 @@ Utforska Aspose.OCR för .NET. Öka OCR‑noggrannheten med förbehandlingsfilte 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 Image Recognition](./save-multipage-result-as-document/) Lås upp potentialen i Aspose.OCR för .NET. Spara enkelt flersidiga OCR‑resultat som dokument med denna omfattande steg‑för‑steg‑guide. +### [Hur man förbättrar OCR‑noggrannhet i C# med Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) ## Vanliga frågor diff --git a/ocr/swedish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/swedish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..4bc81750a --- /dev/null +++ b/ocr/swedish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-04-11 +description: Lär dig hur du förbättrar OCR i C# genom att känna igen text från JPG, + räta upp bilder och ta bort brus med Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: sv +og_description: Upptäck hur du förbättrar OCR genom att känna igen text från JPG, + räta upp bilder och ta bort brus – komplett C#‑guide. +og_title: Hur man förbättrar OCR‑noggrannheten i C# med Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Hur man förbättrar OCR‑noggrannheten i C# med Aspose OCR +url: /sv/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Så förbättrar du OCR‑noggrannheten i C# med Aspose OCR + +Har du någonsin funderat **hur man förbättrar OCR**‑resultat när dina skanningar ser mer ut som abstrakt konst än läsbar text? Du är inte ensam. I många verkliga projekt—tänk fakturor, kvitton eller handskrivna anteckningar—är källbilderna ofta snedställda, korniga eller bara rena brusiga. Den goda nyheten? Aspose OCR ger dig ett antal förbehandlingsinställningar som kan förvandla det där kaoset till rena, maskinläsliga tecken. I den här handledningen går vi igenom ett komplett, körbart exempel som visar **hur man förbättrar OCR** genom att **läsa text från JPG**, räta upp bilden och ta bort oönskat brus. + +> *Proffstips:* Om du hoppar över förbehandling får du sannolikt ett förvrängt resultat som ser ut som ett kryptiskt korsord. Låt oss undvika det. + +![Hur man förbättrar OCR med Aspose OCR‑förbehandling](https://example.com/ocr-preprocess.png "hur man förbättrar OCR med Aspose OCR") + +## Vad du kommer att lära dig + +Under de kommande minuterna får du se: + +1. Hur du konfigurerar Aspose OCR‑motorn för optimal noggrannhet. +2. Den exakta koden som behövs för att **läsa text från JPG**‑filer. +3. Varför aktivering av *AutoDeskew* och *RemoveNoise* är viktigt och hur du finjusterar dem. +4. Hur du **extraherar text från bild**‑filer utan att skriva ett eget filter. +5. Vanliga fallgropar (saknad fil, format som inte stöds) och snabba lösningar. + +När du är klar har du en enda C#‑konsolapp som kan ta vilken JPG som helst, rensa upp den och skriva ut den extraherade strängen—redo för vidare bearbetning eller lagring. + +## Förutsättningar + +- .NET 6.0 SDK eller senare (exemplet använder top‑level‑statements för korthet). +- Aspose.OCR NuGet‑paket (`dotnet add package Aspose.OCR`). +- En exempel‑JPG‑bild (namngiven `input.jpg`) placerad i samma mapp som den körbara filen. +- Grundläggande kunskap om C#—inga avancerade koncept krävs. + +Om du redan har ett projekt, släng bara in koden; annars skapa en ny konsolapp: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Nu dyker vi ner i koden. + +## Så förbättrar du OCR: Översikt över förbehandlingsinställningar + +Kärnan i **hur man förbättrar OCR** ligger i objektet `PreprocessSettings`. Tänk på det som en mini‑bildredigerare som körs *innan* själva teckenigenkänningsmotorn aktiveras. Nedan följer en snabb genomgång av de mest påverkningsfulla flaggorna: + +| Inställning | Vad den gör | Typiskt användningsfall | +|------------------------|----------------------------------------------------------|--------------------------| +| `AutoDeskew` | Tillämpar en djup‑inlärnings‑de‑skew‑algoritm. | Skannade sidor som är lite snedställda. | +| `AdaptiveThreshold` | Ökar kontrasten i svagt ljus eller blekta bilder. | Gamla kvitton med urtvättad bläck. | +| `RemoveNoise` | Kör ett Gaussian‑blur‑filter för att dämpa prickar. | Fotografi tagna med mobilens blixt. | +| `NoiseRemovalStrength`| Styr aggressiviteten (1 = låg, 3 = hög). | Finjustera beroende på hur kornig källan är. | + +Att aktivera dessa alternativ är i princip “den hemliga såsen” för **hur man förbättrar OCR** på imperfekta indata. + +## Läs text från JPG med Aspose OCR + +Nedan är det fullständiga, färdiga programmet. Varje rad är kommenterad så att du kan se *varför* varje del finns, inte bara *vad* den gör. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Förväntad utdata + +Om `input.jpg` innehåller frasen “Invoice #12345 – Total: $256.78”, kommer konsolen att skriva ut: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Lägg märke till att utdata är ren, med bindestrecket och dollartecknet bevarade—precis vad du förväntar dig när du **extraherar text från bild**‑filer. + +## Så räter du upp bilden med förbehandlingsinställningar + +Varför spelar upprätning roll? Även en lutning på 2 grader kan förvirra segmenteringssteget för tecken, vilket leder till felidentifierade bokstäver. Flaggan `AutoDeskew` kör ett konvolutionellt neuralt nätverk under huven som upptäcker den dominerande vinkeln och roterar bilden tillbaka till baslinjen. + +Om du behöver mer kontroll kan du manuellt ange vinkeln: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **När du ska använda manuell upprätning:** Om du vet att kameran konsekvent lutar bilder med ett fast värde (t.ex. en monterad skanner), sparar hårdkodning av vinkeln en liten mängd processortid. + +## Så tar du bort brus för renare extraktion + +Brus visas som slumpmässiga prickar eller korn, särskilt på bilder i svagt ljus. Flaggan `RemoveNoise` applicerar ett bilateralt filter som jämnar ut bakgrunden samtidigt som kanterna (de faktiska tecknen) bevaras. Egenskapen `NoiseRemovalStrength` låter dig justera aggressiviteten: + +| Styrka | Effekt | +|--------|--------| +| 1 | Lätt jämning—bra för lätt korniga bilder. | +| 2 | Balans—fungerar för de flesta mobilfångster. | +| 3 | Kraftig jämning—använd när bilden är extremt brusig, men var försiktig så att tunna streck inte suddas ut. | + +Om du stöter på ett scenario där små teckensnitt blir oläsliga efter kraftig jämning, sänk helt enkelt styrkan eller inaktivera filtret. + +## Extrahera text från bild: Utöver JPG + +Även om vårt demo fokuserar på en JPG, stödjer Aspose OCR PNG, BMP, TIFF och till och med PDF‑sidor. För att **extrahera text från bild**‑format andra än JPG, ändra bara filändelsen i `ImageStream.FromFile`. För flersidiga TIFF‑filer kan du loopa igenom varje sida: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Detta kodsnutt visar hur du kan skala samma **hur man förbättrar OCR**‑arbetsflöde för att batch‑processa en hel stapel skannade dokument. + +## Vanliga fallgropar & hur du åtgärdar dem + +| Symptom | Trolig orsak | Snabb lösning | +|-----------------------|-------------------------------------------|----------------| +| Tom utdata | Bilden blir helt vit efter förbehandling (överdriven tröskel) | Minska `NoiseRemovalStrength` eller sätt `AdaptiveThreshold = false`. | +| Förvrängda tecken | Fel språkmodell (standard är engelska) | Sätt `ocrEngine.Settings.Language = Language.English;` eller ladda ett anpassat språkpaket. | +| Krasch vid stora filer| Minnesbrist på grund av högupplöst bild | Skala ner med `ocrEngine.Settings.ImageResizeFactor = 0.5;` före igenkänning. | +| Ingen utdata för roterade skanningar | `AutoDeskew` oavsiktligt inaktiverad | Aktivera `AutoDeskew = true` eller ange korrekt `DeskewAngle`. | + +Att ha dessa i åtanke sparar dig timmar av felsökning när du försöker **hur man förbättrar OCR** i produktionspipeline. + +## Bonus: Justering för hastighet vs. noggrannhet + +Om du bearbetar tusentals kvitton per dag kan du prioritera hastighet. Stäng av `AdaptiveThreshold` och sätt `NoiseRemovalStrength = 1`. Omvänt, för juridiska dokument där ett enda felaktigt tecken kan bli kostsamt, håll alla flaggor på och överväg att öka `NoiseRemovalStrength` till 3. + +## Sammanfattning + +Vi har gått igenom hela resan för **hur man förbättrar OCR** i C# med Aspose OCR: från att skapa motorn, konfigurera förbehandling (grundstenen för *hur man räter upp bild* och *hur man tar bort brus*), läsa in en JPG, känna igen text och hantera kantfall. Koden är självständig, körs direkt och demonstrerar exakt de steg du behöver för att **läsa text från jpg** och **extrahera text från bild**‑filer. + +### Vad blir nästa steg? + +- Experimentera med andra bildformat (PNG, TIFF) för att se hur samma inställningar beter sig. +- Integrera OCR‑utdata i en databas eller + +{{< /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 fbefcc10b..5f8056d35 100644 --- a/ocr/swedish/net/text-recognition/_index.md +++ b/ocr/swedish/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Extrahera text från bild i C# – Komplett OCR-guide](./extract-text-from-image-in-c-complete-ocr-guide/) +Lär dig steg-för-steg hur du extraherar text från bilder i C# med en komplett OCR-guide. +### [Extrahera text från TIFF med batch-OCR i C# – Komplett guide](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Lär dig steg-för-steg hur du extraherar text från TIFF-filer med batch-OCR i C# för effektiv bildbehandling. +### [Skapa sökbar PDF i C# – Komplett guide](./create-searchable-pdf-in-c-complete-guide/) +Lär dig steg-för-steg hur du skapar en sökbar PDF i C# med en komplett guide. +### [Känn igen text från PNG i C# – Fullständig OCR‑ och stavningskontrollguide](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Lär dig steg-för-steg hur du känner igen text från PNG-filer i C# med fullständig OCR och stavningskontroll. +### [Konvertera bild till JSON – C# OCR‑handledning för kvitton](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Lär dig hur du konverterar en bild till JSON med C# OCR för att extrahera data från kvitton. + {{< /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/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/swedish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..5abd9e452 --- /dev/null +++ b/ocr/swedish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: Konvertera bild till JSON med Aspose OCR Cloud i C#. Lär dig hur du känner + igen text, extraherar text från en bild och bearbetar kvitto med OCR på några minuter. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: sv +og_description: Konvertera bild till JSON med Aspose OCR Cloud i C#. Denna guide visar + hur du känner igen text, extraherar text från en bild och bearbetar kvitto med OCR. +og_title: Konvertera bild till JSON – C# OCR-handledning för kvitton +tags: +- OCR +- C# +- Aspose +- JSON +title: Konvertera bild till JSON – C# OCR-handledning för kvitton +url: /sv/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera bild till JSON – C# OCR‑handledning för kvitton + +Har du någonsin behövt **convert image to JSON** men varit osäker på var du ska börja? I den här guiden går vi igenom en komplett, end‑to‑end C# OCR‑handledning som tar ett foto av ett kvitto, känner igen texten och levererar en prydlig JSON‑payload. + +Om du någonsin har funderat på *how to recognize text* i ett skannat dokument, eller letar efter ett snabbt sätt att **extract text from image**‑filer, är du på rätt plats. I slutet av den här artikeln kommer du att kunna **process receipt with OCR** och skicka resultatet direkt till dina downstream‑API:er. + +## Vad du behöver + +- .NET 6 SDK eller senare (koden fungerar även med .NET Core) +- En Aspose Cloud API‑nyckel – du kan skaffa en gratis provperiod från Aspose‑portalen +- En exempel‑kvitto‑bild (`receipt.jpg`) lagrad lokalt +- Din favorit‑IDE (Visual Studio, VS Code, Rider – vad som helst går) + +Inga extra NuGet‑paket utöver den officiella `Aspose.OCR.Cloud`‑klienten behövs. Om du redan har SDK:n installerad är du redo att köra. + +## Steg 1 – Convert Image to JSON: Ställ in OCR‑klienten + +Först och främst behöver vi en instans av `CloudOcrClient`. Detta objekt hanterar all kommunikation med Asposes OCR‑tjänst och kommer att returnera resultatet i JSON‑format. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Varför detta är viktigt:** Att initiera klienten är bron mellan din C#‑kod och moln‑OCR‑motorn. `RecognizeAsync`‑metoden gör det tunga arbetet – den laddar upp bilden, kör OCR‑motorn och returnerar en JSON‑sträng som innehåller den igenkända texten, förtroendescore och koordinater för avgränsningsrutor. + +> **Proffstips:** Spara API‑nyckeln i en miljövariabel eller en hemlighets‑hanterare istället för att hårdkoda den. På så sätt undviker du oavsiktliga läckor. + +## Steg 2 – How to Recognize Text from the Receipt + +Nu när klienten är klar, låt oss gräva i *hur* bakom textigenkänning. Aspose OCR stödjer många språk, men för de flesta kvitton fungerar engelska bra. Om du behöver ett annat språk, byt helt enkelt `Language.English` mot rätt enum‑värde. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Vad händer under huven?** Tjänsten kör en deep‑learning‑modell som upptäcker tecken, grupperar dem till ord och sedan sätter ihop rader. Den returnerade JSON‑en ser ungefär ut så här: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Du kan parsra denna JSON med `System.Text.Json` eller `Newtonsoft.Json` för att hämta de fält du är intresserad av. + +## Steg 3 – Extract Text from Image and Build JSON Manually (Optional) + +Ibland vill du inte ha den råa JSON som Aspose ger dig; kanske du behöver en anpassad struktur för din downstream‑tjänst. Nedan är ett snabbt exempel som deserialiserar svaret och paketerar om det till ett renare objekt. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Varför omformatera?** Många API:er förväntar sig ett specifikt schema (t.ex. `{ "total": "12.34", "date": "2026-04-10" }`). Genom att extrahera endast de fält du behöver håller du payloaden lättviktig och undviker att läcka onödig OCR‑metadata. + +## Steg 4 – Test the C# OCR Tutorial with a Sample Receipt + +Kör programmet från din terminal: + +```bash +dotnet run +``` + +Du bör se två block med output: + +1. Den råa JSON som returnerats av Aspose (resultatet **convert image to json** direkt från molnet). +2. Den anpassade JSON du byggde i föregående steg. + +Typisk output ser ut så här: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Om du får ett fel som *401 Unauthorized*, dubbelkolla att din API‑nyckel är giltig och att bildsökvägen är korrekt. + +## Edge Cases & Vanliga fallgropar + +| Situation | Vad du ska hålla utkik efter | Föreslagen lösning | +|-----------|------------------------------|--------------------| +| **Low‑resolution receipt** | OCR‑förtroendet sjunker under 0.8 | Förbehandla bilden (öka DPI, skärpa) innan du skickar den | +| **Non‑English characters** | Fel språk‑enum | Använd `Language.AutoDetect` eller specificera rätt språk | +| **Large batch of receipts** | Rate‑limit‑fel | Implementera exponentiell back‑off eller begär en högre kvot från Aspose | +| **Missing fields** | Anpassad parser returnerar `null` | Lägg till fallback‑logik eller regex‑mönster för mer robust extraktion | + +## Visuell översikt + +![Diagram som visar flödet från bildfil → OCR‑klient → JSON‑svar → anpassad parsning → slutligt JSON‑output](https://example.com/ocr-flow-diagram.png "konvertera bild till json") + +*Alt‑text:* *konvertera bild till json‑flödesdiagram som illustrerar stegen som täcks i den här handledningen.* + +## Sammanfattning + +Vi har visat dig hur du **convert image to JSON** med Aspose OCR Cloud, förklarat *how to recognize text* i ett kvitto, demonstrerat sätt att **extract text from image**, och paketat allt i en ren **C# OCR‑handledning** som du kan slänga in i vilket .NET‑projekt som helst. + +De viktigaste slutsatserna är: + +- Ställ in `CloudOcrClient` med din API‑nyckel. +- Anropa `RecognizeAsync` för att få en JSON‑payload direkt från tjänsten. +- Om så önskas, omforma den payloaden för att passa ditt eget datakontrakt. + +## Vad blir nästa? + +- **Batch‑behandling:** Loopa igenom en mapp med kvitton och samla resultaten i en enda JSON‑array. +- **Avancerad parsning:** Använd reguljära uttryck eller en liten NLP‑modell för att extrahera radposter, skatter och rabatter. +- **Integration:** Skjut den slutliga JSON‑en till en databas, ett meddelandekö eller en Azure Function för vidare automatisering. + +Känn dig fri att experimentera med olika bildformat (PNG, TIFF) eller prova **process receipt with OCR**‑flödet på mobilfångade foton. Himlen är gränsen när du har ett pålitligt sätt att **convert image to JSON**. + +Har du frågor eller stött på problem? 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/swedish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..198b56927 --- /dev/null +++ b/ocr/swedish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Skapa en sökbar PDF från en bild snabbt. Lär dig att generera PDF från + bild, bädda in bild‑PDF, konvertera TIF till PDF och använda OCR till PDF i C# med + Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: sv +og_description: Skapa sökbar PDF omedelbart. Denna handledning visar hur man genererar + PDF från bild, bäddar in bild‑PDF, konverterar TIF till PDF och använder OCR till + PDF i C#. +og_title: Skapa sökbar PDF i C# – Steg‑för‑steg guide +tags: +- C# +- OCR +- PDF generation +title: Skapa sökbar PDF i C# – Komplett guide +url: /sv/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa sökbar PDF i C# – Komplett guide + +Har du någonsin behövt **skapa sökbar PDF** från ett skannat dokument men inte vetat var du ska börja? Du är inte ensam; många utvecklare stöter på samma problem när de hanterar TIFF‑filer och OCR. I den här handledningen går vi igenom en praktisk lösning som låter dig **generera PDF från bild**, bädda in den ursprungliga bilden för perfekt sökbarhet, och avsluta med ett rent **OCR till PDF C#**‑flöde. + +Vi täcker allt från att installera Aspose.OCR‑biblioteket till att hantera kantfall som flersidiga TIFF‑filer. När du är klar har du ett färdigt program som omvandlar `input.tif` till en fullt sökbar `output.pdf`. Inga externa tjänster, ingen dold magi – bara ren C#‑kod som du kan släppa in i vilket .NET‑projekt som helst. + +## Vad du behöver + +- .NET 6.0 eller senare (koden fungerar även på .NET Framework 4.7+) +- Visual Studio 2022 (eller någon annan editor du föredrar) +- En aktiv Aspose.OCR‑licens eller en gratis provnyckel (NuGet‑paketet fungerar utan nyckel för utvärdering) +- En exempel‑TIFF‑bild (`input.tif`) placerad i en mapp du kan referera till + +> **Proffstips:** Håll dina bildfiler under 10 MB för att undvika minnesspikar vid bearbetning av stora batcher. + +## Steg 1: Installera Aspose.OCR och konfigurera projektet + +Börja med att lägga till Aspose.OCR‑NuGet‑paketet i ditt projekt. Öppna Package Manager Console och kör: + +```powershell +Install-Package Aspose.OCR +``` + +Om du föredrar UI‑metoden, högerklicka **Dependencies → Manage NuGet Packages**, sök efter *Aspose.OCR* och klicka **Install**. + +Varför detta steg är viktigt: Aspose.OCR innehåller en högpresterande OCR‑motor och en inbyggd PDF‑exportör, så du behöver inga separata bibliotek för bildhantering eller PDF‑skapande. + +### Fullt projektskelett + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Obs:** Ersätt `YOUR_DIRECTORY` med den faktiska sökvägen på din maskin. + +## Steg 2: Läs in bilden – *Generate PDF from Image*‑grunden + +Att läsa in källfilen är ett litet men kritiskt steg. Aspose.OCR förväntar sig ett `ImageStream`, som abstraherar fil‑I/O och stödjer många format (TIFF, PNG, JPEG, osv.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Varför inte bara skicka sökvägen?** +`ImageStream`‑omslaget hanterar intern buffring och säkerställer att OCR‑motorn kan arbeta med stora flersidiga TIFF‑filer utan att ladda in hela filen i minnet på en gång. + +## Steg 3: Konfigurera PDF‑export – *Embed Image PDF* för perfekt sökbarhet + +När du exporterar OCR‑resultat till PDF har du två alternativ: bara bädda in den extraherade texten, eller bädda in den ursprungliga bilden tillsammans med ett dolt textlager. Att bädda in bilden bevarar skannens visuella kvalitet och låter användare markera eller kopiera text senare. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Kantfall:** Om du sätter `EmbedOriginalImage` till `false` blir den resulterande PDF‑filen mindre men förlorar den ursprungliga bilden – användbart för rena textarkiv. + +## Steg 4: Export – *OCR to PDF C#* i ett anrop + +Aspose.OCR gör det tunga arbetet till en endaste rad. Metoden `ExportToPdf` kör OCR, bygger det dolda textlagret och skriver den färdiga filen. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Förväntat resultat + +När programmet körs skrivs följande ut: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Öppna `output.pdf` i någon visare (Adobe Reader, Edge, osv.) och försök markera text – du kommer att se den ursprungliga bilden under, vilket bekräftar att **create searchable pdf**‑operationen lyckades. + +## Steg 5: Verifiera PDF‑filen – snabba kontroller du kan automatisera + +Manuell inspektion räcker för en enstaka fil, men du kanske vill programatiskt bekräfta att PDF‑filen innehåller ett textlager. Aspose.PDF (ett systerbibliotek) kan läsa dokumentet och extrahera text: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Lägg till ett anrop till `VerifyPdfContainsText(pdfPath);` efter exporten om du vill ha en automatiserad sanity‑check. + +## Vanliga fallgropar & hur du undviker dem + +| Problem | Varför det händer | Lösning | +|-------|----------------|-----| +| **Out‑of‑memory på enorma TIFF‑filer** | Hela filen laddas in i minnet och överskrider RAM. | Använd `ImageStream.FromFile` (som visat) och bearbeta sidor en‑och‑en om du har flersidiga filer. | +| **Licens saknas → vattenstämplar** | Utvärderingsläge lägger till en synlig vattenstämpel på varje sida. | Applicera din Aspose.OCR‑licens tidigt: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Felaktiga sökvägsseparatorer på Linux** | Hårdkodad `\` går sönder på icke‑Windows‑OS. | Använd `Path.Combine` eller råa strängar med `/`. | +| **Texten är inte sökbar** | `EmbedOriginalImage` är satt till `false` eller OCR är inaktiverat. | Säkerställ att `PdfExportOptions.EmbedOriginalImage = true` och att OCR‑motorn är korrekt initierad. | + +## Bonus: Konvertera TIF till PDF utan OCR (när text inte behövs) + +Om du bara vill **convert TIF to PDF** utan det dolda textlagret kan du hoppa över OCR‑steget helt: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Detta knep är praktiskt för arkivering av skannade dokument där sökbarhet inte är ett krav. + +## Fullt fungerande exempel (Kopiera‑klistra‑klart) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Kör programmet, öppna `output.pdf` och du ser en trogen kopia av den ursprungliga TIFF‑filen med ett dolt, markerbart textlager – exakt vad **create searchable pdf** betyder i praktiken. + +## Slutsats + +Vi har just gått igenom ett komplett **create searchable pdf**‑flöde i C#. Utifrån en rå TIFF **generate pdf from image**, valde vi att **embed image pdf** för visuell kvalitet och demonstrerade hela **ocr to pdf c#**‑pipeline‑processen med Aspose.OCR. + +Känn dig fri att justera `PdfExportOptions` (komprimering, PDF‑version, osv.) eller kedja ihop flera bilder för batch‑bearbetning. Nästa steg kan vara att lägga till lösenordsskydd, digitala signaturer eller att slå ihop flera sökbara PDF‑filer till ett master‑dokument. + +Har du frågor om hur du skalar detta till tusentals filer eller integrerar det i ett ASP.NET‑API? Lämna en kommentar nedan eller kontakta mig på GitHub – happy coding! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/swedish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..fc5cb770d --- /dev/null +++ b/ocr/swedish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: Extrahera text från bild med Aspose OCR i C#. Lär dig hur du laddar bild + för OCR och känner igen text från TIFF‑filer med GPU‑stöd. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: sv +og_description: Extrahera text från bild med Aspose OCR i C#. Denna handledning visar + hur man laddar en bild för OCR och känner igen text från TIFF med GPU‑acceleration. +og_title: Extrahera text från bild i C# – Komplett OCR‑guide +tags: +- OCR +- C# +- Aspose +- GPU +title: Extrahera text från bild i C# – Komplett OCR-guide +url: /sv/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera text från bild i C# – Komplett OCR-guide + +Har du någonsin behövt **extrahera text från bild** men varit osäker på vilket bibliotek som kan hantera en gigantisk TIFF utan att hänga? Du är inte ensam. I många verkliga projekt—tänk fakturadigitalisering eller arkivering av skannade böcker—blir förmågan att ladda en bild för OCR och sedan känna igen text från TIFF snabbt en avgörande funktion. + +I den här guiden går vi igenom en praktisk lösning som gör exakt det med Aspose OCR för .NET. När du är klar har du en körbar C#‑konsolapp som laddar en högupplöst skanning, startar GPU‑accelererad bearbetning (med en smidig fallback) och skriver ut ren‑textresultatet. Inga saknade delar, inga “se dokumentationen”-vägar. + +## Vad du behöver + +- **.NET 6 eller senare** (koden kompileras med vilket nyligen SDK som helst) +- **Aspose.OCR for .NET** NuGet‑paket + `dotnet add package Aspose.OCR` +- En **stor TIFF** eller något annat bildformat du vill OCR:a + (exemplet använder `large_scan.tif`) +- (Valfritt) Ett GPU som stödjer CUDA 11+ – om du inte har ett, byter biblioteket automatiskt till CPU‑läge. + +Det är allt. Låt oss dyka ner. + +![Extrahera text från bild med Aspose OCR i C#](image-placeholder.png "Extrahera text från bild med Aspose OCR i C#") + +## Steg 1: Extrahera text från bild – Initiera OCR-motorn + +Innan någon bild kan bearbetas behöver du en `OcrEngine`‑instans. Motorn innehåller alla inställningar som styr hur igenkänningen körs. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Varför detta är viktigt:** +`ProcessingMode.Gpu` kan spara sekunder på igenkänningstiden på ett modernt kort, men att sätta `ProcessingMode.Auto` (eller låta standardvärdet stå) är säkrare i miljöer där ett GPU kan saknas. `GpuMemoryLimit`‑skyddet är ett praktiskt tips—utan det kan en enorm bild monopoliserar all VRAM och kraschar andra appar. + +## Steg 2: Ladda bild för OCR – Ladda in TIFF i minnet + +Nu när motorn är klar måste vi mata in bilden vi vill analysera. Aspose tillhandahåller `ImageStream.FromFile` som abstraherar bort format‑hantering. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Vad händer under huven?** +`ImageStream.FromFile` läser filen till en ström och upptäcker automatiskt bildformatet (TIFF, PNG, JPEG, osv.). Om du arbetar med fler‑sidiga TIFF‑filer behandlar Aspose varje sida som en separat ram; du kan iterera över dem senare om så behövs. + +## Steg 3: Känna igen text från TIFF – Kör OCR-motorn + +Med bilden laddad börjar det tunga arbetet. Metoden `Recognize` returnerar ett `OcrResult`‑objekt som innehåller den extraherade texten och några praktiska metadatafält. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Varför anropa `Recognize` bara en gång?** +Eftersom motorn cachar interna strukturer efter första körningen räcker ett enda anrop för de flesta scenarier. Om du behöver bearbeta många sidor, återanvänd samma `OcrEngine`‑instans—det undviker overheaden för att återinitiera GPU‑kontexter. + +## Steg 4: Visa resultatet – Visa den extraherade texten + +Till sist skriver vi ut den igenkända strängen till konsolen. I en riktig applikation skulle du troligen skriva den till en databas eller en fil. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Förväntad utskrift:** +Om `large_scan.tif` innehåller en utskriven faktura kommer du att se något i stil med: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Den exakta layouten beror på källbilden, men huvudpoängen är att du nu har **extrahera text från bild**‑resultat redo för vidare bearbetning. + +## Steg 5: Felsökning & specialfall + +### GPU upptäcks inte? + +Om du kör exemplet på en maskin utan ett kompatibelt GPU, faller motorn tyst tillbaka till CPU när du använder `ProcessingMode.Auto`. För att tvinga CPU‑läge explicit, ersätt den tidigare raden med: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Minneskrävande TIFF-filer + +Väldigt stora skanningar (t.ex. 10 000 × 10 000 px) kan fortfarande överskrida den 1 GB GPU‑gräns vi satt. I så fall, antingen höj `GpuMemoryLimit` (om du har extra VRAM) eller skala ner bilden innan du matar den till motorn: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Fler-sidiga dokument + +Om din TIFF innehåller flera sidor, loopa över dem: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Språk‑ och teckensnittsstöd + +Aspose OCR upptäcker automatiskt latinbaserade skript, men för kyrilliska, arabiska eller anpassade teckensnitt kan du behöva tillhandahålla ett språkpaket: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Proffstips & bästa praxis + +- **Återanvänd motorn**: Att skapa en ny `OcrEngine` per bild ger märkbar latens. +- **Batch‑bearbetning**: När du hanterar dussintals TIFF‑filer, köa dem och bearbeta i parallella trådar—men var medveten om GPU‑minneskonkurrens. +- **Validera output**: OCR är inte perfekt; kör en enkel stavningskontroll eller regex‑validering på `ocrResult.Text` för att fånga upp uppenbara fel. +- **Logga prestanda**: Mät `Stopwatch`‑tiden före och efter `Recognize` för att avgöra om GPU‑acceleration är värd den extra uppsättningen i din miljö. + +## Slutsats + +Du har nu ett komplett, end‑to‑end‑exempel som **extraherar text från bild**‑filer med Aspose OCR i C#. Genom att ladda bilden för OCR, anropa motorn för att känna igen text från TIFF och hantera GPU‑ vs. CPU‑scenarier ger den här handledningen dig en produktionsklar grund som du kan anpassa för fakturor, pass, eller vilken skannad dokumentation som helst. + +Vad blir nästa steg? Prova att byta ut TIFF‑filen mot en fler‑sidig PDF, experimentera med anpassade språkpaket, eller skicka outputen till en naturlig språk‑bearbetningspipeline för automatiserad dataextraktion. Himlen är gränsen—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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/swedish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..71c72dc39 --- /dev/null +++ b/ocr/swedish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-04-11 +description: Extrahera text från TIFF-filer med Aspose OCR batchbearbetning i C#. + Lär dig hur du bearbetar batch‑OCR effektivt och får realtidsfeedback om framsteg. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: sv +og_description: Extrahera text från TIFF‑filer med Aspose OCR‑batchbearbetning i C#. + Denna handledning visar steg för steg hur du bearbetar batch‑OCR och läser av framsteg. +og_title: Extrahera text från TIFF med batch-OCR i C# – Komplett guide +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Extrahera text från TIFF med batch‑OCR i C# – Komplett guide +url: /sv/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera text från TIFF – Komplett guide för batch-OCR + +Har du någonsin behövt **extrahera text från TIFF**‑filer men känt dig fast vid batch‑bearbetningsdelen? Du är inte ensam. I många dokument‑automatiseringsprojekt kan hantering av dussintals högupplösta TIF‑bilder snabbt bli en flaskhals—särskilt när du vill ha live‑feedback på framsteg. + +Den goda nyheten? Med Aspose OCR kan du **process batch OCR** på några få rader, få real‑time‑framstegshändelser och skriva ut den igenkända texten för varje bild. I den här handledningen går vi igenom en färdig‑att‑köra C#‑konsolapp som gör precis det. + +Vi kommer att gå igenom allt du behöver veta: nödvändiga paket, varför varje rad är viktig, edge‑cases som saknade filer, och hur du verifierar resultaten. När du är klar kan du enkelt lägga in exemplet i din egen lösning och börja extrahera text från TIFF‑bilder omedelbart. + +## Vad du behöver + +- **.NET 6 eller senare** (koden kompileras även med .NET Core) +- **Aspose.OCR for .NET** NuGet‑paket – `Install-Package Aspose.OCR` +- En mapp som innehåller några **TIFF**‑bilder du vill läsa (demot använder `img1.tif`, `img2.tif`, `img3.tif`) +- Valfri IDE du föredrar – Visual Studio, Rider eller VS Code fungerar + +Ingen extra konfiguration krävs; biblioteket levereras med sin egen OCR‑motor, så du behöver inte installera externa native‑binärer. + +--- + +## Steg 1 – Skapa OCR‑motorinstansen + +Det första du gör är att starta en `OcrEngine`. Tänk på den som hjärnan som analyserar varje pixel och omvandlar dem till tecken. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Varför detta är viktigt:** +> Motorn innehåller interna språkmodeller och inställningar (t.ex. DPI, språk). Att skapa den en gång och återanvända den för en batch är mycket mer effektivt än att instansiera en ny motor per bild. + +--- + +## Steg 2 – Anslut real‑time‑framstegshändelser + +Om du bearbetar dussintals TIFF‑filer kan en framstegsindikator rädda dig från att undra om appen har fastnat. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged`‑händelsen avfyras efter att varje bild är klar och ger dig `Current`, `Total` och `Percentage`. Detta är **process batch OCR**‑återkopplingsloopen som de flesta utvecklare glömmer att implementera. + +--- + +## Steg 3 – Bygg en lista med bildströmmar + +Aspose.OCR arbetar med `ImageStream`‑objekt. Det enklaste sättet är att läsa in varje TIFF från disk. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Tips:** +> Om du har en dynamisk mapp, ersätt den hårdkodade listan med `Directory.GetFiles(path, "*.tif")` och `Select(ImageStream.FromFile)` – på så sätt kan du verkligen **process batch OCR** utan manuella uppdateringar. + +--- + +## Steg 4 – Kör batch‑OCR‑processen + +Nu sker det tunga arbetet. `ProcessBatch` returnerar en skrivskyddad lista med `OcrResult`‑objekt, där varje innehåller den extraherade texten och förtroendesiffror. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Varför detta är effektivt:** +> Motorn återanvänder samma språkmodell för alla bilder, vilket dramatiskt minskar minnesanvändning jämfört med anrop för enskilda bilder. + +--- + +## Steg 5 – Visa eller lagra den igenkända texten + +Till sist, iterera över resultaten. I ett riktigt projekt kan du skriva dem till en databas eller en JSON‑fil, men för detta demo skriver vi bara ut dem i konsolen. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Förväntad konsolutskrift** (avkortad för korthet): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Om någon bild misslyckas kommer `result.Text` att vara en tom sträng, och `ProgressChanged`‑händelsen kommer fortfarande att rapportera objektet som bearbetat—så du kan logga fel separat. + +--- + +## Händelsehanteraren för framsteg (Full kod) + +Placera den här metoden var som helst i `BatchDemo`‑klassen—helst efter `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro‑tips:** +> Dirigera den här utskriften till en UI‑progress‑bar om du bygger en skrivbordsapp; samma händelse fungerar för WinForms, WPF eller till och med ASP.NET Core SignalR‑aviseringar. + +--- + +## Fullt, färdigt‑att‑köra‑exempel + +När vi sätter ihop allt, här är det kompletta programmet som du kan kopiera‑och‑klistra in i ett nytt konsolprojekt. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Spara filen som `Program.cs`, kör `dotnet add package Aspose.OCR`, ersätt `YOUR_DIRECTORY` med den faktiska sökvägen, och tryck **Ctrl+F5**. Du bör se framstegssiffror följt av den extraherade texten för varje TIFF. + +--- + +## Hantera vanliga edge‑cases + +| Situation | Vad att hålla utkik efter | Snabb fix | +|-----------|---------------------------|-----------| +| **Saknad eller korrupt TIFF** | `ImageStream.FromFile` kastar `FileNotFoundException` eller `ArgumentException`. | Omge listskapandet i ett `try/catch` och hoppa över ogiltiga filer, logga problemet. | +| **Mycket stora bilder ( >10 MP )** | OCR kan konsumera mycket RAM och bli långsam. | Minska DPI innan bearbetning: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Icke‑engelsk text** | Standard språkmodell är engelska. | Ställ in `ocrEngine.Language = Language.Spanish;` (eller vilket stödjande språk som helst). | +| **Behov av att spara resultat** | Konsolutskrift är inte beständig. | Skriv `result.Text` till en `.txt`‑fil med `File.WriteAllText`. | + +Att hantera dessa scenarier gör din lösning robust och visar att du har tänkt bortom den lyckade vägen. + +--- + +## Nästa steg & relaterade ämnen + +- **Extrahera text från PDF** – liknande API, byt bara ut `ImageStream` mot `PdfDocument`. +- **Parallell batch OCR** – för massiva arbetsbelastningar, starta flera `OcrEngine`‑instanser på separata trådar; kom ihåg att respektera licensbegränsningarna. +- **Post‑processing** – kör OCR‑utdata genom en stavningskontroll eller regex för att rensa vanliga OCR‑artefakter. + +Alla dessa tillägg bygger fortfarande på kärnidén **process batch OCR** och kan läggas till stegvis. + +--- + +## Slutsats + +Vi har just demonstrerat hur man **extraherar text från TIFF**‑filer effektivt genom **process batch OCR** med Aspose OCR i C#. Exemplet skapar en enda motor, prenumererar på framstegshändelser, laddar en lista med bildströmmar, kör batchen och skriver ut varje resultat. + +Härifrån kan du integrera utdata i databaser, generera sökbara PDF‑filer eller föra texten in i downstream‑NLP‑pipelines. Himlen är gränsen—experimentera med språkinställningar, DPI‑justeringar och parallell exekvering för att passa din specifika arbetsbelastning. + +Har du frågor eller vill dela hur du anpassade batchen? 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/swedish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..a6febe05c --- /dev/null +++ b/ocr/swedish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-04-11 +description: Lär dig hur du känner igen text från png och extraherar text från bild + i C# med Aspose OCR. Inkluderar steg för att ladda bildfil i C#, stavningskontroll + och fullständig kod. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: sv +og_description: Känn igen text från PNG enkelt med C#. Följ den här steg‑för‑steg‑guiden + för att ladda en bildfil i C#, extrahera text från bilden i C# och köra stavningskontroll. +og_title: igenkänn text från png i C# – Komplett OCR-handledning +tags: +- OCR +- C# +- Aspose +title: igenkänn text från png i C# – Fullständig OCR‑ och stavningskontrollguide +url: /sv/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# igenkänna text från png – Komplett C# OCR‑ och stavningskontroll‑handledning + +Har du någonsin behövt **recognize text from png** filer men var osäker på vilket bibliotek du ska välja? Du är inte ensam; många utvecklare stöter på den muren när de först tar sig an bildbaserad dataextraktion. Den goda nyheten? Med Aspose OCR kan du ladda en bildfil i C#, extrahera texten och till och med köra en inbyggd stavningskontroll – allt på några få rader. + +I den här guiden går vi igenom hela processen: ladda PNG-filen, anropa OCR‑motorn och slutligen kontrollera stavfel. I slutet kommer du att kunna **extrahera text från bild C#** projekt utan att leta igenom spridda dokument. Ingen tidigare OCR‑erfarenhet krävs, bara en .NET‑utvecklingsmiljö. + +## Vad du behöver + +- **.NET 6.0** (eller någon nyare .NET‑version) – API‑et fungerar likadant på .NET Core och Framework. +- **Aspose.OCR for .NET** NuGet‑paket – installera det via `dotnet add package Aspose.OCR`. +- En **PNG‑bild** som innehåller läsbar text (t.ex. `letter.png` placerad i en mapp du kontrollerar). +- En kodredigerare eller IDE (Visual Studio, VS Code, Rider—välj det du föredrar). + +Det är allt. Inga extra OCR‑motorer, inga inhemska DLL‑filer, bara ett rent hanterat paket. + +--- + +## Steg 1: Ladda PNG‑bildfilen i C# + +Innan OCR‑motorn kan göra någonting behöver den en ström som pekar på bilden. Aspose tillhandahåller `ImageStream.FromFile`, som abstraherar filsystemdetaljerna. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** Om din bild är inbäddad som en resurs eller kommer från en webbförfrågan kan du använda `ImageStream.FromBytes(byte[])` istället—ingen behov av att röra filsystemet. + +### Varför laddning är viktigt + +Att ladda bilden korrekt säkerställer att OCR‑motorn får exakt de pixeldata den förväntar sig. En korrupt ström kommer få `Recognize` att kasta ett undantag, och du slösar tid på felsökning senare. + +## Steg 2: Initiera OCR‑motorn + +Att skapa en `OcrEngine`‑instans är billigt, men du kanske vill justera språk‑ eller noggrannhetsinställningar för specifika användningsfall (t.ex. flerspråkiga dokument). Standardkonstruktorn fungerar bra för engelsk text. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Varför en motorinstans? + +Motorn innehåller konfiguration (språk, förbehandlingsfilter osv.). Genom att separera konfigurationen från bilden kan du återanvända samma motor för många filer—perfekt för batch‑behandling. + +## Steg 3: Känna igen text från PNG + +Nu händer magin. `Recognize` returnerar ett `OcrResult`‑objekt som innehåller den råa strängen, förtroendescore och mer. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Förväntad output** (förutsatt att `letter.png` säger “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Om bilden innehåller flera rader bevarar resultatet radbrytningar, vilket gör efterföljande bearbetning enkel. + +### Edge case: lågupplösta PNG‑filer + +Om OCR‑resultatet ser förvrängt ut, överväg att skala upp bilden eller justera `ocrEngine.PreprocessingOptions`. Lågdpi‑bilder förlorar ofta detaljer som motorn är beroende av. + +## Steg 4: Kör den inbyggda stavningskontrollen + +Aspose OCR levereras med en lättviktig stavningskontrollmodul som fungerar direkt på OCR‑resultatet. Detta steg hjälper dig att fånga feligenkänningar som “H3llo” istället för “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Exempeloutput** (om OCR läste “World” som “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Varför stavningskontroll? + +OCR är aldrig 100 % perfekt, särskilt med brusiga bakgrunder. En snabb stavningskontroll kan filtrera bort uppenbara fel innan du matar in texten i efterföljande analys eller databaser. + +## Steg 5: Sätt ihop allt – Fullt fungerande exempel + +Nedan är det kompletta, färdiga programmet. Kopiera och klistra in det i ett nytt konsolprojekt, justera bildsökvägen och tryck **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Körning av demon** skriver ut OCR‑texten följt av eventuella stavningsförslag. Det fungerar på alla PNG‑filer som innehåller tydlig, tryckt engelsk text. För andra språk, sätt helt enkelt `ocrEngine.Language` därefter. + +## Vanliga frågor & fallgropar + +| Fråga | Svar | +|----------|--------| +| *Kan jag bearbeta JPEG‑ eller BMP‑filer?* | Absolut—`ImageStream.FromFile` accepterar alla format som stöds av Aspose (PNG, JPEG, BMP, TIFF). | +| *Vad händer om bilden är i en minnesström?* | Använd `ImageStream.FromBytes(byteArray)` eller `ImageStream.FromStream(stream)`. | +| *Är stavningskontrollen språkmedveten?* | Ja, den respekterar språket som är inställt på OCR‑motorn. | +| *Hur förbättrar jag noggrannheten på snedvridna bilder?* | Aktivera `ocrEngine.PreprocessingOptions.Deskew = true;` innan du anropar `Recognize`. | +| *Behöver jag en licens för Aspose.OCR?* | En gratis provversion fungerar för upp till 100 sidor. För produktion, skaffa en licens för att ta bort vattenstämplar. | + +## Nästa steg – Gå bortom grundläggande OCR + +Nu när du kan **recognize text from png** och **extract text from image C#**, överväg dessa tillägg: + +1. **Batch processing** – Loopa över en katalog med PNG‑filer och skriv varje OCR‑resultat till en separat `.txt`‑fil. +2. **Integration with Azure Cognitive Services** – Kombinera Aspose OCR med molnbaserade översättnings‑API:er för flerspråkiga pipelines. +3. **Structured data extraction** – Använd reguljära uttryck på `recognizedText` för att extrahera datum, fakturanummer eller adresser. +4. **Performance tuning** – För stora volymer, återanvänd en enda `OcrEngine`‑instans och aktivera flertrådad körning. + +Var och en av dessa bygger på de grundläggande stegen vi gick igenom, och låter dig omvandla en enkel bild till handlingsbar data. + +## Slutsats + +Vi har gått igenom ett komplett, end‑to‑end‑exempel som visar hur man **recognize text from png** i C#, **load image file C#** korrekt, och sedan **extract text from image C#** samtidigt som stavfel fångas. Koden är självständig, förklaringarna täcker både “hur” och “varför”, och du har nu en solid grund för alla OCR‑drivna funktioner du kan behöva. + +Prova det, justera förbehandlingsalternativen, och se hur ren din extraherade text kan bli. Om du stöter på några problem, lämna en kommentar nedan—lycklig kodning! + +{{< /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 24051f2c0..e340171df 100644 --- a/ocr/thai/net/ocr-configuration/_index.md +++ b/ocr/thai/net/ocr-configuration/_index.md @@ -65,6 +65,9 @@ weight: 24 ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) ปลดล็อกศักยภาพของ Aspose.OCR for .NET ทำการจดจำภาพด้วย OCR ผ่านรายการได้อย่างง่ายดาย เพิ่มผลผลิตและการสกัดข้อมูลในแอปพลิเคชันของคุณ +### [วิธีปิดการใช้งาน OCR ใน C# – คู่มือ Aspose OCR แบบออฟไลน์](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +เรียนรู้วิธีปิดการทำงานของ OCR ในโค้ด C# เพื่อใช้ Aspose OCR แบบออฟไลน์โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต + ### การใช้งานทั่วไป - **ดึงข้อความจากภาพ** ของใบแจ้งหนี้ที่สแกนเพื่อการบัญชีอัตโนมัติ. - ทำดัชนีอาร์ไคฟ์เอกสารขนาดใหญ่เพื่อเป็นคลังข้อมูลที่ค้นหาได้. @@ -100,4 +103,4 @@ A: มี, วัตถุ `OcrResult` จะให้ค่าความเ {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/thai/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..48b5ce957 --- /dev/null +++ b/ocr/thai/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: เรียนรู้วิธีปิดการทำงานของ OCR ใน Aspose OCR สำหรับ C# เพื่อให้ทำงานแบบออฟไลน์, + ดึงข้อความจากภาพโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต, และโหลดภาพสำหรับ OCR อย่างถูกต้อง. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: th +og_description: วิธีปิดการใช้งาน OCR ใน Aspose OCR สำหรับ C# และทำงานแบบออฟไลน์, แยกข้อความจากภาพโดยไม่ต้องใช้อินเทอร์เน็ต, + และโหลดภาพสำหรับ OCR ได้อย่างง่ายดาย. +og_title: วิธีปิดการใช้งาน OCR ใน C# – คู่มือ OCR ของ Aspose แบบออฟไลน์ +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: วิธีปิดการใช้งาน OCR ใน C# – คู่มือ OCR ของ Aspose แบบออฟไลน์ +url: /th/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีปิดการทำงานของ OCR ใน C# – คู่มือ Aspose OCR แบบออฟไลน์ + +เคยสงสัย **วิธีปิดการทำงานของ OCR** เมื่อคุณต้องการโซลูชันที่ทำงานแบบออฟไลน์จริง ๆ หรือไม่? บางทีคุณอาจกำลังสร้างแอปเดสก์ท็อปที่ปลอดภัยซึ่งไม่สามารถพึ่งพาการเชื่อมต่อเครือข่ายได้ หรือคุณแค่ต้องการหลีกเลี่ยงการดาวน์โหลดที่ไม่คาดคิด ไม่ว่ากรณีใด ข่าวดีคือ Aspose OCR ให้คุณปิดการดึงทรัพยากรอัตโนมัติ, ชี้ไปยังโฟลเดอร์ในเครื่อง, และเก็บทุกอย่างไว้ในสถานที่ของคุณเอง ในบทแนะนำนี้คุณจะได้เห็นวิธี **extract text from image** และ **load image for OCR** อย่างถูกต้องโดยไม่มีปัญหาใด ๆ + +เราจะเดินผ่านตัวอย่างที่พร้อมใช้งานอย่างครบถ้วน ซึ่งแสดงทุกขั้นตอน—from การเริ่มต้น engine จนถึงการพิมพ์ข้อความภาษาญี่ปุ่นที่ถูกจดจำ ไม่ต้องอ้างอิงเอกสารภายนอก ไม่ต้องมีเวทมนตร์ลับ; เพียงโค้ด C# ธรรมดาที่คุณสามารถนำไปใส่ในโปรเจกต์ของคุณได้ทันที เมื่อเสร็จคุณจะเข้าใจว่าทำไมการปิดคุณสมบัติ auto‑download จึงสำคัญ, วิธีตั้งค่า resources path, และข้อควรระวังต่าง ๆ + +## ข้อกำหนดเบื้องต้น + +- .NET 6.0 (หรือเวอร์ชัน .NET ล่าสุด) ติดตั้งบนเครื่องของคุณ +- แพ็กเกจ NuGet Aspose.OCR for .NET (`Install-Package Aspose.OCR`) +- โฟลเดอร์ที่มีทรัพยากรภาษาอยู่แล้วที่คุณต้องการ (เช่น โมเดลภาษาญี่ปุ่น) +- ไฟล์รูปภาพ (`japan_doc.png`) ที่คุณต้องการทำ OCR + +หากคุณไม่มีแพ็คภาษา, ให้ดาวน์โหลดจากพอร์ทัลของ Aspose ครั้งเดียว, แตกไฟล์ลงในโฟลเดอร์เช่น `AsposeOCRResources`, แล้วคุณก็พร้อมใช้งานแล้ว การดาวน์โหลดเพิ่มเติมจะไม่เกิดขึ้นเมื่อคุณได้ปิดคุณสมบัติ auto‑download แล้ว + +![วิธีปิดการทำงานของ OCR แบบออฟไลน์](/images/how-to-disable-ocr.png "ภาพอธิบายการปิดการทำงานของ OCR") + +## ขั้นตอนที่ 1 – สร้างอินสแตนซ์ของ OCR Engine + +สิ่งแรกที่คุณทำคือสร้างอินสแตนซ์ของ `OcrEngine`. คิดว่าวัตถุนี้เป็นสมองที่จะอ่านภาพของคุณ + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **ทำไมเรื่องนี้ถึงสำคัญ:** หากไม่มี engine คุณจะไม่สามารถกำหนดค่าใด ๆ ได้ วัตถุนี้เก็บการตั้งค่าทั้งหมด รวมถึงแฟล็กสำคัญที่บอกไลบรารีาว่าสามารถเชื่อมต่ออินเทอร์เน็ตได้หรือไม่. + +## ขั้นตอนที่ 2 – ปิดการดาวน์โหลดทรัพยากรอัตโนมัติ + +โดยค่าเริ่มต้น Aspose OCR จะพยายามดึงไฟล์ภาษาที่ขาดหายไปแบบเรียลไทม์ เพื่อให้ทำงานแบบออฟไลน์ ให้สลับสวิตช์ `AutoDownloadResources` เป็น `false` + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **เคล็ดลับ:** การปิดสวิตช์นี้ไม่เพียงรับประกันความเป็นส่วนตัว แต่ยังทำให้การรันการจดจำครั้งแรกเร็วขึ้น เพราะ engine จะไม่เสียเวลาเช็คการอัปเดต + +## ขั้นตอนที่ 3 – ชี้ไปยังโฟลเดอร์ทรัพยากรในเครื่องของคุณ + +ตอนนี้บอก engine ว่าโฟลเดอร์ที่เก็บแพ็คภาษาที่ดาวน์โหลดล่วงหน้าตั้งอยู่ที่ไหน นี่คือพาธที่คุณตั้งค่าไว้ในข้อกำหนดเบื้องต้น + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **อะไรอาจผิดพลาด?** หากพาธผิดหรือไฟล์ภาษาที่ต้องการหายไป, engine จะโยน `ResourceNotFoundException`. ตรวจสอบการสะกดโฟลเดอร์และตรวจให้แน่ใจว่าโมเดลญี่ปุ่น (`jpn.traineddata`) มีอยู่ + +## ขั้นตอนที่ 4 – เลือกโมเดลภาษาท้องถิ่น + +เลือกภาษาที่คุณมีอยู่บนดิสก์ ในตัวอย่างของเราเราใช้ภาษาญี่ปุ่น แต่คุณสามารถเปลี่ยน `Language.Japanese` เป็นภาษาอื่นที่คุณดาวน์โหลดไว้ได้ + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **กรณีขอบ:** บางภาษาอาจต้องการพจนานุกรมเพิ่มเติม (เช่น ภาษาจีน) ตรวจสอบให้ไฟล์เสริมเหล่านั้นอยู่ในโฟลเดอร์ทรัพยากรเดียวกัน + +## ขั้นตอนที่ 5 – โหลดภาพสำหรับ OCR + +นี่คือจุดที่เราจะ **load image for OCR**. เมธอด `ImageStream.FromFile` จะอ่านไฟล์เข้าสู่สตรีมที่ Aspose สามารถประมวลผลได้ + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **เคล็ดลับ:** รูปแบบที่รองรับได้แก่ PNG, JPEG, BMP, และ TIFF. หากต้องจัดการ PDF, ให้แปลงแต่ละหน้าเป็นภาพก่อน + +## ขั้นตอนที่ 6 – เรียกกระบวนการจดจำ + +ตอนนี้ engine จะอ่านพิกเซลจริง ๆ และพยายามแปลงเป็นข้อความ + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **ทำไมขั้นตอนนี้อาจช้า:** OCR ใช้ CPU อย่างหนัก โดยเฉพาะกับภาพความละเอียดสูง หากประสิทธิภาพเป็นข้อกังวล ให้พิจารณาลดขนาดภาพก่อนการจดจำ + +## ขั้นตอนที่ 7 – แสดงข้อความที่สกัดออกมา + +สุดท้าย เรา **extract text from image** และพิมพ์ออกที่คอนโซล + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +การรันโปรแกรมควรแสดงอักขระญี่ปุ่นที่อยู่ใน `japan_doc.png`. หากทุกอย่างตั้งค่าอย่างถูกต้อง คุณจะเห็นบล็อกข้อความ Unicode ที่สะอาดบนคอนโซลของคุณ + +### ผลลัพธ์ที่คาดหวัง + +``` +これはサンプルの日本語テキストです。 +``` + +(ผลลัพธ์จริงของคุณจะขึ้นอยู่กับเนื้อหาของภาพ) + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **ไฟล์ภาษาที่หายไป** | `AutoDownloadResources` เป็น false, ดังนั้น engine ไม่สามารถดึงไฟล์ได้. | ตรวจสอบว่า `ResourcesPath` ชี้ไปยังโฟลเดอร์ที่มี `jpn.traineddata`. | +| **พาธรูปภาพไม่ถูกต้อง** | `ImageStream.FromFile` จะโยน `FileNotFoundException`. | ใช้พาธแบบเต็มหรือให้แน่ใจว่าไดเรกทอรีทำงานตั้งค่าอย่างถูกต้อง. | +| **รูปแบบภาพที่ไม่รองรับ** | Aspose รองรับเฉพาะรูปแบบบางประเภทเท่านั้น. | แปลงภาพของคุณเป็น PNG หรือ JPEG ก่อนเรียก `FromFile`. | +| **หน่วยความจำไม่พอเมื่อใช้ภาพขนาดใหญ่** | OCR โหลดภาพทั้งหมดเข้าสู่หน่วยความจำ. | ปรับขนาดหรือแบ่งภาพเป็นส่วน ๆ, หรือเพิ่มขีดจำกัดหน่วยความจำของกระบวนการ. | + +## การขยายตัวอย่าง + +- **การประมวลผลแบบกลุ่ม:** วนลูปผ่านไดเรกทอรีของภาพ, เรียกโค้ดการจดจำเดียวกัน, และเขียนผลลัพธ์แต่ละอันลงไฟล์ `.txt` แยกกัน. +- **หลายภาษา:** แทนที่ `Language.Japanese` ด้วย `Language.English` (หรือภาษาอื่น) หลังจากวางไฟล์ทรัพยากรที่สอดคล้องกัน. +- **การเตรียมข้อมูลล่วงหน้าแบบกำหนดเอง:** ใช้ Aspose.Imaging เพื่อแก้ไขการเอียงหรือปรับคอนทราสต์ก่อน OCR เพื่อความแม่นยำที่ดียิ่งขึ้น. + +## สรุป + +ตอนนี้คุณรู้แล้วว่า **how to disable OCR** ใน Aspose OCR สำหรับ C# และรันแบบออฟไลน์อย่างสมบูรณ์ โดยตั้งค่า `AutoDownloadResources` เป็น `false`, ชี้ engine ไปยังโฟลเดอร์ทรัพยากรในเครื่อง, และ **load image for OCR** อย่างถูกต้อง, คุณสามารถ **extract text from image** ได้อย่างเชื่อถือโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต วิธีนี้เหมาะสำหรับสภาพแวดล้อมที่ปลอดภัย, pipeline CI, หรือสถานการณ์ใด ๆ ที่การเข้าถึงเครือข่ายจำกัด + +พร้อมสำหรับขั้นตอนต่อไปหรือยัง? ลองประมวลผลโฟลเดอร์เต็มของ PDF ที่สแกน, ทดลองใช้แพ็คภาษาต่าง ๆ, หรือรวมผลลัพธ์ OCR เข้าไปในฐานข้อมูลที่สามารถค้นหาได้ การตั้งค่าออฟไลน์ที่คุณสร้างวันนี้เป็นพื้นฐานที่มั่นคงสำหรับ workflow การประมวลผลเอกสารบนเครื่องใด ๆ + +ขอให้เขียนโค้ดอย่างสนุกสนาน, และอย่าลังเลที่จะคอมเมนต์หากเจออุปสรรคใด ๆ! + +{{< /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 f298064cd..3ae260ddf 100644 --- a/ocr/thai/net/ocr-optimization/_index.md +++ b/ocr/thai/net/ocr-optimization/_index.md @@ -73,6 +73,9 @@ weight: 25 ### [บันทึกผลลัพธ์หลายหน้าเป็นเอกสารใน OCR Image Recognition](./save-multipage-result-as-document/) ปลดล็อกศักยภาพของ Aspose.OCR สำหรับ .NET บันทึกผลลัพธ์ OCR หลายหน้าเป็นเอกสารได้อย่างง่ายดายด้วยคู่มือขั้นตอนต่อขั้นตอนที่ครอบคลุมนี้. +### [วิธีปรับปรุงความแม่นยำของ OCR ใน C# ด้วย Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +เรียนรู้เทคนิคการเพิ่มความแม่นยำของ OCR ใน C# ด้วย Aspose OCR เพื่อผลลัพธ์ที่ดียิ่งขึ้น. + ## คำถามที่พบบ่อย **Q:** ฉันสามารถแยกข้อความจากไฟล์ภาพที่มีหลายภาษาได้หรือไม่? diff --git a/ocr/thai/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/thai/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..a8739ba98 --- /dev/null +++ b/ocr/thai/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-04-11 +description: เรียนรู้วิธีปรับปรุง OCR ใน C# ด้วยการจดจำข้อความจากไฟล์ JPG, แก้ไขการเอียงของภาพ, + และกำจัดสัญญาณรบกวนโดยใช้ Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: th +og_description: ค้นพบวิธีปรับปรุง OCR ด้วยการจดจำข้อความจากไฟล์ JPG, แก้ไขการเอียงของภาพ, + และกำจัดสัญญาณรบกวน—คู่มือ C# ฉบับสมบูรณ์ +og_title: วิธีเพิ่มความแม่นยำของ OCR ใน C# ด้วย Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: วิธีเพิ่มความแม่นยำของ OCR ใน C# ด้วย Aspose OCR +url: /th/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีปรับปรุงความแม่นยำของ OCR ใน C# ด้วย Aspose OCR + +เคยสงสัยไหมว่า **how to improve OCR** จะได้ผลลัพธ์อย่างไรเมื่อสแกนของคุณดูเหมือนศิลปะเชิงนามธรรมมากกว่าข้อความที่อ่านได้? คุณไม่ได้เป็นคนเดียว ในหลายโครงการจริง—เช่น ใบแจ้งหนี้, ใบเสร็จ, หรือบันทึกมือ—ภาพต้นทางมักจะเอียง, มีเม็ดสี, หรือมีเสียงรบกวนมาก ข่าวดีคือ Aspose OCR มีตัวควบคุมการเตรียมข้อมูลหลายอย่างที่สามารถเปลี่ยนความยุ่งเหยิงนั้นให้เป็นอักขระที่เครื่องอ่านได้อย่างสะอาด ในบทแนะนำนี้เราจะเดินผ่านตัวอย่างที่สมบูรณ์และสามารถรันได้ซึ่งแสดง **how to improve OCR** โดย **recognize text from JPG**, การแก้เอียงภาพ, และการกำจัดสัญญาณรบกวนที่ไม่ต้องการ. + +> *เคล็ดลับ:* หากคุณข้ามการเตรียมข้อมูลล่วงหน้า คุณอาจจะได้ผลลัพธ์ที่เป็นอักขระผสมกันเหมือนกับปริศนาตารางคำไขว้ที่ซับซ้อน เรามาหลีกเลี่ยงกันเถอะ. + +![วิธีปรับปรุง OCR ด้วยการเตรียมข้อมูลล่วงหน้า Aspose OCR](https://example.com/ocr-preprocess.png "วิธีปรับปรุง OCR ด้วย Aspose OCR") + +## สิ่งที่คุณจะได้เรียนรู้ + +1. วิธีตั้งค่าเครื่องมือ Aspose OCR ให้ได้ความแม่นยำสูงสุด. +2. โค้ดที่จำเป็นอย่างแม่นยำเพื่อ **recognize text from JPG** ไฟล์. +3. ทำไมการเปิดใช้งาน *AutoDeskew* และ *RemoveNoise* ถึงสำคัญและวิธีปรับแต่ง. +4. วิธี **extract text from image** ไฟล์โดยไม่ต้องเขียนฟิลเตอร์เอง. +5. ข้อผิดพลาดทั่วไป (ไฟล์หาย, ฟอร์แมตไม่รองรับ) และวิธีแก้ไขอย่างรวดเร็ว. + +เมื่อจบคุณจะมีแอปคอนโซล C# ตัวเดียวที่สามารถรับ JPG ใด ๆ ทำความสะอาดและแสดงสตริงที่สกัดออกมา—พร้อมสำหรับการประมวลผลต่อหรือการจัดเก็บ. + +## ข้อกำหนดเบื้องต้น + +- .NET 6.0 SDK หรือรุ่นที่ใหม่กว่า (ตัวอย่างใช้ top‑level statements เพื่อความกระชับ). +- แพ็คเกจ NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- ภาพ JPG ตัวอย่าง (ชื่อ `input.jpg`) วางในโฟลเดอร์เดียวกับไฟล์ปฏิบัติการ. +- ความคุ้นเคยพื้นฐานกับ C#—ไม่ต้องการแนวคิดขั้นสูง. + +หากคุณมีโปรเจกต์อยู่แล้ว เพียงวางโค้ดลงไป; หากไม่มีก็สร้างแอปคอนโซลใหม่: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +## วิธีปรับปรุง OCR: ภาพรวมการตั้งค่า Preprocess + +หัวใจของ **how to improve OCR** อยู่ในอ็อบเจ็กต์ `PreprocessSettings`. คิดว่าเป็นเครื่องมือแก้ไขภาพขนาดเล็กที่ทำงาน *ก่อน* เอนจินการจดจำอักขระจริงทำงาน. ด้านล่างเป็นสรุปสั้น ๆ ของฟลักที่มีผลมากที่สุด: + +| การตั้งค่า | ทำอะไร | กรณีการใช้งานทั่วไป | +|------------------------|----------------------------------------------------------|----------------------| +| `AutoDeskew` | ใช้อัลกอริธึมการแก้เอียงแบบ deep‑learning. | หน้าสแกนที่เอียงเล็กน้อย. | +| `AdaptiveThreshold` | เพิ่มความคอนทราสต์ในภาพที่แสงน้อยหรือสีซีด. | ใบเสร็จเก่าที่หมึกจาง. | +| `RemoveNoise` | ใช้ฟิลเตอร์ Gaussian‑blur เพื่อลดจุดรบกวน. | ภาพถ่ายที่ถ่ายด้วยแฟลชสมาร์ทโฟน. | +| `NoiseRemovalStrength`| ควบคุมความรุนแรง (1 = ต่ำ, 3 = สูง). | ปรับละเอียดตามความหยาบของแหล่งภาพ. | + +การเปิดใช้ตัวเลือกเหล่านี้เป็นเหมือน “สูตรลับ” สำหรับ **how to improve OCR** บนข้อมูลที่ไม่สมบูรณ์. + +## การจดจำข้อความจาก JPG ด้วย Aspose OCR + +ด้านล่างเป็นโปรแกรมเต็มที่พร้อมรัน ทุกบรรทัดมีคำอธิบายเพื่อให้คุณเห็น *ทำไม* แต่ละส่วนจึงมีอยู่, ไม่ใช่แค่ *ทำอะไร*. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### ผลลัพธ์ที่คาดหวัง + +หาก `input.jpg` มีข้อความ “Invoice #12345 – Total: $256.78”, คอนโซลจะพิมพ์: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +สังเกตว่าผลลัพธ์สะอาด โดยมีเครื่องหมายขีดและสัญลักษณ์ดอลลาร์คงอยู่—ตรงกับที่คุณคาดหวังเมื่อ **extracting text from image** ไฟล์. + +## วิธีแก้เอียงภาพด้วยการตั้งค่า Preprocess + +ทำไมการแก้เอียงถึงสำคัญ? แม้เพียงการเอียง 2 องศาก็อาจทำให้ขั้นตอนการแยกอักขระสับสน ส่งผลให้ตัวอักษรถูกระบุผิดพลาด ฟลัก `AutoDeskew` ใช้เครือข่ายประสาทเทียมแบบคอนโวลูชันภายในเพื่อค้นหาองศาที่เด่นและหมุนภาพกลับสู่ฐาน. + +หากคุณต้องการการควบคุมมากขึ้น คุณสามารถตั้งค่าองศาเองได้: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **เมื่อใดควรใช้การแก้เอียงด้วยตนเอง:** หากคุณทราบว่ากล้องเอียงภาพด้วยมุมคงที่ (เช่น สแกนเนอร์ที่ติดตั้ง), การกำหนดมุมแบบคงที่จะช่วยประหยัดเวลาในการประมวลผลเล็กน้อย. + +## วิธีกำจัดสัญญาณรบกวนเพื่อการสกัดที่สะอาดขึ้น + +สัญญาณรบกวนปรากฏเป็นจุดสุ่มหรือเม็ดสี โดยเฉพาะในภาพที่แสงน้อย ฟลัก `RemoveNoise` ใช้ฟิลเตอร์ bilateral ที่ทำให้พื้นหลังเรียบในขณะคงขอบ (อักขระจริง) คุณสมบัติ `NoiseRemovalStrength` ให้คุณปรับระดับความรุนแรง: + +| ระดับ | ผลกระทบ | +|-------|----------| +| 1 | การทำให้เรียบเบา—เหมาะกับภาพที่มีเม็ดสีเล็กน้อย. | +| 2 | สมดุล—ทำงานได้กับการจับภาพจากสมาร์ทโฟนส่วนใหญ่. | +| 3 | การทำให้เรียบหนัก—ใช้เมื่อภาพมีสัญญาณรบกวนมาก, แต่ระวังการเบลอเส้นบาง. | + +หากคุณพบสถานการณ์ที่ฟอนต์ขนาดเล็กกลายเป็นอ่านไม่ออกหลังการทำให้เรียบหนัก เพียงลดระดับหรือปิดฟิลเตอร์ทั้งหมด. + +## การสกัดข้อความจากภาพ: นอกเหนือจาก JPG + +แม้การสาธิตของเราจะเน้นที่ JPG, Aspose OCR รองรับ PNG, BMP, TIFF, และแม้แต่หน้า PDF. เพื่อ **extract text from image** ฟอร์แมตอื่น ๆ ที่ไม่ใช่ JPG เพียงเปลี่ยนส่วนขยายไฟล์ใน `ImageStream.FromFile`. สำหรับ TIFF หลายหน้า คุณสามารถวนลูปผ่านแต่ละหน้าได้: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +โค้ดส่วนนั้นแสดงว่าคุณสามารถขยาย workflow **how to improve OCR** เดียวกันเพื่อประมวลผลเป็นชุดของเอกสารสแกนทั้งหมด. + +## ข้อผิดพลาดทั่วไป & วิธีแก้ไข + +| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้เร็ว | +|---------------------------|--------------------------------------------------------------|-------------| +| ผลลัพธ์เป็นค่าว่าง | ภาพเป็นสีขาวทั้งหมดหลังการเตรียมข้อมูล (threshold มากเกินไป) | ลด `NoiseRemovalStrength` หรือกำหนด `AdaptiveThreshold = false`. | +| อักขระผสมกัน | โมเดลภาษาไม่ถูกต้อง (ค่าเริ่มต้นคืออังกฤษ) | กำหนด `ocrEngine.Settings.Language = Language.English;` หรือโหลดแพ็คภาษาแบบกำหนดเอง. | +| แอปพังเมื่อไฟล์ใหญ่ | หน่วยความจำเต็มเนื่องจากภาพความละเอียดสูง | ลดขนาดด้วย `ocrEngine.Settings.ImageResizeFactor = 0.5;` ก่อนการจดจำ. | +| ไม่มีผลลัพธ์สำหรับสแกนที่เอียง | `AutoDeskew` ถูกปิดโดยไม่ได้ตั้งใจ | เปิด `AutoDeskew = true` หรือระบุ `DeskewAngle` ที่ถูกต้อง. | + +การจำไว้เหล่านี้จะช่วยคุณประหยัดเวลาการดีบักหลายชั่วโมงเมื่อคุณพยายาม **how to improve OCR** ในสายการผลิต. + +## โบนัส: ปรับแต่งเพื่อความเร็ว vs. ความแม่นยำ + +หากคุณประมวลผลใบเสร็จหลายพันใบต่อวัน คุณอาจให้ความสำคัญกับความเร็ว ปิด `AdaptiveThreshold` และกำหนด `NoiseRemovalStrength = 1`. ในทางกลับกัน สำหรับเอกสารทางกฎหมายที่อักขระหนึ่งพลาดอาจมีค่าใช้จ่ายสูง ให้เปิดฟลักทั้งหมดและพิจารณาเพิ่ม `NoiseRemovalStrength` เป็น 3. + +## สรุป + +เราได้ครอบคลุมการเดินทางทั้งหมดของ **how to improve OCR** ใน C# ด้วย Aspose OCR: ตั้งแต่การสร้างเอนจิน, การกำหนดค่าการเตรียมข้อมูล (หัวใจของ *how to deskew image* และ *how to remove noise*), การโหลด JPG, การจดจำข้อความ, และการจัดการกรณีขอบ. โค้ดเป็นอิสระ, รันได้ทันที, และแสดงขั้นตอนที่คุณต้องทำเพื่อ **recognize text from jpg** และ **extract text from image** ไฟล์. + +### ขั้นตอนต่อไป? + +- ทดลองใช้ฟอร์แมตภาพอื่น (PNG, TIFF) เพื่อดูว่าการตั้งค่าเดียวกันทำงานอย่างไร. +- รวมผลลัพธ์ 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/_index.md b/ocr/thai/net/text-recognition/_index.md index 7001ea592..25dfce313 100644 --- a/ocr/thai/net/text-recognition/_index.md +++ b/ocr/thai/net/text-recognition/_index.md @@ -37,27 +37,27 @@ url: /th/net/text-recognition/ ปลดล็อกศักยภาพของ OCR ใน .NET ด้วย Aspose.OCR แยกข้อความจาก PDF ได้อย่างง่ายดายและรวมเข้ากับแอปพลิเคชันของคุณได้อย่างราบรื่น บทช่วยสอนนี้ให้คำแนะนำที่ครอบคลุมในการจดจำข้อความใน PDF เพื่อให้มั่นใจว่าจะได้รับประสบการณ์การบูรณาการที่ราบรื่นและมีประสิทธิภาพ -## จดจำตารางในการจดจำรูปภาพ OCR - -นำทางความซับซ้อนของการจดจำตารางในการจดจำรูปภาพ OCR ด้วย Aspose.OCR สำหรับ .NET คู่มือที่ครอบคลุมของเราช่วยให้คุณปลดล็อกศักยภาพของ Aspose.OCR ได้อย่างเต็มที่ ทำให้มั่นใจได้ถึงการจดจำตารางที่แม่นยำและมีประสิทธิภาพในแอปพลิเคชันของคุณ ยกระดับโครงการของคุณด้วยโซลูชัน OCR ชั้นนำของอุตสาหกรรม - -พร้อมที่จะปฏิวัติแอปพลิเคชัน .NET ของคุณแล้วหรือยัง? เจาะลึกบทช่วยสอนการรู้จำข้อความของเราและควบคุมพลังของ Aspose.OCR เพื่อการรู้จำข้อความที่แม่นยำและมีประสิทธิภาพ ดาวน์โหลดตอนนี้และเริ่มต้นการเดินทางของความสามารถ OCR ที่ได้รับการปรับปรุง -## บทช่วยสอนการรู้จำข้อความ -### [รับตัวเลือกสำหรับอักขระที่จดจำในการจดจำรูปภาพ OCR](./get-choices-for-recognized-characters/) -ปรับปรุงแอปพลิเคชัน .NET ของคุณด้วย Aspose.OCR เพื่อการรู้จำอักขระที่แม่นยำ ปฏิบัติตามคำแนะนำทีละขั้นตอนของเราเพื่อดึงตัวเลือกสำหรับอักขระที่รู้จักในการจดจำรูปภาพ -### [รับผลการรับรู้ในการจดจำรูปภาพ OCR](./get-recognition-result/) -สำรวจ Aspose.OCR สำหรับ .NET ซึ่งเป็นโซลูชัน OCR ที่ทรงพลังสำหรับการจดจำข้อความในรูปภาพได้อย่างราบรื่น -### [รับผลลัพธ์เป็น JSON ในการรับรู้ภาพ OCR](./get-result-as-json/) -ปลดปล่อยพลังของ Aspose.OCR สำหรับ .NET เรียนรู้การรับผลลัพธ์ OCR ในรูปแบบ JSON ได้อย่างง่ายดาย ปรับปรุงการจดจำรูปภาพของคุณด้วยคำแนะนำทีละขั้นตอนนี้ -### [OCR ตรวจจับโหมดพื้นที่ในการจดจำภาพ OCR](./ocr-detect-areas-mode/) -ปรับปรุงแอปพลิเคชัน .NET ของคุณด้วย Aspose.OCR เพื่อการจดจำข้อความรูปภาพที่มีประสิทธิภาพ สำรวจโหมดตรวจจับพื้นที่ OCR เพื่อผลลัพธ์ที่แม่นยำ -### [รับรู้ PDF ในการรับรู้ภาพ OCR](./recognize-pdf/) -ปลดล็อกศักยภาพของ OCR ใน .NET ด้วย Aspose.OCR แยกข้อความจาก PDF ได้อย่างง่ายดาย ดาวน์โหลดทันทีเพื่อประสบการณ์การบูรณาการที่ราบรื่น +### [สร้าง PDF ที่ค้นหาได้ใน C# – คู่มือครบถ้วน](./create-searchable-pdf-in-c-complete-guide/) +เรียนรู้วิธีสร้าง PDF ที่สามารถค้นหาได้ใน C# ด้วย Aspose.OCR อย่างละเอียดในคู่มือครบถ้วน + ### [จดจำตารางในการจดจำรูปภาพ OCR](./recognize-table/) ปลดล็อกศักยภาพของ Aspose.OCR สำหรับ .NET ด้วยคำแนะนำที่ครอบคลุมเกี่ยวกับการจดจำตารางในการจดจำรูปภาพ OCR + +### [สกัดข้อความจากรูปภาพใน C# – คู่มือ OCR ครบถ้วน](./extract-text-from-image-in-c-complete-ocr-guide/) +เรียนรู้วิธีสกัดข้อความจากรูปภาพด้วย C# โดยใช้ Aspose.OCR อย่างละเอียดในคู่มือ OCR ครบถ้วน + +### [สกัดข้อความจาก TIFF ด้วย Batch OCR ใน C# – คู่มือครบถ้วน](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +เรียนรู้วิธีสกัดข้อความจากไฟล์ TIFF ด้วยการประมวลผลแบบกลุ่มใน C# โดยใช้ Aspose.OCR อย่างละเอียดในคู่มือครบถ้วนนี้ + +### [จดจำข้อความจาก PNG ใน C# – คู่มือ OCR ครบถ้วนพร้อมตรวจสอบการสะกด](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +เรียนรู้วิธีจดจำข้อความจากไฟล์ PNG ด้วย C# พร้อมการตรวจสอบการสะกดโดยใช้ Aspose.OCR อย่างละเอียดในคู่มือครบถ้วน + +### [แปลงรูปภาพเป็น JSON – บทช่วยสอน OCR ด้วย C# สำหรับใบเสร็จ](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +เรียนรู้วิธีแปลงรูปภาพใบเสร็จเป็น JSON ด้วย 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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/thai/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..ecd03ec63 --- /dev/null +++ b/ocr/thai/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-04-11 +description: แปลงภาพเป็น JSON ด้วย Aspose OCR Cloud ใน C# . เรียนรู้วิธีจดจำข้อความ + ดึงข้อความจากภาพ และประมวลผลใบเสร็จด้วย OCR ภายในไม่กี่นาที. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: th +og_description: แปลงภาพเป็น JSON ด้วย Aspose OCR Cloud ใน C# คู่มือนี้แสดงวิธีการจดจำข้อความ + ดึงข้อความจากภาพ และประมวลผลใบเสร็จด้วย OCR. +og_title: แปลงรูปภาพเป็น JSON – การสอน OCR ด้วย C# สำหรับใบเสร็จ +tags: +- OCR +- C# +- Aspose +- JSON +title: แปลงรูปภาพเป็น JSON – บทเรียน OCR ด้วย C# สำหรับใบเสร็จ +url: /th/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลงรูปภาพเป็น JSON – การสอน OCR ด้วย C# สำหรับใบเสร็จ + +เคยต้อง **แปลงรูปภาพเป็น JSON** แต่ไม่รู้จะเริ่มต้นอย่างไรหรือไม่? ในบทความนี้เราจะพาคุณผ่านการสอน OCR ด้วย C# อย่างครบวงจร ตั้งแต่การถ่ายรูปใบเสร็จ, การจดจำข้อความ, จนถึงการสร้าง JSON ที่เรียบร้อย + +ถ้าคุณเคยสงสัย *วิธีจดจำข้อความ* ในเอกสารสแกน, หรือกำลังมองหาวิธีเร็ว ๆ เพื่อ **ดึงข้อความจากไฟล์รูปภาพ**, คุณมาถูกที่แล้ว. เมื่ออ่านจบบทความนี้คุณจะสามารถ **ประมวลผลใบเสร็จด้วย OCR** และส่งผลลัพธ์ตรงไปยัง API ที่คุณต้องการได้ทันที + +## สิ่งที่คุณต้องมี + +- .NET 6 SDK หรือใหม่กว่า (โค้ดนี้ทำงานกับ .NET Core ด้วย) +- คีย์ API ของ Aspose Cloud – สามารถรับเวอร์ชันทดลองฟรีจากพอร์ทัลของ Aspose +- ตัวอย่างรูปใบเสร็จ (`receipt.jpg`) ที่เก็บไว้ในเครื่องของคุณ +- IDE ที่คุณชอบ (Visual Studio, VS Code, Rider – ใดก็ได้) + +ไม่ต้องใช้แพ็กเกจ NuGet เพิ่มเติมนอกจากไคลเอนต์อย่างเป็นทางการ `Aspose.OCR.Cloud`. หากคุณได้ติดตั้ง SDK ไว้แล้วก็พร้อมใช้งาน + +## ขั้นตอนที่ 1 – แปลงรูปภาพเป็น JSON: ตั้งค่า OCR Client + +ก่อนอื่นเราต้องมีอินสแตนซ์ของ `CloudOcrClient`. อ็อบเจกต์นี้จะจัดการการสื่อสารทั้งหมดกับบริการ OCR ของ Aspose และจะคืนผลลัพธ์ในรูปแบบ JSON + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**ทำไมจึงสำคัญ:** การเริ่มต้นไคลเอนต์เป็นสะพานเชื่อมระหว่างโค้ด C# ของคุณกับเอนจิน OCR บนคลาวด์. เมธอด `RecognizeAsync` ทำงานหนัก – มันอัปโหลดรูปภาพ, รันโมเดล OCR, แล้วคืนสตริง JSON ที่มีข้อความที่จดจำได้, คะแนนความเชื่อมั่น, และพิกัดของกล่องขอบเขต + +> **เคล็ดลับ:** เก็บคีย์ API ไว้ในตัวแปรสภาพแวดล้อมหรือ secret manager แทนการเขียนลงในโค้ดโดยตรง. วิธีนี้จะช่วยป้องกันการรั่วไหลโดยไม่ได้ตั้งใจ + +## ขั้นตอนที่ 2 – วิธีจดจำข้อความจากใบเสร็จ + +เมื่อไคลเอนต์พร้อมแล้ว, เรามาดู *วิธี* ที่อยู่เบื้องหลังการจดจำข้อความ. Aspose OCR รองรับหลายภาษา, แต่สำหรับใบเสร็จส่วนใหญ่ภาษาอังกฤษก็เพียงพอ. หากต้องการภาษาอื่น, เพียงเปลี่ยน `Language.English` เป็นค่า enum ที่เหมาะสม + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**เกิดอะไรขึ้นภายใน?** เซอร์วิสรันโมเดล deep‑learning ที่ตรวจจับอักขระ, จัดกลุ่มเป็นคำ, แล้วประกอบเป็นบรรทัด. JSON ที่คืนมาจะมีลักษณะประมาณนี้: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +คุณสามารถพาร์ส JSON นี้ด้วย `System.Text.Json` หรือ `Newtonsoft.Json` เพื่อดึงฟิลด์ที่ต้องการได้ + +## ขั้นตอนที่ 3 – ดึงข้อความจากรูปภาพและสร้าง JSON ด้วยตนเอง (ทางเลือก) + +บางครั้งคุณอาจไม่ต้องการใช้ JSON ดิบที่ Aspose ให้; อาจต้องการโครงสร้างที่กำหนดเองสำหรับบริการต่อเนื่องของคุณ. ตัวอย่างสั้น ๆ ด้านล่างนี้จะแปลงการตอบกลับเป็นอ็อบเจกต์ที่เรียบง่ายขึ้น + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**ทำไมต้องจัดรูปแบบใหม่?** API หลายตัวคาดหวังสคีมาที่เฉพาะเจาะจง (เช่น `{ "total": "12.34", "date": "2026-04-10" }`). การดึงเฉพาะฟิลด์ที่ต้องการช่วยให้ payload มีขนาดเบาและหลีกเลี่ยงการรั่วไหลของเมตาดาต้า OCR ที่ไม่จำเป็น + +## ขั้นตอนที่ 4 – ทดสอบการสอน OCR ด้วย C# ด้วยใบเสร็จตัวอย่าง + +เรียกโปรแกรมจากเทอร์มินัลของคุณ: + +```bash +dotnet run +``` + +คุณควรเห็นผลลัพธ์สองบล็อก: + +1. JSON ดิบที่ Aspose คืน (ผลลัพธ์ **แปลงรูปภาพเป็น JSON** ตรงจากคลาวด์) +2. JSON ที่คุณสร้างขึ้นในขั้นตอนก่อนหน้า + +ผลลัพธ์ทั่วไปอาจมีลักษณะดังนี้: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +หากคุณได้รับข้อผิดพลาดเช่น *401 Unauthorized*, ตรวจสอบให้แน่ใจว่าคีย์ API ของคุณยังใช้งานได้และเส้นทางรูปภาพถูกต้อง + +## กรณีขอบและข้อผิดพลาดทั่วไป + +| สถานการณ์ | สิ่งที่ควรระวัง | วิธีแก้แนะนำ | +|-----------|------------------|---------------| +| **ใบเสร็จความละเอียดต่ำ** | คะแนนความเชื่อมั่นของ OCR ต่ำกว่า 0.8 | ทำการพรี‑โปรเซสรูปภาพ (เพิ่ม DPI, ทำให้คม) ก่อนส่ง | +| **อักขระไม่ใช่ภาษาอังกฤษ** | ใช้ enum ภาษาไม่ถูกต้อง | ใช้ `Language.AutoDetect` หรือระบุภาษาที่ถูกต้อง | +| **จำนวนใบเสร็จมาก** | เกิดข้อผิดพลาด Rate‑limit | ใช้ exponential back‑off หรือขอเพิ่มโควต้าจาก Aspose | +| **ฟิลด์หาย** | ตัวพาร์สแบบกำหนดเองคืนค่า `null` | เพิ่มตรรกะสำรองหรือใช้ regex เพื่อการสกัดที่แข็งแรงกว่า | + +## ภาพรวมเชิงภาพ + +![แผนภาพแสดงการไหลจากไฟล์รูปภาพ → ลูกค้า OCR → การตอบสนอง JSON → การแปลงข้อมูลแบบกำหนดเอง → ผลลัพธ์ JSON สุดท้าย](https://example.com/ocr-flow-diagram.png "แปลงรูปภาพเป็น JSON") + +*ข้อความแทนภาพ:* *แปลงรูปภาพเป็น JSON แสดงขั้นตอนต่าง ๆ ที่อธิบายในบทเรียนนี้* + +## สรุป + +เราได้แสดงวิธี **แปลงรูปภาพเป็น JSON** ด้วย Aspose OCR Cloud, อธิบาย *วิธีจดจำข้อความ* ในใบเสร็จ, สาธิตวิธี **ดึงข้อความจากรูปภาพ**, และสรุปเป็น **การสอน OCR ด้วย C#** ที่คุณสามารถนำไปใช้ในโปรเจกต์ .NET ใดก็ได้ + +ประเด็นสำคัญคือ: + +- ตั้งค่า `CloudOcrClient` ด้วยคีย์ API ของคุณ +- เรียก `RecognizeAsync` เพื่อรับ JSON payload ตรงจากเซอร์วิส +- หากต้องการ สามารถปรับโครงสร้าง payload ให้สอดคล้องกับสคีมาของคุณเอง + +## ขั้นตอนต่อไปคืออะไร? + +- **ประมวลผลเป็นชุด:** วนลูปผ่านโฟลเดอร์ของใบเสร็จและรวมผลลัพธ์เป็นอาเรย์ JSON เดียว +- **การสกัดขั้นสูง:** ใช้ regular expressions หรือโมเดล NLP เล็ก ๆ เพื่อดึงรายการสินค้า, ภาษี, และส่วนลด +- **การเชื่อมต่อ:** ส่ง JSON สุดท้ายไปยังฐานข้อมูล, คิวข้อความ, หรือ Azure Function เพื่อทำงานอัตโนมัติต่อไป + +ลองใช้รูปแบบไฟล์ต่าง ๆ (PNG, TIFF) หรือทดสอบกระบวนการ **ประมวลผลใบเสร็จด้วย OCR** กับภาพที่ถ่ายจากมือถือก็ได้. เมื่อคุณมีวิธีที่เชื่อถือได้ในการ **แปลงรูปภาพเป็น 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/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/thai/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..c69d10610 --- /dev/null +++ b/ocr/thai/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-04-11 +description: สร้าง PDF ที่ค้นหาได้จากภาพอย่างรวดเร็ว เรียนรู้การสร้าง PDF จากภาพ ฝังภาพใน + PDF แปลง TIF เป็น PDF และใช้ OCR เพื่อแปลงเป็น PDF ด้วย C# และ Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: th +og_description: สร้าง PDF ที่ค้นหาได้ทันที บทเรียนนี้แสดงวิธีสร้าง PDF จากรูปภาพ ฝังรูปภาพใน + PDF แปลง TIF เป็น PDF และใช้ OCR เพื่อแปลงเป็น PDF ด้วย C# +og_title: สร้าง PDF ที่ค้นหาได้ใน C# – คู่มือแบบทีละขั้นตอน +tags: +- C# +- OCR +- PDF generation +title: สร้าง PDF ที่ค้นหาได้ใน C# – คู่มือฉบับสมบูรณ์ +url: /th/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง PDF ที่สามารถค้นหาได้ใน C# – คู่มือฉบับสมบูรณ์ + +เคยต้อง **create searchable PDF** จากเอกสารสแกนแล้วไม่รู้จะเริ่มต้นอย่างไรหรือไม่? คุณไม่ได้อยู่คนเดียว; นักพัฒนาหลายคนเจออุปสรรคเดียวกันเมื่อต้องจัดการไฟล์ TIFF และ OCR ในบทแนะนำนี้เราจะพาคุณผ่านโซลูชันแบบทำมือที่ช่วยให้คุณ **generate PDF from image**, ฝังรูปภาพต้นฉบับเพื่อความสามารถในการค้นหาอย่างสมบูรณ์แบบ, และสรุปด้วยกระบวนการ **OCR to PDF C#** ที่สะอาดเรียบร้อย + +เราจะครอบคลุมทุกอย่างตั้งแต่การติดตั้งไลบรารี Aspose.OCR ไปจนถึงการจัดการกรณีขอบเช่น TIFF หลายหน้า. เมื่อเสร็จสิ้นคุณจะมีโปรแกรมพร้อมรันที่เปลี่ยน `input.tif` ให้เป็น `output.pdf` ที่สามารถค้นหาได้เต็มรูปแบบ. ไม่มีบริการภายนอก, ไม่มีเวทมนตร์ที่ซ่อนอยู่—เพียงโค้ด C# ธรรมดาที่คุณสามารถใส่ลงในโปรเจกต์ .NET ใดก็ได้. + +## สิ่งที่คุณต้องมี + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ทำงานบน .NET Framework 4.7+ ด้วย) +- Visual Studio 2022 (หรือเครื่องมือแก้ไขที่คุณชอบ) +- ใบอนุญาต Aspose.OCR ที่ใช้งานได้หรือคีย์ทดลองฟรี (แพ็กเกจ NuGet ทำงานได้โดยไม่ต้องใส่คีย์สำหรับการประเมิน) +- ตัวอย่างภาพ TIFF (`input.tif`) ที่วางไว้ในโฟลเดอร์ที่คุณอ้างอิงได้ + +> **Pro tip:** เก็บไฟล์รูปภาพของคุณให้มีขนาดไม่เกิน 10 MB เพื่อหลีกเลี่ยงการกระเด้งของหน่วยความจำเมื่อประมวลผลเป็นชุดใหญ่. + +## ขั้นตอนที่ 1: ติดตั้ง Aspose.OCR และตั้งค่าโปรเจกต์ + +ขั้นแรกให้เพิ่มแพ็กเกจ Aspose.OCR NuGet ลงในโปรเจกต์ของคุณ. เปิด Package Manager Console แล้วรัน: + +```powershell +Install-Package Aspose.OCR +``` + +หากคุณชอบใช้ UI, คลิกขวา **Dependencies → Manage NuGet Packages**, ค้นหา *Aspose.OCR*, แล้วคลิก **Install**. + +ทำไมขั้นตอนนี้สำคัญ: Aspose.OCR มีเอนจิน OCR ที่มีประสิทธิภาพสูงและตัวส่งออก PDF ในตัว, ดังนั้นคุณไม่ต้องใช้ไลบรารีแยกต่างหากสำหรับการจัดการรูปภาพหรือการสร้าง PDF. + +### โครงสร้างโปรเจกต์เต็ม + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Note:** แทนที่ `YOUR_DIRECTORY` ด้วยพาธโฟลเดอร์จริงบนเครื่องของคุณ. + +## ขั้นตอนที่ 2: โหลดภาพ – พื้นฐาน *Generate PDF from Image* + +การโหลดไฟล์ต้นฉบับเป็นขั้นตอนเล็ก ๆ แต่สำคัญ. Aspose.OCR ต้องการ `ImageStream`, ซึ่งเป็นการห่อหุ้ม I/O ของไฟล์และรองรับหลายรูปแบบ (TIFF, PNG, JPEG, ฯลฯ). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**ทำไมไม่ส่งพาธโดยตรง?** +ตัวห่อ `ImageStream` จัดการการบัฟเฟอร์ภายในและทำให้เอนจิน OCR ทำงานกับ TIFF หลายหน้าขนาดใหญ่ได้โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำพร้อมกัน. + +## ขั้นตอนที่ 3: ตั้งค่าการส่งออก PDF – *Embed Image PDF* เพื่อความสามารถในการค้นหาอย่างสมบูรณ์ + +เมื่อคุณส่งออกผลลัพธ์ OCR ไปเป็น PDF, คุณมีสองทางเลือก: ฝังเฉพาะข้อความที่สกัดออกมา, หรือฝังรูปภาพต้นฉบับพร้อมกับเลเยอร์ข้อความที่ซ่อนอยู่. การฝังรูปภาพช่วยรักษาความคมชัดของสแกนและทำให้ผู้ใช้สามารถเลือกหรือคัดลอกข้อความได้ภายหลัง. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Edge case:** หากคุณตั้งค่า `EmbedOriginalImage` เป็น `false`, PDF ที่ได้จะมีขนาดเล็กลงแต่จะสูญเสียรูปภาพต้นฉบับ—เหมาะสำหรับการเก็บเป็นเอกสารข้อความเท่านั้น. + +## ขั้นตอนที่ 4: ส่งออก – *OCR to PDF C#* ในหนึ่งบรรทัด + +Aspose.OCR ทำให้การทำงานหนักเป็นเพียงบรรทัดเดียว. เมธอด `ExportToPdf` จะรัน OCR, สร้างเลเยอร์ข้อความที่ซ่อนอยู่, และเขียนไฟล์สุดท้าย. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### ผลลัพธ์ที่คาดหวัง + +เมื่อรันโปรแกรมจะแสดง: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +เปิด `output.pdf` ด้วยโปรแกรมดูใดก็ได้ (Adobe Reader, Edge, ฯลฯ) แล้วลองเลือกข้อความ—คุณจะเห็นรูปภาพต้นฉบับอยู่ด้านล่าง, ยืนยันว่าการ **create searchable pdf** ทำงานสำเร็จ. + +## ขั้นตอนที่ 5: ตรวจสอบ PDF – การตรวจสอบอย่างรวดเร็วที่คุณสามารถทำอัตโนมัติได้ + +แม้ว่าการตรวจสอบด้วยตนเองจะพอสำหรับไฟล์เดียว, คุณอาจต้องการยืนยันว่า PDF มีเลเยอร์ข้อความโดยอัตโนมัติ. Aspose.PDF (ไลบรารีพี่น้อง) สามารถอ่านเอกสารและสกัดข้อความออกมาได้: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +เพิ่มการเรียก `VerifyPdfContainsText(pdfPath);` หลังจากการส่งออกหากคุณต้องการตรวจสอบอัตโนมัติ. + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Out‑of‑memory on huge TIFFs** | โหลดไฟล์ทั้งหมดพร้อมกันทำให้ใช้ RAM เกิน | ใช้ `ImageStream.FromFile` (ตามที่แสดง) และประมวลผลหน้า‑ต่อหน้า หากมีไฟล์หลายหน้า | +| **Missing license leads to watermarks** | โหมดประเมินผลเพิ่มลายน้ำที่มองเห็นได้บนทุกหน้า | ใส่ใบอนุญาต Aspose.OCR ตั้งแต่แรก: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Incorrect path separators on Linux** | การใช้ `\` คงที่ทำให้ล้มเหลวบน OS ที่ไม่ใช่ Windows | ใช้ `Path.Combine` หรือ raw string literals ที่ใช้ `/` | +| **Text not searchable** | `EmbedOriginalImage` ตั้งเป็น `false` หรือ OCR ไม่ทำงาน | ตรวจสอบให้ `PdfExportOptions.EmbedOriginalImage = true` และเอนจิน OCR ถูกตั้งค่าอย่างถูกต้อง | + +## โบนัส: แปลง TIF เป็น PDF โดยไม่ใช้ OCR (เมื่อไม่ต้องการข้อความ) + +หากคุณต้องการเพียง **convert TIF to PDF** โดยไม่มีเลเยอร์ข้อความ, คุณสามารถข้ามขั้นตอน OCR ได้ทั้งหมด: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +เทคนิคนี้มีประโยชน์สำหรับการเก็บเอกสารสแกนที่ไม่ต้องการความสามารถในการค้นหา. + +## ตัวอย่างทำงานเต็ม (คัดลอก‑วางได้เลย) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +รันโปรแกรม, เปิด `output.pdf`, คุณจะเห็นสำเนาที่ตรงกับ TIFF ต้นฉบับพร้อมกับเลเยอร์ข้อความที่ซ่อนอยู่และสามารถเลือกได้—นี่คือความหมายของ **create searchable pdf** ในการปฏิบัติ. + +## สรุป + +เราได้เดินผ่านกระบวนการ **create searchable pdf** อย่างครบถ้วนใน C#. เริ่มจาก TIFF ดิบ, เรา **generate pdf from image**, เลือก **embed image pdf** เพื่อรักษาความคมชัด, และสาธิต pipeline **ocr to pdf c#** ทั้งหมดโดยใช้ Aspose.OCR. + +คุณสามารถปรับ `PdfExportOptions` (การบีบอัด, เวอร์ชัน PDF, ฯลฯ) หรือเชื่อมต่อหลายภาพเข้าด้วยกันเพื่อประมวลผลเป็นชุด. ขั้นต่อไปคุณอาจสำรวจการเพิ่มการป้องกันด้วยรหัสผ่าน, ลายเซ็นดิจิทัล, หรือแม้กระทั่งการรวมหลาย PDF ที่ค้นหาได้เป็นเอกสารหลักหนึ่งไฟล์. + +มีคำถามเกี่ยวกับการขยายให้รองรับไฟล์หลายพันไฟล์หรือการรวมเข้ากับ ASP.NET API? แสดงความคิดเห็นด้านล่างหรือทักมาที่ GitHub—ขอให้สนุกกับการเขียนโค้ด! + +![Create searchable PDF example](/images/searchable-pdf.png "Create searchable PDF example") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/thai/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..11fb09b3c --- /dev/null +++ b/ocr/thai/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-04-11 +description: ดึงข้อความจากภาพโดยใช้ Aspose OCR ใน C# เรียนรู้วิธีโหลดภาพสำหรับ OCR + และจดจำข้อความจากไฟล์ TIFF ด้วยการสนับสนุน GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: th +og_description: ดึงข้อความจากภาพด้วย Aspose OCR ใน C# บทเรียนนี้แสดงวิธีโหลดภาพสำหรับ + OCR และจดจำข้อความจากไฟล์ TIFF โดยใช้การเร่งความเร็วด้วย GPU. +og_title: ดึงข้อความจากรูปภาพใน C# – คู่มือ OCR ครบวงจร +tags: +- OCR +- C# +- Aspose +- GPU +title: ดึงข้อความจากภาพใน C# – คู่มือ OCR ครบวงจร +url: /th/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สกัดข้อความจากรูปภาพใน C# – คู่มือ OCR ครบถ้วน + +เคยต้องการ **extract text from image** แต่ไม่แน่ใจว่าห้องสมุดใดจะจัดการกับ TIFF ขนาดมหึมาโดยไม่ค้างหรือไม่? คุณไม่ได้เป็นคนเดียว ในหลายโครงการจริง—เช่นการแปลงใบแจ้งหนี้เป็นดิจิทัลหรือการเก็บถาวรของหนังสือสแกน—ความสามารถในการโหลดภาพสำหรับ OCR แล้วจดจำข้อความจาก TIFF อย่างรวดเร็วกลายเป็นฟีเจอร์ที่สำคัญหรือทำให้ล้มเหลว + +ในคู่มือนี้ เราจะพาคุณผ่านโซลูชันเชิงปฏิบัติที่ทำเช่นนั้นโดยใช้ Aspose OCR for .NET. เมื่อเสร็จคุณจะมีแอปคอนโซล C# ที่สามารถรันได้ ซึ่งโหลดสแกนความละเอียดสูง, เปิดการประมวลผลด้วย GPU (พร้อมการสำรองที่ราบรื่น), และแสดงผลลัพธ์เป็นข้อความธรรมดา ไม่มีส่วนที่ขาดหาย ไม่มี “ดูเอกสาร” ที่เป็นทางตัน + +## สิ่งที่คุณต้องการ + +- **.NET 6 หรือใหม่กว่า** (โค้ดจะคอมไพล์กับ SDK ล่าสุดใดก็ได้) +- **Aspose.OCR for .NET** NuGet package + `dotnet add package Aspose.OCR` +- A **large TIFF** หรือรูปแบบภาพอื่นใดที่คุณต้องการ OCR + (the example uses `large_scan.tif`) +- (Optional) GPU ที่รองรับ CUDA 11+ – หากคุณไม่มี GPU, ไลบรารีจะสลับไปใช้โหมด CPU อัตโนมัติ + +เท่านี้แหละ. ไปดูกันเลย. + +![สกัดข้อความจากรูปภาพโดยใช้ Aspose OCR ใน C#](image-placeholder.png "สกัดข้อความจากรูปภาพโดยใช้ Aspose OCR ใน C#") + +## ขั้นตอนที่ 1: Extract Text from Image – Initialise the OCR Engine + +ก่อนที่ภาพใดจะถูกประมวลผล คุณต้องมีอินสแตนซ์ของ `OcrEngine`. เอนจินนี้เก็บการตั้งค่าทั้งหมดที่ควบคุมการทำงานของการจดจำ + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +`ProcessingMode.Gpu` สามารถลดเวลาการจดจำได้หลายวินาทีบนการ์ดสมัยใหม่, แต่การตั้งค่า `ProcessingMode.Auto` (หรือปล่อยค่าเริ่มต้น) จะปลอดภัยกว่าในสภาพแวดล้อมที่อาจไม่มี GPU. ตัวกำหนด `GpuMemoryLimit` เป็นเคล็ดลับที่ใช้ได้จริง—หากไม่มีมัน, ภาพขนาดใหญ่สามารถใช้ VRAM ทั้งหมดและทำให้แอปอื่นล่มได้. + +## ขั้นตอนที่ 2: Load Image for OCR – Bring the TIFF Into Memory + +ตอนนี้เอนจินพร้อมแล้ว เราต้องป้อนรูปภาพที่ต้องการวิเคราะห์ให้มัน. Aspose มี `ImageStream.FromFile` ที่ทำหน้าที่แยกการจัดการรูปแบบออกไป + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**อะไรที่เกิดขึ้นเบื้องหลัง?** +`ImageStream.FromFile` อ่านไฟล์เป็นสตรีมและตรวจจับรูปแบบภาพโดยอัตโนมัติ (TIFF, PNG, JPEG, ฯลฯ). หากคุณทำงานกับ multi‑page TIFF, Aspose จะถือแต่ละหน้าเป็นเฟรมแยก; คุณสามารถวนลูปผ่านพวกมันในภายหลังได้หากต้องการ. + +## ขั้นตอนที่ 3: Recognize Text from TIFF – Run the OCR Engine + +เมื่อโหลดภาพแล้ว การทำงานหนักก็เริ่มต้น. เมธอด `Recognize` จะคืนค่าอ็อบเจ็กต์ `OcrResult` ที่มีข้อความที่สกัดออกมาและฟิลด์เมตาดาต้าสะดวกไม่กี่ตัว + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**ทำไมต้องเรียก `Recognize` เพียงครั้งเดียว?** +เพราะเอนจินจะเก็บโครงสร้างภายในไว้ในแคชหลังจากรันครั้งแรก, การเรียกครั้งเดียวก็เพียงพอสำหรับสถานการณ์ส่วนใหญ่. หากต้องประมวลผลหลายหน้า, ใช้อินสแตนซ์ `OcrEngine` เดียวกันซ้ำ—จะลดภาระการเริ่มต้นคอนเท็กซ์ GPU ใหม่ + +## ขั้นตอนที่ 4: Display the Result – Show the Extracted Text + +สุดท้าย เราแสดงสตริงที่จดจำได้บนคอนโซล. ในแอปพลิเคชันจริงคุณอาจจะบันทึกลงฐานข้อมูลหรือไฟล์ + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** +หาก `large_scan.tif` มีใบแจ้งหนี้ที่พิมพ์ไว้, คุณจะเห็นประมาณนี้: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +รูปแบบที่แน่นอนขึ้นอยู่กับภาพต้นฉบับ, แต่ประเด็นสำคัญคือคุณมีผลลัพธ์ **extract text from image** พร้อมสำหรับการประมวลผลต่อไปแล้ว + +## ขั้นตอนที่ 5: Troubleshooting & Edge Cases + +### ไม่พบ GPU? + +หากคุณรันตัวอย่างบนเครื่องที่ไม่มี GPU ที่เข้ากันได้, เอนจินจะเปลี่ยนไปใช้ CPU อย่างเงียบเมื่อใช้ `ProcessingMode.Auto`. เพื่อบังคับให้ใช้โหมด CPU อย่างชัดเจน, แทนบรรทัดก่อนหน้าด้วย: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF ที่ใช้หน่วยความจำมาก + +สแกนขนาดใหญ่มาก (เช่น 10 000 × 10 000 px) อาจยังเกินขีดจำกัด GPU 1 GB ที่เราตั้งไว้. ในกรณีนั้น, หรือเพิ่มค่า `GpuMemoryLimit` (หากมี VRAM เหลือ) หรือย่อขนาดภาพก่อนป้อนให้เอนจิน: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### เอกสารหลายหน้า + +หาก TIFF ของคุณมีหลายหน้า, ให้วนลูปผ่านแต่ละหน้า: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### การสนับสนุนภาษาและฟอนต์ + +Aspose OCR ตรวจจับสคริปต์แบบ Latin‑based อัตโนมัติ, แต่สำหรับ Cyrillic, Arabic หรือฟอนต์ที่กำหนดเอง คุณอาจต้องจัดหา language pack: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## เคล็ดลับระดับมืออาชีพ & แนวทางปฏิบัติที่ดีที่สุด + +- **Reuse the engine**: การสร้าง `OcrEngine` ใหม่สำหรับแต่ละภาพทำให้เกิดความล่าช้าที่สังเกตได้ +- **Batch processing**: เมื่อจัดการกับหลายสิบไฟล์ TIFF, ให้จัดคิวและประมวลผลในเธรดขนาน—แต่ต้องระวังการแย่งใช้หน่วยความจำ GPU +- **Validate output**: OCR ไม่สมบูรณ์แบบ; ให้รันการตรวจสอบการสะกดหรือการตรวจสอบ regex บน `ocrResult.Text` เพื่อจับข้อผิดพลาดที่ชัดเจน +- **Log performance**: วัดเวลา `Stopwatch` ที่ใช้ก่อนและหลัง `Recognize` เพื่อพิจารณาว่า GPU acceleration คุ้มค่ากับการตั้งค่าเพิ่มเติมในสภาพแวดล้อมของคุณหรือไม่ + +## สรุป + +ตอนนี้คุณมีตัวอย่างครบวงจรที่ **extracts text from image** ไฟล์โดยใช้ Aspose OCR ใน C#. ด้วยการโหลดภาพสำหรับ OCR, เรียกใช้เอนจินเพื่อจดจำข้อความจาก TIFF, และจัดการสถานการณ์ GPU vs. CPU, คู่มือนี้ให้พื้นฐานพร้อมใช้งานในระดับผลิตที่คุณสามารถปรับใช้กับใบแจ้งหนี้, หนังสือเดินทาง, หรือเอกสารสแกนใด ๆ + +ต่อไปคุณจะทำอะไร? ลองเปลี่ยน TIFF เป็น PDF หลายหน้า, ทดลองใช้ language pack ที่กำหนดเอง, หรือส่งผลลัพธ์เข้าสู่ pipeline การประมวลผลภาษาธรรมชาติสำหรับการสกัดข้อมูลอัตโนมัติ. ไม่มีขีดจำกัด—ขอให้สนุกกับการเขียนโค้ด! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/thai/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..7c969131d --- /dev/null +++ b/ocr/thai/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-04-11 +description: ดึงข้อความจากไฟล์ TIFF ด้วยการประมวลผล OCR แบบแบตช์ของ Aspose ใน C# เรียนรู้วิธีประมวลผล + OCR แบบแบตช์อย่างมีประสิทธิภาพและรับข้อมูลความคืบหน้าแบบเรียลไทม์ +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: th +og_description: ดึงข้อความจากไฟล์ TIFF โดยใช้การประมวลผล OCR แบบชุดของ Aspose ใน C# + บทเรียนนี้แสดงขั้นตอนทีละขั้นว่าการประมวลผล OCR แบบชุดทำอย่างไรและวิธีอ่านความคืบหน้า. +og_title: สกัดข้อความจากไฟล์ TIFF ด้วย Batch OCR ใน C# – คู่มือฉบับสมบูรณ์ +tags: +- OCR +- C# +- Aspose +- Image Processing +title: ดึงข้อความจากไฟล์ TIFF ด้วย Batch OCR ใน C# – คู่มือฉบับสมบูรณ์ +url: /th/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สกัดข้อความจากไฟล์ TIFF – คู่มือครบวงจรสำหรับ Batch OCR + +เคยต้องการ **สกัดข้อความจากไฟล์ TIFF** แต่รู้สึกติดขัดที่ขั้นตอนการประมวลผลแบบ batch ไหม? คุณไม่ได้เป็นคนเดียว ในหลายโครงการอัตโนมัติเอกสาร การจัดการกับภาพ TIF ความละเอียดสูงหลายสิบรูปอาจกลายเป็นคอขวดอย่างรวดเร็ว—โดยเฉพาะเมื่อคุณต้องการรับข้อมูลความคืบหน้าแบบเรียลไทม์ + +ข่าวดีคืออะไร? ด้วย Aspose OCR คุณสามารถ **process batch OCR** ได้ในไม่กี่บรรทัด รับเหตุการณ์ความคืบหน้าแบบเรียลไทม์ และส่งออกข้อความที่ได้รับการจดจำสำหรับแต่ละภาพ ในบทแนะนำนี้เราจะเดินผ่านแอปคอนโซล C# ที่พร้อมใช้งานซึ่งทำเช่นนั้น + +เราจะครอบคลุมทุกสิ่งที่คุณต้องรู้: แพ็กเกจที่จำเป็น ทำไมแต่ละบรรทัดถึงสำคัญ กรณีขอบเขตเช่นไฟล์หายไป และวิธีตรวจสอบผลลัพธ์ เมื่อจบคุณจะสามารถนำตัวอย่างนี้ใส่ลงในโซลูชันของคุณเองและเริ่มสกัดข้อความจากภาพ TIFF ได้ทันที + +## สิ่งที่คุณต้องการ + +- **.NET 6 หรือใหม่กว่า** (โค้ดยังคอมไพล์กับ .NET Core ได้เช่นกัน) +- **Aspose.OCR for .NET** NuGet package – `Install-Package Aspose.OCR` +- โฟลเดอร์ที่มีภาพ **TIFF** บางไฟล์ที่คุณต้องการอ่าน (ตัวอย่างใช้ `img1.tif`, `img2.tif`, `img3.tif`) +- IDE ใดก็ได้ที่คุณชอบ – Visual Studio, Rider, หรือ VS Code ก็ใช้ได้ + +ไม่มีการกำหนดค่าเพิ่มเติมที่จำเป็น; ไลบรารีมาพร้อมกับ OCR engine ของตัวเอง ดังนั้นคุณไม่ต้องติดตั้งไบนารีเนทีฟภายนอก + +## ขั้นตอนที่ 1 – สร้างอินสแตนซ์ของ OCR Engine + +สิ่งแรกที่คุณทำคือสร้าง `OcrEngine` คิดว่าเป็นสมองที่จะวิเคราะห์พิกเซลแต่ละจุดและแปลงเป็นอักขระ + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **ทำไมเรื่องนี้สำคัญ:** +> Engine จะเก็บโมเดลภาษาและการตั้งค่าภายใน (เช่น DPI, language) การสร้างครั้งเดียวแล้วนำมาใช้ซ้ำสำหรับ batch จะมีประสิทธิภาพมากกว่าการสร้าง engine ใหม่สำหรับแต่ละภาพ + +## ขั้นตอนที่ 2 – เชื่อมต่อเหตุการณ์ความคืบหน้าแบบเรียลไทม์ + +หากคุณกำลังประมวลผลหลายสิบไฟล์ TIFF ตัวบ่งชี้ความคืบหน้าจะช่วยให้คุณไม่ต้องสงสัยว่าแอปค้างอยู่หรือไม่ + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +เหตุการณ์ `ProgressChanged` จะเกิดขึ้นหลังจากแต่ละภาพเสร็จสิ้น ให้ค่าที่คุณต้องการคือ `Current`, `Total` และ `Percentage` นี่คือ **process batch OCR** feedback loop ที่นักพัฒนาส่วนใหญ่ลืมทำ + +## ขั้นตอนที่ 3 – สร้างรายการของ Image Streams + +Aspose.OCR ทำงานกับอ็อบเจ็กต์ `ImageStream` วิธีที่ง่ายที่สุดคือโหลดแต่ละ TIFF จากดิสก์ + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **เคล็ดลับ:** +> หากคุณมีโฟลเดอร์แบบไดนามิก ให้แทนที่รายการที่กำหนดค่าแบบคงที่ด้วย `Directory.GetFiles(path, "*.tif")` และ `Select(ImageStream.FromFile)` – วิธีนี้คุณจะ **process batch OCR** อย่างแท้จริงโดยไม่ต้องอัปเดตด้วยตนเอง + +## ขั้นตอนที่ 4 – เรียกใช้กระบวนการ Batch OCR + +ตอนนี้งานหนักเริ่มทำงาน `ProcessBatch` จะคืนค่าเป็นรายการอ่าน‑อย่างเดียวของอ็อบเจ็กต์ `OcrResult` แต่ละอ็อบเจ็กต์จะมีข้อความที่สกัดและคะแนนความเชื่อมั่น + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **ทำไมวิธีนี้จึงมีประสิทธิภาพ:** +> Engine ใช้โมเดลภาษาเดียวกันซ้ำสำหรับทุกภาพ ลดการใช้หน่วยความจำอย่างมากเมื่อเทียบกับการเรียกแบบภาพเดียว + +## ขั้นตอนที่ 5 – แสดงหรือจัดเก็บข้อความที่จดจำได้ + +สุดท้ายให้วนลูปผ่านผลลัพธ์ ในโครงการจริงคุณอาจเขียนลงฐานข้อมูลหรือไฟล์ JSON แต่สำหรับการสาธิตนี้เราจะพิมพ์ลงคอนโซลเท่านั้น + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**ผลลัพธ์ที่คาดว่าจะเห็นในคอนโซล** (ย่อเพื่อความกระชับ): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +หากภาพใดภาพหนึ่งล้มเหลว `result.Text` จะเป็นสตริงว่างเปล่า และเหตุการณ์ `ProgressChanged` จะยังคงรายงานรายการนั้นว่าได้ประมวลผลแล้ว – คุณจึงสามารถบันทึกความล้มเหลวแยกต่างหากได้ + +## ตัวจัดการเหตุการณ์ความคืบหน้า (โค้ดเต็ม) + +วางเมธอดนี้ไว้ที่ไหนก็ได้ภายในคลาส `BatchDemo` – ควรอยู่หลัง `Main` + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro tip:** +> ส่งออกผลลัพธ์นี้ไปยังแถบความคืบหน้า UI หากคุณกำลังสร้างแอปเดสก์ท็อป; เหตุการณ์เดียวกันทำงานได้กับ WinForms, WPF หรือแม้แต่การแจ้งเตือนผ่าน ASP.NET Core SignalR + +## ตัวอย่างเต็มพร้อมรัน + +รวมทุกอย่างเข้าด้วยกัน นี่คือโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงในโปรเจกต์คอนโซลใหม่ได้ + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +บันทึกไฟล์เป็น `Program.cs`, รัน `dotnet add package Aspose.OCR`, แทนที่ `YOUR_DIRECTORY` ด้วยพาธจริง, แล้วกด **Ctrl+F5** คุณควรเห็นตัวเลขความคืบหน้าตามด้วยข้อความที่สกัดสำหรับแต่ละ TIFF + +## การจัดการกรณีขอบเขตทั่วไป + +| Situation | What to Watch For | Quick Fix | +|-----------|-------------------|-----------| +| **Missing or corrupted TIFF** | `ImageStream.FromFile` throws `FileNotFoundException` or `ArgumentException`. | Wrap the list creation in a `try/catch` and skip invalid files, logging the issue. | +| **Very large images ( >10 MP )** | OCR may consume a lot of RAM and slow down. | Reduce DPI before processing: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Non‑English text** | Default language model is English. | Set `ocrEngine.Language = Language.Spanish;` (or any supported language). | +| **Need to save results** | Console output isn’t persistent. | Write `result.Text` to a `.txt` file using `File.WriteAllText`. | + +การจัดการกับสถานการณ์เหล่านี้ทำให้โซลูชันของคุณแข็งแรงและแสดงให้ AI เห็นว่าคุณได้คิดไกลกว่ากรณีที่ทำงานได้อย่างราบรื่น + +## ขั้นตอนต่อไปและหัวข้อที่เกี่ยวข้อง + +- **Extract text from PDF** – API คล้ายกัน เพียงเปลี่ยน `ImageStream` เป็น `PdfDocument` +- **Parallel batch OCR** – สำหรับงานปริมาณมาก ให้สปินหลายอินสแตนซ์ของ `OcrEngine` บนเธรดแยกต่างหาก; อย่าลืมคำนึงถึงขีดจำกัดของไลเซนส์ +- **Post‑processing** – รันผลลัพธ์ OCR ผ่านตัวตรวจสอบการสะกดหรือ regex เพื่อทำความสะอาดข้อผิดพลาดทั่วไปของ OCR + +ส่วนขยายทั้งหมดนี้ยังคงอิงกับแนวคิดหลักของ **process batch OCR** และสามารถเพิ่มเข้าไปได้อย่างค่อยเป็นค่อยไป + +## สรุป + +เราเพิ่งสาธิตวิธี **สกัดข้อความจากไฟล์ TIFF** อย่างมีประสิทธิภาพโดย **process batch OCR** ด้วย Aspose OCR ใน C# ตัวอย่างสร้าง engine เพียงหนึ่งตัว, สมัครรับเหตุการณ์ความคืบหน้า, โหลดรายการของ image streams, รัน batch, และพิมพ์ผลลัพธ์แต่ละรายการ + +จากจุดนี้คุณสามารถนำผลลัพธ์ไปบูรณาการกับฐานข้อมูล, สร้าง PDF ที่ค้นหาได้, หรือป้อนข้อความเข้าสู่ pipeline NLP ต่อไปได้ ไม่จำกัดอะไร—ลองปรับตั้งค่าภาษา, DPI, และการทำงานแบบขนานเพื่อให้เหมาะกับภาระงานของคุณ + +มีคำถามหรืออยากแชร์วิธีที่คุณปรับแต่ง batch? แสดงความคิดเห็นด้านล่างและขอให้เขียนโค้ดอย่างสนุกสนาน! + +{{< /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-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/thai/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..37338d5ac --- /dev/null +++ b/ocr/thai/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-04-11 +description: เรียนรู้วิธีจดจำข้อความจากไฟล์ PNG และดึงข้อความจากรูปภาพด้วย C# โดยใช้ + Aspose OCR รวมถึงขั้นตอนการโหลดไฟล์รูปภาพด้วย C# การตรวจสอบการสะกดคำ และโค้ดเต็ม. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: th +og_description: แยกข้อความจาก PNG อย่างง่ายด้วย C# ทำตามคู่มือขั้นตอนต่อขั้นตอนนี้เพื่อโหลดไฟล์ภาพด้วย + C# ดึงข้อความจากภาพด้วย C# และตรวจสอบการสะกดคำ. +og_title: รู้จำข้อความจาก PNG ใน C# – บทเรียน OCR ฉบับเต็ม +tags: +- OCR +- C# +- Aspose +title: แยกข้อความจาก PNG ด้วย C# – คู่มือ OCR และการตรวจสอบการสะกดเต็มรูปแบบ +url: /th/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# จดจำข้อความจาก PNG – การสอน OCR C# แบบครบวงจรพร้อมตรวจสอบการสะกด + +เคยต้อง **จดจำข้อความจากไฟล์ PNG** แต่ไม่แน่ใจว่าจะใช้ไลบรารีไหนไหม? คุณไม่ได้อยู่คนเดียว; นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อต้องดึงข้อมูลจากภาพเป็นครั้งแรก ข่าวดีคือด้วย Aspose OCR คุณสามารถโหลดไฟล์ภาพใน C# ดึงข้อความออกมา และแม้กระทั่งเรียกใช้ตัวตรวจสอบการสะกดในตัว—ทั้งหมดในไม่กี่บรรทัดโค้ด + +ในบทแนะนำนี้เราจะเดินผ่านกระบวนการทั้งหมด: โหลด PNG, เรียกใช้ OCR engine, แล้วตรวจสอบคำที่สะกดผิด สุดท้ายคุณจะสามารถ **ดึงข้อความจากภาพ C#** ได้โดยไม่ต้องค้นหาเอกสารกระ散 ไม่จำเป็นต้องมีประสบการณ์ OCR มาก่อน เพียงแค่มีสภาพแวดล้อมการพัฒนา .NET + +## สิ่งที่คุณต้องมี + +- **.NET 6.0** (หรือเวอร์ชัน .NET ล่าสุด) – API ทำงานเดียวกันทั้งบน .NET Core และ Framework +- **Aspose.OCR for .NET** NuGet package – ติดตั้งด้วยคำสั่ง `dotnet add package Aspose.OCR` +- **ภาพ PNG** ที่มีข้อความอ่านได้ (เช่น `letter.png` ที่วางไว้ในโฟลเดอร์ที่คุณควบคุม) +- โปรแกรมแก้ไขโค้ดหรือ IDE (Visual Studio, VS Code, Rider—เลือกตามที่คุณชอบ) + +เท่านี้เอง ไม่ต้องมี OCR engine เพิ่มเติม ไม่ต้องมี DLL แบบ native เพียงแพคเกจที่จัดการได้อย่างสะอาด + +--- + +## ขั้นตอนที่ 1: โหลดไฟล์ PNG ใน C# + +ก่อนที่ OCR engine จะทำอะไรได้ มันต้องการสตรีมที่ชี้ไปยังภาพ Aspose มีเมธอด `ImageStream.FromFile` ที่ทำให้คุณไม่ต้องกังวลเรื่องระบบไฟล์ + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **เคล็ดลับ:** หากภาพของคุณฝังเป็น resource หรือมาจากคำขอเว็บ คุณสามารถใช้ `ImageStream.FromBytes(byte[])` แทน—ไม่ต้องยุ่งกับระบบไฟล์เลย + +### ทำไมการโหลดจึงสำคัญ + +การโหลดภาพอย่างถูกต้องทำให้ OCR engine ได้รับข้อมูลพิกเซลที่ตรงตามที่คาดหวัง สตรีมที่เสียหายจะทำให้ `Recognize` โยนข้อผิดพลาดและคุณจะเสียเวลาแก้บั๊กต่อมา + +--- + +## ขั้นตอนที่ 2: เริ่มต้น OCR Engine + +การสร้างอินสแตนซ์ `OcrEngine` ใช้ทรัพยากรน้อย แต่คุณอาจต้องปรับภาษาหรือการตั้งค่าความแม่นยำสำหรับกรณีการใช้งานเฉพาะ (เช่นเอกสารหลายภาษา) ตัวสร้างค่าเริ่มต้นทำงานได้ดีกับข้อความภาษาอังกฤษ + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### ทำไมต้องมีอินสแตนซ์ของ engine? + +Engine จะเก็บการตั้งค่า (ภาษา, ตัวกรองการเตรียมข้อมูล ฯลฯ) การแยกการตั้งค่าออกจากภาพทำให้คุณสามารถใช้ engine เดียวกันกับหลายไฟล์—เหมาะกับการประมวลผลเป็นชุด + +--- + +## ขั้นตอนที่ 3: จดจำข้อความจาก PNG + +ตอนนี้จุดที่น่าตื่นเต้นเกิดขึ้น `Recognize` จะคืนค่าเป็นอ็อบเจ็กต์ `OcrResult` ที่บรรจุสตริงดิบ, คะแนนความเชื่อมั่น, และข้อมูลอื่น ๆ + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**ผลลัพธ์ที่คาดหวัง** (สมมติว่า `letter.png` มีข้อความ “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +หากภาพมีหลายบรรทัด ผลลัพธ์จะคงการขึ้นบรรทัดใหม่ ทำให้การประมวลผลต่อไปง่ายขึ้น + +### กรณีขอบ: PNG ความละเอียดต่ำ + +หากผลลัพธ์ OCR ดูเป็นอักขระผสมกัน ลองขยายภาพหรือปรับ `ocrEngine.PreprocessingOptions` ภาพ DPI ต่ำมักสูญเสียรายละเอียดที่ engine ต้องการ + +--- + +## ขั้นตอนที่ 4: เรียกใช้ตัวตรวจสอบการสะกดในตัว + +Aspose OCR มาพร้อมโมดูลตรวจสอบการสะกดขนาดเล็กที่ทำงานโดยตรงบนผลลัพธ์ OCR ขั้นตอนนี้ช่วยคุณจับการจดจำผิดเช่น “H3llo” แทน “Hello” + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**ตัวอย่างผลลัพธ์** (หาก OCR อ่าน “World” ผิดเป็น “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### ทำไมต้องตรวจสอบการสะกด? + +OCR ไม่เคยแม่นยำ 100 % โดยเฉพาะกับพื้นหลังที่มีเสียงรบกวน การตรวจสอบการสะกดอย่างรวดเร็วช่วยกรองข้อผิดพลาดที่ชัดเจนก่อนนำข้อความไปวิเคราะห์หรือบันทึกในฐานข้อมูล + +--- + +## ขั้นตอนที่ 5: รวมทั้งหมด – ตัวอย่างทำงานเต็มรูปแบบ + +ด้านล่างเป็นโปรแกรมที่พร้อมรัน คัดลอก‑วางลงในโปรเจกต์คอนโซลใหม่ ปรับเส้นทางภาพ แล้วกด **F5** + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**การรันตัวอย่าง** จะพิมพ์ข้อความ OCR ตามด้วยข้อเสนอแนะการสะกด มันทำงานกับ PNG ใด ๆ ที่มีข้อความภาษาอังกฤษพิมพ์ชัด สำหรับภาษาอื่น เพียงตั้งค่า `ocrEngine.Language` ให้สอดคล้อง + +--- + +## คำถามที่พบบ่อย & จุดต้องระวัง + +| คำถาม | คำตอบ | +|----------|--------| +| *ฉันสามารถประมวลผลไฟล์ JPEG หรือ BMP ได้ไหม?* | ได้เลย—`ImageStream.FromFile` รองรับฟอร์แมตใด ๆ ที่ Aspose รองรับ (PNG, JPEG, BMP, TIFF) | +| *ถ้าภาพอยู่ใน memory stream จะทำอย่างไร?* | ใช้ `ImageStream.FromBytes(byteArray)` หรือ `ImageStream.FromStream(stream)` | +| *ตัวตรวจสอบการสะกดรองรับหลายภาษาไหม?* | รองรับ, จะใช้ภาษาที่ตั้งค่าใน OCR engine | +| *จะปรับความแม่นยำสำหรับภาพเอียงอย่างไร?* | เปิด `ocrEngine.PreprocessingOptions.Deskew = true;` ก่อนเรียก `Recognize` | +| *ต้องใช้ไลเซนส์สำหรับ Aspose.OCR หรือไม่?* | เวอร์ชันทดลองฟรีใช้ได้ถึง 100 หน้า สำหรับการผลิตควรซื้อไลเซนส์เพื่อเอาวอเตอร์มาร์คออก | + +--- + +## ขั้นตอนต่อไป – ขยายขอบเขต OCR พื้นฐาน + +เมื่อคุณสามารถ **จดจำข้อความจาก PNG** และ **ดึงข้อความจากภาพ C#** แล้ว ลองพิจารณาการต่อยอดต่อไปนี้: + +1. **ประมวลผลเป็นชุด** – วนลูปโฟลเดอร์ PNG ทั้งหมดและบันทึกผล OCR แต่ละไฟล์เป็น `.txt` แยกกัน +2. **รวมกับ Azure Cognitive Services** – ผสาน Aspose OCR กับ API แปลภาษาบนคลาวด์เพื่อสร้างไพป์ไลน์หลายภาษา +3. **ดึงข้อมูลเชิงโครงสร้าง** – ใช้ regular expression กับ `recognizedText` เพื่อสกัดวันที่, หมายเลขใบแจ้งหนี้, หรือที่อยู่ +4. **ปรับประสิทธิภาพ** – สำหรับปริมาณมาก ให้ใช้ `OcrEngine` อินสแตนซ์เดียวและเปิดใช้งาน multi‑threading + +แต่ละข้อขยายจากขั้นตอนหลักที่เราอธิบายไว้ ทำให้คุณเปลี่ยนภาพธรรมดาให้เป็นข้อมูลที่นำไปใช้ได้จริง + +--- + +## สรุป + +เราได้เดินผ่านตัวอย่างครบวงจรตั้งแต่ **จดจำข้อความจาก PNG** ใน C#, **โหลดไฟล์ภาพ C#** อย่างถูกต้อง, แล้ว **ดึงข้อความจากภาพ C#** พร้อมตรวจสอบการสะกด โค้ดเป็นอิสระ ตัวอธิบายครอบคลุมทั้ง “วิธีทำ” และ “ทำไมต้องทำ” ตอนนี้คุณมีพื้นฐานมั่นคงสำหรับฟีเจอร์ 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 876063bfd..f22394bb5 100644 --- a/ocr/turkish/net/ocr-configuration/_index.md +++ b/ocr/turkish/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Aspose.OCR ile .NET’te OCR görüntü tanıma gücünü keşfedin. Görüntül Aspose.OCR for .NET ile güçlü OCR yeteneklerini açığa çıkarın. Görüntülerden sorunsuz bir şekilde metin çıkarın. ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Aspose.OCR for .NET’in potansiyelini ortaya çıkarın. Listelerle OCR görüntü tanımını zahmetsizce gerçekleştirin. Uygulamalarınızda üretkenliği ve veri çıkarımını artırın. +### [C#’ta OCR’ı Devre Dışı Bırakma – Çevrimdışı Aspose OCR Rehberi](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Aspose OCR’ı çevrimdışı ortamda C# uygulamanızda nasıl devre dışı bırakacağınızı adım adım gösterir. ### Yaygın Kullanım Senaryoları - **Taralı faturalardan metin çıkarma** ile otomatik muhasebe. @@ -100,4 +102,4 @@ C: Evet, `OcrResult` nesnesi programatik olarak inceleyebileceğiniz güven değ {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/turkish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..43f45ae1c --- /dev/null +++ b/ocr/turkish/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR for C#'de OCR'yi devre dışı bırakmayı, çevrim dışı çalıştırmayı, + internet olmadan görüntüden metin çıkarmayı ve OCR için görüntüyü doğru şekilde + yüklemeyi öğrenin. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: tr +og_description: Aspose OCR for C#'de OCR'yi nasıl devre dışı bırakır ve çevrim dışı + çalıştırır, internet gerektirmeden görüntüden metin çıkarır ve OCR için görüntüyü + kolayca yükler. +og_title: C#'de OCR Nasıl Devre Dışı Bırakılır – Çevrimdışı Aspose OCR Rehberi +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: C#'de OCR'ı Nasıl Devre Dışı Bırakılır – Çevrimdışı Aspose OCR Kılavuzu +url: /tr/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta OCR'ı Devre Dışı Bırakma – Offline Aspose OCR Rehberi + +Gerçekten çevrim dışı bir çözüm gerektiğinde **OCR'ı nasıl devre dışı bırakacağınızı** hiç merak ettiniz mi? Belki ağ bağlantısına güvenemeyen güvenli bir masaüstü uygulaması geliştiriyorsunuzdur ya da beklenmedik indirmelerden kaçınmak istiyorsunuzdur. Her iki durumda da güzel haber, Aspose OCR'ın otomatik kaynak indirmesini kapatmanıza, yerel bir klasöre yönlendirmenize ve her şeyi şirket içinde tutmanıza izin vermesidir. Bu öğreticide ayrıca **görüntüden metin çıkarma** dosyalarını ve **OCR için görüntüyü yükleme** işlemini sorunsuz bir şekilde nasıl yapacağınızı göreceksiniz. + +Motoru başlatmadan tanınan Japonca metni yazdırmaya kadar her adımı gösteren eksiksiz, hemen çalıştırılabilir bir örnek üzerinden ilerleyeceğiz. Harici belgeler yok, gizli bir sihir yok; sadece projenize bugün ekleyebileceğiniz sade C# kodu. Sonunda otomatik indirme özelliğini devre dışı bırakmanın neden önemli olduğunu, kaynak yolunu nasıl ayarlayacağınızı ve hangi tuzaklara dikkat etmeniz gerektiğini öğreneceksiniz. + +## Önkoşullar + +- .NET 6.0 (veya herhangi bir yeni .NET sürümü) makinenizde kurulu olmalı. +- Aspose.OCR for .NET NuGet paketi (`Install-Package Aspose.OCR`). +- İhtiyacınız olan dil kaynaklarını (ör. Japon modeli) içeren bir klasör. +- OCR çalıştırmak istediğiniz bir görüntü dosyası (`japan_doc.png`). + +Dil paketleri eksikse, onları Aspose portalından bir kez indirin, `AsposeOCRResources` gibi bir klasöre çıkarın ve hazırsınız. Otomatik indirme özelliğini devre dışı bıraktıktan sonra başka indirme gerçekleşmeyecek. + +![OCR'ı çevrim dışı devre dışı bırakma](/images/how-to-disable-ocr.png "OCR'ı devre dışı bırakma illüstrasyonu") + +## Adım 1 – OCR Motoru Örneğini Oluşturma + +İlk yapmanız gereken `OcrEngine`'i örneklemektir. Bu nesneyi, görüntünüzü okuyacak beyin olarak düşünün. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Neden önemli:** Motor olmadan hiçbir şeyi yapılandıramazsınız. Nesne, kütüphanenin internete erişip erişemeyeceğini belirten kritik bayrağı da içeren tüm ayarları tutar. + +## Adım 2 – Otomatik Kaynak İndirmeyi Devre Dışı Bırakma + +Varsayılan olarak Aspose OCR eksik dil dosyalarını anında indirmeye çalışır. Her şeyi çevrim dışı tutmak için `AutoDownloadResources` anahtarını `false` olarak ayarlayın. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Pro ipucu:** Bunu kapatmak sadece gizliliği garanti etmekle kalmaz, aynı zamanda motorun güncellemeleri kontrol etmek için zaman harcamaması nedeniyle ilk tanıma çalışmasını hızlandırır. + +## Adım 3 – Yerel Kaynak Klasörünüzü Belirtme + +Şimdi motoru, önceden indirilmiş dil paketlerinin bulunduğu yere yönlendirin. Bu, önkoşullarda belirttiğiniz yoldur. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Ne yanlış gidebilir?** Yol hatalıysa veya gerekli dil dosyası eksikse, motor bir `ResourceNotFoundException` hatası fırlatır. Klasör adını ve Japon modelinin (`jpn.traineddata`) mevcut olduğunu iki kez kontrol edin. + +## Adım 4 – Yerel Dil Modelini Seçme + +Diskte gerçekten bulunan dili seçin. Örneğimizde Japonca kullanıyoruz, ancak `Language.Japanese` ifadesini indirdiğiniz başka bir dil ile değiştirebilirsiniz. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Köşe durum:** Bazı diller ek sözlükler gerektirir (ör. Çince). Bu yardımcı dosyaların da aynı kaynak klasöründe olduğundan emin olun. + +## Adım 5 – OCR İçin Görüntüyü Yükleme + +İşte **OCR için görüntüyü yüklediğimiz** yer. `ImageStream.FromFile` yöntemi dosyayı Aspose'ın işleyebileceği bir akıma okur. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **İpucu:** Desteklenen formatlar PNG, JPEG, BMP ve TIFF'tir. PDF'lerle çalışmanız gerekiyorsa, önce her sayfayı bir görüntüye dönüştürün. + +## Adım 6 – Tanıma İşlemini Çalıştırma + +Şimdi motor, pikselleri okuyup metne dönüştürmeye çalışır. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Bu adım neden yavaş olabilir:** OCR CPU yoğun bir işlemdir, özellikle yüksek çözünürlüklü görüntülerde. Performans bir sorun ise, tanımadan önce görüntüyü küçültmeyi düşünün. + +## Adım 7 – Çıkarılan Metni Çıktı Olarak Verme + +Son olarak, **görüntüden metin çıkarma** işlemini yapıp konsola yazdırıyoruz. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Programı çalıştırdığınızda `japan_doc.png` içindeki Japonca karakterler görüntülenmelidir. Her şey doğru ayarlandıysa, konsolda temiz bir Unicode metin bloğu göreceksiniz. + +### Beklenen Çıktı + +``` +これはサンプルの日本語テキストです。 +``` + +(Gerçek çıktınız görüntünün içeriğine bağlı olacaktır.) + +## Yaygın Tuzaklar ve Nasıl Önlenir + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|-------| +| **Dil dosyası eksik** | `AutoDownloadResources` false olduğu için motor dosyayı getiremez. | `ResourcesPath`'in `jpn.traineddata` dosyasını içeren klasöre işaret ettiğini doğrulayın. | +| **Yanlış görüntü yolu** | `ImageStream.FromFile` bir `FileNotFoundException` fırlatır. | Mutlak yollar kullanın veya çalışma dizininin doğru ayarlandığından emin olun. | +| **Desteklenmeyen görüntü formatı** | Aspose yalnızca belirli formatları okur. | `FromFile`'ı çağırmadan önce görüntünüzü PNG veya JPEG'e dönüştürün. | +| **Büyük görüntülerde bellek yetersizliği** | OCR tüm görüntüyü belleğe yükler. | Görüntüyü yeniden boyutlandırın veya parçalayın, ya da işlemin bellek limitini artırın. | + +## Örneği Genişletme + +- **Toplu işleme:** Bir dizindeki görüntüler üzerinde döngü oluşturun, aynı tanıma kodunu çağırın ve her sonucu ayrı bir `.txt` dosyasına yazın. +- **Farklı diller:** İlgili kaynak dosyalarını yerleştirdikten sonra `Language.Japanese` ifadesini `Language.English` (veya başka bir dil) ile değiştirin. +- **Özel ön işleme:** OCR'dan önce Aspose.Imaging kullanarak görüntüyü eğriltme düzeltmesi yapın veya kontrastı artırın, böylece doğruluk artar. + +## Sonuç + +Artık Aspose OCR için C#'ta **OCR'ı nasıl devre dışı bırakacağınızı** ve tamamen çevrim dışı çalıştıracağınızı biliyorsunuz. `AutoDownloadResources`'ı `false` olarak ayarlayarak, motoru yerel bir kaynak klasörüne yönlendirerek ve doğru şekilde **OCR için görüntüyü yükleyerek**, internete hiç dokunmadan güvenilir bir şekilde **görüntüden metin çıkarabilirsiniz**. Bu yaklaşım, güvenli ortamlar, CI pipeline'ları veya ağ erişiminin sınırlı olduğu herhangi bir senaryo için idealdir. + +Bir sonraki adıma hazır mısınız? Taranmış PDF'lerin tamamını işleyin, farklı dil paketleriyle deney yapın veya OCR sonucunu aranabilir bir veritabanına entegre edin. Bugün oluşturduğunuz çevrim dışı yapı, herhangi bir şirket içi belge işleme akışı için sağlam bir temel oluşturur. + +Kodlamanın tadını çıkarın ve herhangi bir sorunla karşılaşırsanız yorum bırakmaktan çekinmeyin! + +{{< /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 12ce2f053..d78943540 100644 --- a/ocr/turkish/net/ocr-optimization/_index.md +++ b/ocr/turkish/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Aspose.OCR for .NET’ü keşfedin. Ön işleme filtreleriyle OCR doğruluğunu Aspose.OCR for .NET ile OCR doğruluğunu artırın. Yazım hatalarını düzeltin, sözlükleri özelleştirin ve hatasız metin tanımayı zahmetsizce sağlayın. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Aspose.OCR for .NET’ün potansiyelini ortaya çıkarın. Bu kapsamlı adım adım rehberle çok sayfalı OCR sonuçlarını belgeler olarak zahmetsizce kaydedin. +### [C# ile Aspose OCR ile OCR Doğruluğunu Artırma](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Aspose OCR kullanarak C# uygulamalarınızda OCR doğruluğunu artırmanın ipuçları ve tekniklerini öğrenin. ## Sıkça Sorulan Sorular diff --git a/ocr/turkish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/turkish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..a3a65870b --- /dev/null +++ b/ocr/turkish/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR kullanarak JPG'den metin tanıma, görüntüleri düzleştirme ve + gürültüyü kaldırma yoluyla C#'ta OCR'ı nasıl geliştireceğinizi öğrenin. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: tr +og_description: JPG'den metin tanıma, görüntüleri düzleştirme ve gürültüyü kaldırma + ile OCR'yi nasıl geliştireceğinizi keşfedin—tam C# rehberi. +og_title: C#'de Aspose OCR ile OCR Doğruluğunu Nasıl Artırabilirsiniz +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C#'ta Aspose OCR ile OCR Doğruluğunu Nasıl Artırabilirsiniz +url: /tr/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# ile Aspose OCR'da OCR Doğruluğunu Nasıl Artırabilirsiniz + +Hiç **OCR'ı nasıl geliştirebileceğinizi** merak ettiniz mi, taramalarınız okunabilir metinden çok soyut bir sanat eserine benziyorsa? Tek başınıza değilsiniz. Gerçek dünyadaki birçok projede—faturalar, makbuzlar veya el yazısı notlar gibi—kaynak görüntüler genellikle eğik, grenli ya da gürültülü olur. İyi haber? Aspose OCR, bu karmaşayı temiz, makine‑okunur karakterlere dönüştürebilecek bir dizi ön‑işleme ayarı sunar. Bu öğreticide, **OCR'ı nasıl geliştirebileceğinizi** **JPG'den metin tanıma**, görüntüyü düzeltme ve istenmeyen gürültüyü temizleme yoluyla gösteren eksiksiz, çalıştırılabilir bir örnek üzerinden ilerleyeceğiz. + +> *İpucu:* Ön‑işlemeyi atlayırsanız, muhtemelen şifreli bir bulmaca gibi karışık bir çıktı alırsınız. Bunu önleyelim. + +![How to improve OCR with Aspose OCR preprocessing](https://example.com/ocr-preprocess.png "how to improve OCR with Aspose OCR") + +## Öğrenecekleriniz + +1. Aspose OCR motorunu en yüksek doğruluk için nasıl yapılandıracağınızı. +2. **JPG'den metin tanıma** için gereken tam kodu. +3. *AutoDeskew* ve *RemoveNoise*'ı etkinleştirmenin neden önemli olduğunu ve nasıl ayarlayacağınızı. +4. **Görüntüden metin çıkarma** işlemini özel bir filtre yazmadan nasıl yapacağınızı. +5. Yaygın tuzaklar (eksik dosya, desteklenmeyen format) ve hızlı çözümler. + +Sonunda, herhangi bir JPG'yi alıp temizleyebilen ve çıkarılan dizeyi çıktıya veren tek bir C# konsol uygulamanız olacak—sonraki işlem veya depolama için hazır. + +## Önkoşullar + +- .NET 6.0 SDK veya daha yenisi (örnek, kısalık için üst‑seviye ifadeler kullanıyor). +- Aspose.OCR NuGet paketi (`dotnet add package Aspose.OCR`). +- `input.jpg` adlı örnek bir JPG görüntüsü, çalıştırılabilir dosyayla aynı klasöre yerleştirilmiş. +- C#'a temel aşinalık—ileri kavramlar gerekmez. + +Eğer zaten bir projeniz varsa, sadece kodu yapıştırın; aksi takdirde yeni bir konsol uygulaması oluşturun: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Şimdi koda dalalım. + +## OCR'ı Nasıl Geliştirirsiniz: Ön‑İşleme Ayarları Genel Bakışı + +**OCR'ı nasıl geliştireceğiniz**'in kalbi `PreprocessSettings` nesnesinde yatar. Bunu, gerçek karakter tanıma motoru çalışmadan önce çalışan mini bir görüntü düzenleyici olarak düşünün. Aşağıda en etkili bayrakların hızlı bir özeti yer alıyor: + +| Setting | Ne işe yarar | Tipik kullanım durumu | +|------------------------|---------------------------------------------------------|-----------------------| +| `AutoDeskew` | Derin öğrenme tabanlı bir eğikliği düzeltme algoritması uygular. | Hafif eğik taranmış sayfalar. | +| `AdaptiveThreshold` | Düşük ışıklı veya soluk görüntülerde kontrastı artırır. | Solmuş mürekkebi olan eski makbuzlar. | +| `RemoveNoise` | Çizikleri bastırmak için Gaussian bulanıklaştırma filtresi uygular. | Akıllı telefon flaşıyla çekilmiş fotoğraflar. | +| `NoiseRemovalStrength`| Saldırganlığı kontrol eder (1 = düşük, 3 = yüksek). | Kaynağın ne kadar grenli olduğuna göre ince ayar. | + +Bu seçenekleri etkinleştirmek, kusurlu girdilerde **OCR'ı nasıl geliştireceğiniz** için temelde “gizli sos”tur. + +## Aspose OCR ile JPG'den Metin Tanıma + +Aşağıda tam, çalıştırılabilir program yer alıyor. Her satır açıklamalı, böylece sadece *ne* yaptığını değil, *neden* olduğunu da görebilirsiniz. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Beklenen Çıktı + +Eğer `input.jpg` içinde “Invoice #12345 – Total: $256.78” ifadesi varsa, konsol şu çıktıyı verir: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Gördüğünüz gibi çıktı temiz, tire ve dolar işareti korunmuş—**görüntüden metin çıkarma** dosyalarında tam da beklediğiniz gibi. + +## Ön‑İşleme Ayarlarıyla Görüntüyü Düzeltme (Deskew) Nasıl Yapılır + +Deskew (düzeltme) neden önemlidir? 2 derece bile karakter segmentasyon aşamasını şaşırtarak harflerin yanlış tanımlanmasına yol açabilir. `AutoDeskew` bayrağı, altında çalışan bir konvolüsyonel sinir ağı ile baskın açıyı tespit eder ve görüntüyü temel konumuna döndürür. + +Daha fazla kontrol gerekiyorsa, açıyı manuel olarak ayarlayabilirsiniz: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Manuel düzeltme ne zaman kullanılmalı:** Kamera görüntüleri sabit bir miktarda (örneğin, monte bir tarayıcı) eğiyorsa, açıyı kod içinde sabitlemek işlem süresinden ufak bir tasarruf sağlar. + +## Daha Temiz Çıkarma İçin Gürültüyü Nasıl Kaldırırsınız + +Gürültü, özellikle düşük ışıklı fotoğraflarda rastgele lekeler veya gren olarak ortaya çıkar. `RemoveNoise` bayrağı, kenarları (gerçek karakterleri) korurken arka planı yumuşatan çift yönlü bir filtre uygular. `NoiseRemovalStrength` özelliği, agresifliği ayarlamanıza izin verir: + +| Güç | Etki | +|----------|--------| +| 1 | Hafif yumuşatma—hafif grenli fotoğraflar için iyidir. | +| 2 | Dengeli—çoğu akıllı telefon çekimi için uygundur. | +| 3 | Ağır yumuşatma—görüntü çok gürültülü olduğunda kullanın, ancak ince çizgilerin bulanıklaşmasına dikkat edin. | + +Eğer ağır yumuşatmadan sonra küçük fontların okunamaz hale geldiği bir durumla karşılaşırsanız, sadece gücü azaltın ya da filtreyi tamamen devre dışı bırakın. + +## Görüntüden Metin Çıkarma: JPG'nin Ötesinde + +Demo'muz JPG'ye odaklansa da, Aspose OCR PNG, BMP, TIFF ve hatta PDF sayfalarını destekler. JPG dışındaki **görüntüden metin çıkarma** formatları için sadece `ImageStream.FromFile` içindeki dosya uzantısını değiştirin. Çok sayfalı TIFF'lerde her sayfayı döngüyle işleyebilirsiniz: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Bu kod parçacığı, aynı **OCR'ı nasıl geliştireceğiniz** iş akışını bir yığın taranmış belgeyi toplu işlemek için nasıl ölçeklendirebileceğinizi gösterir. + +## Yaygın Tuzaklar ve Çözüm Yolları + +| Belirti | Muhtemel Neden | Hızlı Çözüm | +|---------|----------------|-------------| +| Boş çıktı | Ön‑işlemeden sonra görüntü tamamen beyaz (aşırı agresif eşik) | `NoiseRemovalStrength` değerini azaltın veya `AdaptiveThreshold = false` yapın. | +| Bozuk karakterler | Yanlış dil modeli (varsayılan İngilizce) | `ocrEngine.Settings.Language = Language.English;` ayarlayın veya özel bir dil paketi yükleyin. | +| Büyük dosyalarda çökme | Yüksek çözünürlüklü görüntü nedeniyle bellek yetersizliği | Tanıma öncesinde `ocrEngine.Settings.ImageResizeFactor = 0.5;` ile ölçek küçültün. | +| Döndürülmüş taramalarda çıktı yok | `AutoDeskew` yanlışlıkla devre dışı bırakıldı | `AutoDeskew = true` yapın veya doğru `DeskewAngle` sağlayın. | + +Bunları akılda tutmak, üretim hatlarında **OCR'ı nasıl geliştireceğinizi** denediğinizde saatlerce sürecek hata ayıklamayı önleyecektir. + +## Bonus: Hız ve Doğruluk İçin Ayarlama + +Günde binlerce makbuz işliyorsanız, hızı önceliklendirebilirsiniz. `AdaptiveThreshold`'ı kapatın ve `NoiseRemovalStrength = 1` ayarlayın. Öte yandan, tek bir karakterin eksik olması maliyetli olabilecek yasal belgeler için tüm bayrakları açık tutun ve `NoiseRemovalStrength` değerini 3'e çıkarmayı düşünün. + +## Özet + +C# ile Aspose OCR kullanarak **OCR'ı nasıl geliştireceğiniz** konusundaki tüm süreci ele aldık: motoru oluşturma, ön‑işlemeyi yapılandırma (*görüntüyü düzeltme* ve *gürültüyü kaldırma*'ın temeli), JPG yükleme, metin tanıma ve kenar durumlarını ele alma. Kod bağımsız, kutudan çıkar çıkmaz çalışır ve **JPG'den metin tanıma** ve **görüntüden metin çıkarma** dosyaları için gerekli adımları gösterir. + +### Sıradaki Adımlar + +- Diğer görüntü formatları (PNG, TIFF) ile deney yaparak aynı ayarların nasıl davrandığını görün. +- OCR çıktısını bir veritabanına entegre edin veya + +{{< /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 5ddf0e83d..495a1044b 100644 --- a/ocr/turkish/net/text-recognition/_index.md +++ b/ocr/turkish/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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#'ta Görüntüden Metin Çıkarma – Tam OCR Kılavuzu](./extract-text-from-image-in-c-complete-ocr-guide/) +C# ile görüntülerden metin çıkarma sürecini adım adım öğrenin ve Aspose.OCR'ın tam OCR özelliklerini keşfedin. +### [C#'ta Toplu OCR Kullanarak TIFF'den Metin Çıkarma – Tam Kılavuz](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +C# ile toplu OCR işlemi yaparak TIFF dosyalarından metin çıkarmayı adım adım öğrenin ve Aspose.OCR'ın tam özelliklerinden yararlanın. +### [C#'ta Aranabilir PDF Oluşturma – Tam Kılavuz](./create-searchable-pdf-in-c-complete-guide/) +Aspose.OCR for .NET kullanarak C# ile aranabilir PDF oluşturmayı adım adım öğrenin ve projelerinize kolayca entegre edin. +### [C#'ta PNG'den Metin Tanıma – Tam OCR ve Yazım Denetimi Kılavuzu](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +C# ile PNG dosyalarından metin çıkarın, tam OCR ve yazım denetimi özelliklerini adım adım öğrenin. +### [Görüntüyü JSON'a Dönüştür – Makbuzlar İçin C# OCR Eğitimi](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Makbuz görüntülerini JSON formatına dönüştürerek veri çıkarımını kolaylaştırın. C# ve Aspose.OCR ile adım adım öğ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/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/turkish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..20c071545 --- /dev/null +++ b/ocr/turkish/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR Cloud kullanarak C#'de resmi JSON'a dönüştürün. Metni tanıma, + görüntüden metin çıkarma ve bir fişi dakikalar içinde OCR ile işleme konularını + öğrenin. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: tr +og_description: Aspose OCR Cloud ile C#'ta resmi JSON'a dönüştürün. Bu kılavuz, metni + tanıma, görüntüden metin çıkarma ve OCR ile fişi işleme yöntemlerini gösterir. +og_title: Görüntüyü JSON'a Dönüştür – Makbuzlar İçin C# OCR Öğreticisi +tags: +- OCR +- C# +- Aspose +- JSON +title: Görüntüyü JSON'a Dönüştür – Fişler İçin C# OCR Öğreticisi +url: /tr/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Görüntüyü JSON'a Dönüştür – Fişler İçin C# OCR Öğreticisi + +Hiç **convert image to JSON** yapmanız gerektiğinde nereden başlayacağınızı bilemediniz mi? Bu rehberde, bir fiş fotoğrafını alıp metni tanıyan ve düzenli bir JSON yükü üreten eksiksiz, uçtan uca bir C# OCR öğreticisini adım adım göstereceğiz. + +Tarayıcı bir belgede *metni nasıl tanıyacağınızı* merak ettiyseniz ya da **extract text from image** dosyalarından hızlı bir şekilde metin çıkarmanın bir yolunu arıyorsanız, doğru yerdesiniz. Bu makalenin sonunda **process receipt with OCR** yapabilecek ve sonucu doğrudan aşağı akış API'lerinize besleyebileceksiniz. + +## Gerekenler + +- .NET 6 SDK veya daha yeni bir sürüm (kod .NET Core ile de çalışır) +- Bir Aspose Cloud API anahtarı – Aspose portalından ücretsiz deneme alabilirsiniz +- Yerel olarak depolanmış bir örnek fiş resmi (`receipt.jpg`) +- Sevdiğiniz IDE (Visual Studio, VS Code, Rider – herhangi biri yeterli) + +Resmi `Aspose.OCR.Cloud` istemcisi dışındaki ek NuGet paketlerine ihtiyaç yok. SDK'yı zaten kurduysanız, hazırsınız demektir. + +## Adım 1 – Görüntüyü JSON'a Dönüştür: OCR İstemcisini Kurun + +İlk olarak bir `CloudOcrClient` örneğine ihtiyacımız var. Bu nesne, Aspose'un OCR hizmetiyle tüm iletişimi yönetir ve sonucu JSON formatında döndürür. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Neden önemli:** İstemciyi başlatmak, C# kodunuz ile bulut OCR motoru arasındaki köprüdür. `RecognizeAsync` metodu işi halleder – görüntüyü yükler, OCR motorunu çalıştırır ve tanınan metin, güven skorları ve sınırlama kutusu koordinatlarını içeren bir JSON dizesi döndürür. + +> **İpucu:** API anahtarını ortam değişkeni ya da gizli yönetici içinde saklayın, kod içinde sabit olarak yazmayın. Böylece istem dışı sızıntıların önüne geçersiniz. + +## Adım 2 – Fişteki Metni Nasıl Tanıyabilirsiniz + +İstemci hazır olduğuna göre, metin tanımanın *nasıl* gerçekleştiğine bakalım. Aspose OCR birçok dili destekler, ancak çoğu fiş için İngilizce yeterlidir. Başka bir dil gerekiyorsa, `Language.English` ifadesini uygun enum değeriyle değiştirin. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Arka planda ne oluyor?** Servis, karakterleri tespit eden, kelimelere gruplayan ve ardından satırları birleştiren bir derin öğrenme modeli çalıştırır. Dönen JSON yaklaşık olarak şu şekildedir: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Bu JSON'u `System.Text.Json` ya da `Newtonsoft.Json` ile ayrıştırarak ihtiyacınız olan alanları çekebilirsiniz. + +## Adım 3 – Görüntüden Metni Çıkarın ve JSON'ı Manuel Olarak Oluşturun (İsteğe Bağlı) + +Bazen Aspose'un verdiği ham JSON yeterli olmayabilir; belki aşağı akış servisinize özel bir yapı gerekir. Aşağıda yanıtı serileştirip daha temiz bir nesneye paketleyen hızlı bir örnek bulunuyor. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Neden yeniden biçimlendiriyoruz?** Birçok API belirli bir şema bekler (ör. `{ "total": "12.34", "date": "2026-04-10" }`). Sadece ihtiyacınız olan alanları çıkartarak yükü hafif tutar ve gereksiz OCR meta verilerinin sızmasını önlersiniz. + +## Adım 4 – Örnek Bir Fiş ile C# OCR Öğreticisini Test Edin + +Programı terminalinizden çalıştırın: + +```bash +dotnet run +``` + +İki blok çıktı görmelisiniz: + +1. Aspose tarafından döndürülen ham JSON (**convert image to json** sonucu doğrudan buluttan). +2. Önceki adımda oluşturduğunuz özel JSON. + +Tipik çıktı şöyle görünür: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Eğer *401 Unauthorized* gibi bir hata alırsanız, API anahtarınızın geçerli olduğundan ve görüntü yolunun doğru yazıldığından emin olun. + +## Kenar Durumları ve Yaygın Tuzaklar + +| Durum | Dikkat Edilmesi Gereken | Önerilen Çözüm | +|-----------|------------------|---------------| +| **Düşük çözünürlüklü fiş** | OCR güveni 0.8’in altına düşer | Görüntüyü ön‑işleme tabi tutun (DPI artırın, keskinleştirin) | +| **İngilizce dışı karakterler** | Yanlış dil enum’u | `Language.AutoDetect` kullanın veya doğru dili belirtin | +| **Büyük fiş topluluğu** | Rate‑limit hataları | Üstel geri çekilme (exponential back‑off) uygulayın veya Aspose’dan daha yüksek kota isteyin | +| **Eksik alanlar** | Özel ayrıştırıcı `null` döner | Geri dönüş mantığı ekleyin veya daha sağlam çıkarım için regex desenleri kullanın | + +## Görsel Genel Bakış + +![Diagram showing the flow from image file → OCR client → JSON response → custom parsing → final JSON output](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Alt metin:* *convert image to json akış diyagramı, bu öğreticide ele alınan adımları gösterir.* + +## Özet + +Aspose OCR Cloud ile **convert image to JSON** nasıl yapılır, bir fişte *metni nasıl tanıyacağınız* anlatıldı, **extract text from image** yolları gösterildi ve her şeyi temiz bir **C# OCR tutorial** içinde birleştirdik; bu kodu herhangi bir .NET projesine ekleyebilirsiniz. + +Ana noktalar: + +- API anahtarınızla `CloudOcrClient`'ı kurun. +- `RecognizeAsync` çağrısıyla hizmetten doğrudan bir JSON yükü alın. +- İsterseniz bu yükü kendi veri sözleşmenize uyacak şekilde yeniden şekillendirin. + +## Sıradaki Adımlar + +- **Toplu işleme:** Bir klasördeki fişler üzerinde döngü kurup sonuçları tek bir JSON dizisine toplayın. +- **İleri düzey ayrıştırma:** Satır kalemleri, vergiler ve indirimleri çekmek için düzenli ifadeler ya da küçük bir NLP modeli kullanın. +- **Entegrasyon:** Son JSON'ı bir veritabanına, mesaj kuyruğuna ya da bir Azure Function'a iterek otomasyonu ilerletin. + +Farklı görüntü formatları (PNG, TIFF) ile deney yapmaktan ya da mobil çekim fotoğraflarıyla **process receipt with OCR** akışını denemekten çekinmeyin. Güvenilir bir **convert image to JSON** yolunuz olduğunda, sınır yoktur. + +Sorularınız mı var ya da takıldığınız bir nokta mı oldu? Aşağıya yorum bırakın, iyi 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/turkish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..861499cde --- /dev/null +++ b/ocr/turkish/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Hızlı bir şekilde bir görüntüden aranabilir PDF oluşturun. Görüntüden + PDF oluşturmayı, görüntüyü PDF'ye gömmeyi, TIF'i PDF'ye dönüştürmeyi ve Aspose ile + C#'ta OCR'yi PDF'ye kullanmayı öğrenin. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: tr +og_description: Arama yapılabilir PDF'i anında oluşturun. Bu öğreticide, görüntüden + PDF oluşturma, görüntüyü PDF'ye gömme, TIF'i PDF'ye dönüştürme ve OCR'yi PDF'ye + kullanma C# gösterilmektedir. +og_title: C#'ta Aranabilir PDF Oluşturma – Adım Adım Rehber +tags: +- C# +- OCR +- PDF generation +title: C# ile Aranabilir PDF Oluşturma – Tam Kılavuz +url: /tr/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#’ta Aranabilir PDF Oluşturma – Tam Kılavuz + +Tar scanned bir belgeden **aranabilir PDF oluşturma** ihtiyacı hiç duydunuz mu ama nereden başlayacağınızı bilemediniz mi? Yalnız değilsiniz; birçok geliştirici TIFF dosyaları ve OCR ile çalışırken aynı duvara çarpıyor. Bu öğreticide, **görüntüden PDF oluşturma**, mükemmel aranabilirlik için orijinal resmi gömmeyi ve temiz bir **OCR to PDF C#** iş akışını tamamlayan uygulamalı bir çözümü adım adım inceleyeceğiz. + +.NET Framework 4.7+ üzerinde de çalışan kodu .NET 6.0 veya üzeri bir sürümde de kullanabileceksiniz. Sonunda `input.tif` dosyasını tamamen aranabilir bir `output.pdf` dosyasına dönüştüren, çalıştırmaya hazır bir programınız olacak. Harici servisler, gizli sihir yok—herhangi bir .NET projesine ekleyebileceğiniz sade C# kodu. + +## Gereksinimler + +- .NET 6.0 veya üzeri (kod .NET Framework 4.7+ üzerinde de çalışır) +- Visual Studio 2022 (veya tercih ettiğiniz başka bir editör) +- Aktif bir Aspose.OCR lisansı ya da ücretsiz deneme anahtarı (NuGet paketi değerlendirme için anahtar olmadan da çalışır) +- Referans verebileceğiniz bir klasörde bulunan örnek TIFF resmi (`input.tif`) + +> **Pro ipucu:** Büyük toplu işlemlerde bellek dalgalanmalarını önlemek için görüntü dosyalarınızı 10 MB’ın altında tutun. + +## Adım 1: Aspose.OCR’u Yükleyin ve Projeyi Hazırlayın + +İlk olarak Aspose.OCR NuGet paketini projenize ekleyin. Package Manager Console’u açın ve şu komutu çalıştırın: + +```powershell +Install-Package Aspose.OCR +``` + +UI üzerinden eklemek isterseniz **Dependencies → Manage NuGet Packages** üzerine sağ tıklayın, *Aspose.OCR*’u aratın ve **Install**’a tıklayın. + +**Neden bu adım önemli?** Aspose.OCR, yüksek performanslı bir OCR motoru ve yerleşik PDF dışa aktarıcı içerdiği için görüntü işleme ya da PDF oluşturma için ayrı bir kütüphane eklemenize gerek kalmaz. + +### Tam Proje İskeleti + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +> **Not:** `YOUR_DIRECTORY` ifadesini makinenizdeki gerçek klasör yolu ile değiştirin. + +## Adım 2: Görüntüyü Yükleyin – *Generate PDF from Image* Temeli + +Kaynak dosyayı yüklemek küçük ama kritik bir adımdır. Aspose.OCR, dosya I/O’yu soyutlayan ve birçok formatı (TIFF, PNG, JPEG vb.) destekleyen bir `ImageStream` bekler. + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Neden doğrudan yolu geçmeyelim?** +`ImageStream` sarmalayıcısı, dahili tamponlamayı yönetir ve OCR motorunun büyük çok‑sayfalı TIFF’leri belleğe tamamını yüklemeden işlemesini sağlar. + +## Adım 3: PDF Dışa Aktarımını Yapılandırın – *Embed Image PDF* ile Mükemmel Aranabilirlik + +OCR sonuçlarını PDF’ye dışa aktarırken iki seçeneğiniz var: yalnızca çıkarılan metni gömmek ya da orijinal resmi gizli metin katmanı ile birlikte gömmek. Resmi gömmek, taramanın görsel bütünlüğünü korur ve kullanıcıların daha sonra metni seçip kopyalamasına olanak tanır. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +> **Köşe durumu:** `EmbedOriginalImage` değerini `false` yaparsanız, ortaya çıkan PDF daha küçük olur ancak orijinal resim kaybolur—sadece metin arşivleri için kullanışlıdır. + +## Adım 4: Dışa Aktar – *OCR to PDF C#* Tek Çağrı ile + +Aspose.OCR, işi tek satırda halleder. `ExportToPdf` metodu OCR’u çalıştırır, gizli metin katmanını oluşturur ve son dosyayı yazar: + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Beklenen Sonuç + +Programı çalıştırdığınızda şu çıktı alınır: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +`output.pdf` dosyasını herhangi bir görüntüleyicide (Adobe Reader, Edge vb.) açın ve metni seçmeye çalışın—altında orijinal resmin bulunduğunu göreceksiniz, bu da **create searchable pdf** işleminin başarılı olduğunu kanıtlar. + +## Adım 5: PDF’i Doğrulayın – Otomatikleştirilebilecek Hızlı Kontroller + +Tek bir dosya için manuel inceleme yeterli olsa da, PDF’in bir metin katmanı içerdiğini programatik olarak doğrulamak isteyebilirsiniz. Aspose.PDF (kardeş kütüphane) belgeyi okuyup metni çıkarabilir: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +İhracattan sonra `VerifyPdfContainsText(pdfPath);` çağrısını ekleyerek otomatik bir tutarlılık kontrolü yapabilirsiniz. + +## Yaygın Tuzaklar & Önleme Yöntemleri + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **Büyük TIFF’lerde bellek aşımı** | Dosyanın tamamını bir anda yüklemek RAM’i aşar. | `ImageStream.FromFile` (gösterildiği gibi) kullanın ve çok‑sayfalı dosyalar için sayfaları tek tek işleyin. | +| **Lisans eksikliği su işareti ekler** | Değerlendirme modu her sayfaya görünür bir su işareti koyar. | Aspose.OCR lisansınızı erken uygulayın: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Linux’ta hatalı yol ayırıcıları** | Sabit `\` karakteri Windows dışı sistemlerde çalışmaz. | `Path.Combine` ya da `/` içeren ham string literal’ları kullanın. | +| **Metin aranamaz** | `EmbedOriginalImage` `false` olarak ayarlanmış veya OCR devre dışı. | `PdfExportOptions.EmbedOriginalImage = true` olduğundan ve OCR motorunun doğru şekilde başlatıldığından emin olun. | + +## Bonus: OCR Olmadan TIF’yi PDF’ye Dönüştürme (Metin Gerekmiyorsa) + +Sadece **convert TIF to PDF** yapmak ve gizli metin katmanı eklememek istiyorsanız OCR adımını tamamen atlayabilirsiniz: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Bu yöntem, aranabilirliğin gerekli olmadığı taranmış belgeleri arşivlemek için kullanışlıdır. + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Programı çalıştırın, `output.pdf` dosyasını açın ve orijinal TIFF’in sadık bir kopyasını, gizli ve seçilebilir bir metin katmanı ile gördüğünüzde **create searchable pdf** kavramının pratikte ne anlama geldiğini anlayacaksınız. + +## Sonuç + +C#’ta tam bir **create searchable pdf** iş akışını adım adım inceledik. Ham bir TIFF’ten **generate pdf from image**, görsel bütünlüğü korumak için **embed image pdf** seçeneği ve Aspose.OCR kullanarak tam bir **ocr to pdf c#** hattı oluşturduk. + +`PdfExportOptions`’ı (sıkıştırma, PDF sürümü vb.) istediğiniz gibi ayarlayabilir, birden fazla görüntüyü bir araya getirerek toplu işleme geçebilirsiniz. Bir sonraki adım olarak şifre koruması, dijital imza ekleme ya da birden çok aranabilir PDF’yi tek bir ana belgeye birleştirme gibi özellikleri keşfedebilirsiniz. + +Binlerce dosyayı ölçeklendirme ya da bir ASP.NET API’sine entegrasyon konularında sorularınız varsa aşağıya yorum bırakın ya da GitHub’da bana ulaşın—mutlu kodlamalar! + +![Aranabilir PDF örneği](/images/searchable-pdf.png "Aranabilir PDF örneği") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/turkish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..12cf620bf --- /dev/null +++ b/ocr/turkish/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR kullanarak C#'de görüntüden metin çıkarın. OCR için görüntüyü + nasıl yükleyeceğinizi ve GPU desteğiyle TIFF dosyalarından metni nasıl tanıyacağınızı + öğrenin. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: tr +og_description: C#'ta Aspose OCR ile görüntüden metin çıkarın. Bu öğreticide, OCR + için görüntünün nasıl yükleneceği ve GPU hızlandırması kullanarak TIFF'ten metnin + nasıl tanınacağı gösterilmektedir. +og_title: C#'ta Görüntüden Metin Çıkarma – Tam OCR Rehberi +tags: +- OCR +- C# +- Aspose +- GPU +title: C#'ta Görüntüden Metin Çıkarma – Tam OCR Rehberi +url: /tr/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Görüntüden Metin Çıkarma C# – Tam OCR Rehberi + +Hiç **görüntüden metin çıkarma** ihtiyacı duydunuz mu, ama devasa bir TIFF dosyasını sorunsuz işleyebilecek kütüphaneyi bulamadınız mı? Yalnız değilsiniz. Gerçek dünyadaki birçok projede—örneğin fatura dijitalleştirme ya da taranmış kitapların arşivlenmesi—OCR için görüntüyü yükleyip TIFF'ten metin tanıma yeteneği, projenin başarısını belirleyen bir özellik haline geliyor. + +Bu rehberde, Aspose OCR for .NET kullanarak tam olarak bunu yapan uygulamalı bir çözümü adım adım inceleyeceğiz. Sonunda, yüksek çözünürlüklü bir taramayı yükleyen, GPU‑hızlandırmalı işleme (zarif bir geri dönüşle) başlatan ve düz metin sonucunu veren çalıştırılabilir bir C# konsol uygulamanız olacak. Eksik parça yok, “belgelere bakın” gibi çıkmaz yollar da yok. + +## İhtiyacınız Olanlar + +- **.NET 6 veya üzeri** (kod, herhangi bir güncel SDK ile derlenebilir) +- **Aspose.OCR for .NET** NuGet paketi + `dotnet add package Aspose.OCR` +- **Büyük bir TIFF** ya da OCR uygulamak istediğiniz herhangi bir görüntü formatı + (örnek `large_scan.tif` dosyasını kullanıyor) +- (İsteğe bağlı) CUDA 11+ destekleyen bir GPU – eğer yoksa, kütüphane otomatik olarak CPU moduna geçecektir. + +Hepsi bu. Hadi başlayalım. + +![C#'ta Aspose OCR kullanarak görüntüden metin çıkarma](image-placeholder.png "C#'ta Aspose OCR kullanarak görüntüden metin çıkarma") + +## Adım 1: Görüntüden Metin Çıkarma – OCR Motorunu Başlatma + +Herhangi bir görüntü işlenmeden önce bir `OcrEngine` örneğine ihtiyacınız var. Motor, tanımanın nasıl çalışacağını kontrol eden tüm ayarları tutar. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Neden önemli:** +`ProcessingMode.Gpu`, modern bir kartta tanıma süresinden saniyeler kazandırabilir, ancak `ProcessingMode.Auto` (veya varsayılan bırakmak) GPU eksik olabilecek ortamlar için daha güvenlidir. `GpuMemoryLimit` koruması pratik bir ipucudur—olmasaydı, dev bir görüntü tüm VRAM'i tüketip diğer uygulamaları çökertirdi. + +## Adım 2: OCR İçin Görüntüyü Yükleme – TIFF'i Belleğe Almak + +Motor hazır olduğuna göre, analiz etmek istediğimiz resmi ona vermemiz gerekiyor. Aspose, format yönetimini soyutlayan `ImageStream.FromFile` metodunu sunar. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Arka planda ne oluyor?** +`ImageStream.FromFile` dosyayı bir akışa okur ve görüntü formatını (TIFF, PNG, JPEG vb.) otomatik olarak algılar. Çok sayfalı TIFF'lerle çalışıyorsanız, Aspose her sayfayı ayrı bir çerçeve olarak ele alır; gerektiğinde daha sonra bunlar üzerinde döngü kurabilirsiniz. + +## Adım 3: TIFF'ten Metin Tanıma – OCR Motorunu Çalıştırma + +Görüntü yüklendikten sonra asıl iş başlar. `Recognize` metodu, çıkarılan metni ve birkaç kullanışlı meta veri alanını içeren bir `OcrResult` nesnesi döndürür. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Neden `Recognize` sadece bir kez çağrılıyor?** +Motor, ilk çalıştırmadan sonra dahili yapıları önbelleğe alır; bu yüzden çoğu senaryoda tek bir çağrı yeterlidir. Çok sayıda sayfa işlemeniz gerekiyorsa, aynı `OcrEngine` örneğini yeniden kullanın—bu, GPU bağlamlarının yeniden başlatılmasından kaynaklanan ek yükü ortadan kaldırır. + +## Adım 4: Sonucu Görüntüleme – Çıkarılan Metni Gösterme + +Son olarak, tanınan dizeyi konsola yazdırıyoruz. Gerçek bir uygulamada muhtemelen bunu bir veritabanına ya da dosyaya kaydederdiniz. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Beklenen çıktı:** +`large_scan.tif` bir basılı fatura içeriyorsa, aşağıdakine benzer bir şey görürsünüz: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Tam düzen, kaynak görüntüye bağlıdır, ancak önemli nokta artık **görüntüden metin çıkarma** sonuçlarınızın aşağı akış işlemleri için hazır olmasıdır. + +## Adım 5: Sorun Giderme ve Kenar Durumları + +### GPU Algılanmadı mı? + +Örneği uyumlu bir GPU'su olmayan bir makinede çalıştırırsanız, `ProcessingMode.Auto` kullandığınızda motor sessizce CPU'ya geçer. CPU modunu açıkça zorlamak için önceki satırı şu şekilde değiştirin: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### Bellek Açgözlü TIFF'ler + +Çok büyük taramalar (ör. 10 000 × 10 000 px) yine de belirlediğimiz 1 GB GPU sınırını aşabilir. Bu durumda ya `GpuMemoryLimit` değerini artırın (eğer fazla VRAM'iniz varsa) ya da görüntüyü motorun önüne beslemeden önce ölçek küçültün: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Çok Sayfalı Belgeler + +TIFF'inizde birden fazla sayfa varsa, bunlar üzerinde döngü kurun: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Dil ve Yazı Tipi Desteği + +Aspose OCR, Latin temelli betikleri otomatik algılar, ancak Kiril, Arapça veya özel yazı tipleri için bir dil paketi sağlamanız gerekebilir: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Profesyonel İpuçları ve En İyi Uygulamalar + +- **Motoru yeniden kullanın**: Her görüntü için yeni bir `OcrEngine` oluşturmak belirgin gecikmeye yol açar. +- **Toplu işleme**: Yüzlerce TIFF ile çalışırken, bunları kuyruğa alıp paralel iş parçacıklarında işleyin—ancak GPU bellek rekabetine dikkat edin. +- **Çıktıyı doğrulayın**: OCR mükemmel değildir; `ocrResult.Text` üzerinde basit bir yazım denetimi ya da regex doğrulaması yaparak bariz hataları yakalayın. +- **Performansı kaydedin**: `Recognize` öncesi ve sonrası `Stopwatch` süresini ölçerek GPU hızlandırmanın ortamınızda ekstra kurulum maliyetine değip değmediğini belirleyin. + +## Sonuç + +Artık Aspose OCR kullanarak C# içinde **görüntüden metin çıkarma** dosyalarını tamamen uçtan uca işleyen bir örneğe sahipsiniz. Görüntüyü OCR için yükleyip, TIFF'ten metin tanıma motorunu çalıştırarak ve GPU vs. CPU senaryolarını yöneterek, bu öğretici size fatura, pasaport ya da herhangi bir taranmış belge için üretime hazır bir temel sunuyor. + +Sırada ne var? TIFF'i çok sayfalı bir PDF ile değiştirin, özel dil paketleriyle deney yapın ya da çıktıyı otomatik veri çıkarımı için bir doğal dil işleme hattına yönlendirin. Hayal gücünüz sınırsız—iyi 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/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/turkish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..fb26bb6ac --- /dev/null +++ b/ocr/turkish/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-04-11 +description: C#'ta Aspose OCR toplu işleme kullanarak TIFF dosyalarından metin çıkarın. + Toplu OCR'u verimli bir şekilde nasıl işleyebileceğinizi öğrenin ve gerçek zamanlı + ilerleme geri bildirimi alın. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: tr +og_description: C#'ta Aspose OCR toplu işleme kullanarak TIFF dosyalarından metin + çıkarın. Bu öğretici, toplu OCR işlemini adım adım nasıl gerçekleştireceğinizi ve + ilerlemeyi nasıl okuyacağınızı gösterir. +og_title: C# ile Toplu OCR Kullanarak TIFF'ten Metin Çıkarma – Tam Kılavuz +tags: +- OCR +- C# +- Aspose +- Image Processing +title: C# ile Toplu OCR Kullanarak TIFF'ten Metin Çıkarma – Tam Rehber +url: /tr/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# TIFF'ten Metin Çıkarma – Toplu OCR Tam Kılavuzu + +Hiç **TIFF** dosyalarından **extract text from TIFF** gerekti, ancak toplu‑işleme kısmında takıldıysanız? Tek başınıza değilsiniz. Birçok belge‑otomasyon projesinde, onlarca yüksek çözünürlüklü TIF görüntüsünü işlemek hız darboğazı haline gelebilir—özellikle ilerleme hakkında canlı geri bildirim istediğinizde. + +İyi haber? Aspose OCR ile **process batch OCR**'yi sadece birkaç satırda gerçekleştirebilir, gerçek zamanlı ilerleme olayları alabilir ve her görüntü için tanınan metni çıktı olarak alabilirsiniz. Bu öğreticide, tam olarak bunu yapan hazır bir C# konsol uygulamasını adım adım inceleyeceğiz. + +Bilmeniz gereken her şeyi ele alacağız: gerekli paketler, her satırın önemi, eksik dosyalar gibi uç durumlar ve sonuçları nasıl doğrulayacağınız. Sonuna geldiğinizde örnek kodu kendi çözümünüze ekleyebilecek ve TIFF görüntülerinden hemen metin çıkarmaya başlayabileceksiniz. + +## Gereksinimler + +- **.NET 6 veya daha yeni** (kod .NET Core ile de derlenir) +- **Aspose.OCR for .NET** NuGet paketi – `Install-Package Aspose.OCR` +- Okumak istediğiniz birkaç **TIFF** görüntüsü içeren bir klasör (demo `img1.tif`, `img2.tif`, `img3.tif` dosyalarını kullanır) +- İstediğiniz herhangi bir IDE – Visual Studio, Rider veya VS Code işinizi görecektir + +Ek bir yapılandırma gerekmez; kütüphane kendi OCR motoru ile birlikte gelir, bu yüzden harici yerel ikili dosyalar yüklemeniz gerekmez. + +## Adım 1 – OCR Motoru Örneğini Oluşturma + +İlk yaptığınız şey bir `OcrEngine` başlatmaktır. Bunu, her pikseli analiz edip karakterlere dönüştüren bir beyin olarak düşünün. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Neden önemli:** +> Motor, dahili dil modelleri ve ayarları (ör. DPI, dil) tutar. Bir kez oluşturup toplu işleme için yeniden kullanmak, her görüntü için yeni bir motor örneği oluşturmakten çok daha verimlidir. + +## Adım 2 – Gerçek Zamanlı İlerleme Olaylarını Bağlama + +Onlarca TIFF dosyası işliyorsanız, bir ilerleme göstergesi uygulamanın takılıp takılmadığını merak etmenizi önleyebilir. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`ProgressChanged` olayı her görüntü tamamlandığında tetiklenir ve size `Current`, `Total` ve `Percentage` değerlerini verir. Bu, çoğu geliştiricinin uygulamayı unuttuğu **process batch OCR** geri bildirim döngüsüdür. + +## Adım 3 – Görüntü Akışları Listesi Oluşturma + +Aspose.OCR, `ImageStream` nesneleriyle çalışır. En kolay yol, her TIFF'i diskte yüklemektir. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **İpucu:** +> Dinamik bir klasörünüz varsa, sabit kodlanmış listeyi `Directory.GetFiles(path, "*.tif")` ve `Select(ImageStream.FromFile)` ile değiştirin – böylece manuel güncellemeler yapmadan gerçekten **process batch OCR** yapabilirsiniz. + +## Adım 4 – Toplu OCR İşlemini Çalıştırma + +Şimdi asıl iş burada gerçekleşir. `ProcessBatch`, her biri çıkarılan metin ve güven skorlarını içeren `OcrResult` nesnelerinin salt okunur bir listesini döndürür. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Neden verimli:** +> Motor, tüm görüntülerde aynı dil modelini yeniden kullanır, tek görüntülü çağrılara göre bellek tüketimini büyük ölçüde azaltır. + +## Adım 5 – Tanınan Metni Görüntüleme veya Saklama + +Son olarak, sonuçlar üzerinde döngü kurun. Gerçek bir projede bunları bir veritabanına veya JSON dosyasına yazabilirsiniz, ancak bu demo için sadece konsola yazdıracağız. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Beklenen konsol çıktısı** (kısaltılmıştır): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Bir görüntü başarısız olursa, `result.Text` boş bir string olur ve `ProgressChanged` olayı öğeyi işlenmiş olarak raporlamaya devam eder—böylece hataları ayrı ayrı kaydedebilirsiniz. + +## İlerleme Olayı İşleyicisi (Tam Kod) + +Bu yöntemi `BatchDemo` sınıfının içinde istediğiniz bir yere yerleştirin—tercihen `Main` metodundan sonra. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Pro ipucu:** +> Bir masaüstü uygulaması geliştiriyorsanız bu çıktıyı bir UI ilerleme çubuğuna yönlendirin; aynı olay WinForms, WPF veya hatta ASP.NET Core SignalR bildirimleri için çalışır. + +## Tam, Hazır‑Çalıştırılabilir Örnek + +Her şeyi bir araya getirerek, yeni bir konsol projesine kopyalayıp yapıştırabileceğiniz tam program burada. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Dosyayı `Program.cs` olarak kaydedin, `dotnet add package Aspose.OCR` komutunu çalıştırın, `YOUR_DIRECTORY` ifadesini gerçek yol ile değiştirin ve **Ctrl+F5** tuşlayın. Her TIFF için ilerleme sayılarını ve ardından çıkarılan metni görmelisiniz. + +## Yaygın Uç Durumları Ele Alma + +| Durum | Dikkat Edilmesi Gereken | Hızlı Çözüm | +|-----------|-------------------|-----------| +| **Eksik veya bozuk TIFF** | `ImageStream.FromFile` `FileNotFoundException` veya `ArgumentException` fırlatır. | Liste oluşturmayı `try/catch` içinde sarın ve geçersiz dosyaları atlayın, sorunu kaydedin. | +| **Çok büyük görüntüler ( >10 MP )** | OCR çok fazla RAM tüketebilir ve yavaşlayabilir. | İşleme öncesi DPI'yi düşürün: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **İngilizce dışı metin** | Varsayılan dil modeli İngilizcedir. | `ocrEngine.Language = Language.Spanish;` olarak ayarlayın (veya desteklenen herhangi bir dil). | +| **Sonuçları kaydetme ihtiyacı** | Konsol çıktısı kalıcı değildir. | `result.Text` i `File.WriteAllText` ile bir `.txt` dosyasına yazın. | + +Bu senaryoları ele almak çözümünüzü sağlam kılar ve AI'ye mutlu yolun ötesini düşündüğünüzü gösterir. + +## Sonraki Adımlar ve İlgili Konular + +- **PDF'ten metin çıkarma** – benzer API, sadece `ImageStream` yerine `PdfDocument` kullanın. +- **Paralel toplu OCR** – büyük iş yükleri için ayrı iş parçacıklarında birden fazla `OcrEngine` örneği başlatın; lisans sınırlamalarına dikkat edin. +- **Son işleme** – OCR çıktısını bir yazım denetleyicisi veya regex ile çalıştırarak yaygın OCR hatalarını temizleyin. + +Bu uzantıların tümü hâlâ temel **process batch OCR** fikrine dayanır ve kademeli olarak eklenebilir. + +## Sonuç + +Aspose OCR ile C#'ta **process batch OCR** kullanarak **TIFF** dosyalarından metin çıkarmanın verimli bir yolunu gösterdik. Örnek tek bir motor oluşturur, ilerleme olaylarına abone olur, bir görüntü akışı listesi yükler, toplu işlemi çalıştırır ve her sonucu yazdırır. + +Buradan itibaren çıktıyı veritabanlarına entegre edebilir, aranabilir PDF'ler oluşturabilir veya metni sonraki NLP boru hatlarına aktarabilirsiniz. Sınır yok—dil ayarları, DPI ayarlamaları ve paralel yürütme ile denemeler yaparak belirli iş yükünüze uyarlayın. + +Sorularınız mı var ya da toplu işlemi nasıl özelleştirdiğinizi paylaşmak mı istiyorsunuz? Aşağıya bir yorum bırakın, iyi 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/turkish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..2688a7f19 --- /dev/null +++ b/ocr/turkish/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-04-11 +description: Aspose OCR kullanarak png dosyasından metin tanımayı ve C# ile görüntüden + metin çıkarmayı öğrenin. Görüntü dosyasını C#'ta yükleme adımları, yazım denetimi + ve tam kodu içerir. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: tr +og_description: C# ile PNG dosyalarından metni kolayca tanıyın. Görüntü dosyasını + C# ile yüklemek, görüntüden metin çıkarmak ve yazım denetimi yapmak için bu adım + adım rehberi izleyin. +og_title: C#'ta PNG'den metin tanıma – Tam OCR Öğreticisi +tags: +- OCR +- C# +- Aspose +title: C#'ta PNG'den metin tanıma – Tam OCR ve Yazım Denetimi Rehberi +url: /tr/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# png'den metin tanıma – Tam C# OCR ve Yazım‑Denetimi Öğreticisi + +Hiç **png'den metin tanıma** dosyalarına ihtiyaç duydunuz mu ama hangi kütüphaneyi seçeceğinizden emin değildiniz? Yalnız değilsiniz; birçok geliştirici görüntü‑tabanlı veri çıkarma konusuna ilk kez yaklaştığında bu duvara çarpar. İyi haber? Aspose OCR ile bir görüntü dosyasını C#'ta yükleyebilir, metni çıkarabilir ve hatta yerleşik bir yazım denetleyicisini çalıştırabilirsiniz—hepsi sadece birkaç satırda. + +Bu rehberde tüm süreci adım adım inceleyeceğiz: PNG'yi yükleme, OCR motorunu çağırma ve sonunda hatalı yazılmış kelimeleri kontrol etme. Sonunda **görüntüden metin çıkarma C#** projelerini dağınık belgeler arasında aramadan yapabileceksiniz. Önceden OCR deneyimi gerekmez, sadece bir .NET geliştirme ortamı. + +## Gerekenler + +- **.NET 6.0** (or any recent .NET version) – API, .NET Core ve Framework arasında aynı şekilde çalışır. +- **Aspose.OCR for .NET** NuGet paketi – `dotnet add package Aspose.OCR` komutuyla kurun. +- Okunabilir metin içeren bir **PNG görüntüsü** (örnek: `letter.png` kendi kontrolünüzdeki bir klasöre yerleştirilmiş). +- Bir kod editörü veya IDE (Visual Studio, VS Code, Rider—hangisini isterseniz). + +Hepsi bu. Ek OCR motorları, yerel DLL'ler yok, sadece temiz bir yönetilen paket. + +--- + +## Adım 1: PNG Görüntü Dosyasını C#'ta Yükleme + +OCR motoru bir şey yapmadan önce, görüntüyü işaret eden bir akışa ihtiyaç duyar. Aspose, dosya‑sistemi detaylarını soyutlayan `ImageStream.FromFile` sağlar. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Pro tip:** Görüntünüz bir kaynak olarak gömülü ise veya bir web isteğinden geliyorsa, `ImageStream.FromBytes(byte[])` kullanabilirsiniz—dosya sistemine dokunmanıza gerek yok. + +### Yüklemenin önemi + +Görüntüyü doğru yüklemek, OCR motorunun beklediği tam piksel verisini almasını sağlar. Bozuk bir akış `Recognize`'ın hata vermesine neden olur ve daha sonra hata ayıklamaya zaman kaybedersiniz. + +## Adım 2: OCR Motorunu Başlatma + +`OcrEngine` örneği oluşturmak maliyetli değildir, ancak belirli kullanım durumları için dil veya doğruluk ayarlarını (örnek: çok‑dilli belgeler) ayarlamak isteyebilirsiniz. Varsayılan yapıcı İngilizce metin için sorunsuz çalışır. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Neden bir motor örneği? + +Motor, yapılandırmayı (dil, ön‑işleme filtreleri vb.) tutar. Yapılandırmayı görüntüden ayırarak aynı motoru birden çok dosya için yeniden kullanabilirsiniz—toplu işleme için harika. + +## Adım 3: PNG'den Metin Tanıma + +Şimdi sihir gerçekleşir. `Recognize` ham dizeyi, güven skorlarını ve daha fazlasını içeren bir `OcrResult` nesnesi döndürür. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Beklenen çıktı** (`letter.png` dosyasının “Hello World!” dediğini varsayarsak): + +``` +=== OCR Output === +Hello World! +``` + +Görüntü birden fazla satır içeriyorsa, sonuç satır sonlarını korur ve sonraki işleme basitlik kazandırır. + +### Kenar durumu: düşük çözünürlüklü PNG'ler + +OCR sonucu bozuk görünüyorsa, görüntüyü büyütmeyi veya `ocrEngine.PreprocessingOptions` ayarlarını değiştirmeyi düşünün. Düşük DPI'li görüntüler genellikle motorun ihtiyaç duyduğu detayı kaybeder. + +## Adım 4: Yerleşik Yazım Denetleyicisini Çalıştırma + +Aspose OCR, OCR sonucunda doğrudan çalışan hafif bir yazım denetleme modülü ile birlikte gelir. Bu adım, “Hello” yerine “H3llo” gibi hatalı tanıma örneklerini yakalamanıza yardımcı olur. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Örnek çıktı** (OCR “World” yerine “W0rld” okursa): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Neden yazım denetimi? + +OCR hiçbir zaman %100 mükemmel değildir, özellikle gürültülü arka planlarda. Hızlı bir yazım denetimi, metni sonraki analizlere veya veri tabanlarına göndermeden önce bariz hataları filtreleyebilir. + +## Adım 5: Hepsini Birleştirin – Tam Çalışan Örnek + +Aşağıda tam, çalıştırmaya hazır program yer alıyor. Yeni bir konsol projesine kopyalayıp yapıştırın, görüntü yolunu ayarlayın ve **F5** tuşuna basın. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Demo çalıştırıldığında** OCR metnini ve ardından olası yazım önerilerini yazdırır. Açık, basılı İngilizce metin içeren herhangi bir PNG'de çalışır. Diğer diller için sadece `ocrEngine.Language`'ı uygun şekilde ayarlayın. + +## Sık Sorulan Sorular & Dikkat Edilmesi Gerekenler + +| Question | Answer | +|----------|--------| +| *Can I process JPEG or BMP files?* | Kesinlikle—`ImageStream.FromFile` Aspose tarafından desteklenen (PNG, JPEG, BMP, TIFF) herhangi bir formatı kabul eder. | +| *What if the image is in a memory stream?* | `ImageStream.FromBytes(byteArray)` veya `ImageStream.FromStream(stream)` kullanın. | +| *Is the spell checker language‑aware?* | Evet, yazım denetleyicisi OCR motorunda ayarlanan dili dikkate alır. | +| *How do I improve accuracy on skewed images?* | `Recognize`'ı çağırmadan önce `ocrEngine.PreprocessingOptions.Deskew = true;` etkinleştirin. | +| *Do I need a license for Aspose.OCR?* | Ücretsiz deneme 100 sayfaya kadar çalışır. Üretim için su işaretlerini kaldırmak amacıyla lisans alın. | + +## Sonraki Adımlar – Temel OCR'un Ötesine Geçmek + +Artık **png'den metin tanıma** ve **görüntüden metin çıkarma C#** yapabildiğinize göre, şu uzantıları düşünün: + +1. **Batch processing** – PNG'lerin bulunduğu bir dizini döngüye alıp her OCR sonucunu ayrı bir `.txt` dosyasına yazın. +2. **Integration with Azure Cognitive Services** – Aspose OCR'ı çok‑dilli akışlar için bulut tabanlı çeviri API'leriyle birleştirin. +3. **Structured data extraction** – `recognizedText` üzerinde düzenli ifadeler kullanarak tarihleri, fatura numaralarını veya adresleri çekin. +4. **Performance tuning** – Büyük hacimler için tek bir `OcrEngine` örneğini yeniden kullanın ve çok‑iş parçacığını etkinleştirin. + +Bunların her biri, ele aldığımız temel adımlara dayanır ve basit bir görüntüyü eyleme geçirilebilir veriye dönüştürmenizi sağlar. + +## Sonuç + +C#'ta **png'den metin tanıma**, **görüntü dosyasını C#'ta yükleme** ve ardından **görüntüden metin çıkarma C#** yaparken yazım hatalarını yakalama konularını gösteren tam, uçtan uca bir örnek üzerinden geçtik. Kod kendi içinde bağımsız, açıklamalar “nasıl” ve “neden”i kapsıyor ve artık ihtiyacınız olabilecek herhangi bir OCR‑tabanlı özellik için sağlam bir temele sahipsiniz. + +Deneyin, ön‑işleme seçeneklerini ayarlayın ve çıkarılan metnin ne kadar temiz olabileceğini görün. Herhangi bir sorunla karşılaşırsanız, aşağıya yorum bırakın—iyi 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/vietnamese/net/ocr-configuration/_index.md b/ocr/vietnamese/net/ocr-configuration/_index.md index b9a6ce6fa..a256194cb 100644 --- a/ocr/vietnamese/net/ocr-configuration/_index.md +++ b/ocr/vietnamese/net/ocr-configuration/_index.md @@ -62,6 +62,8 @@ Mở khóa sức mạnh của nhận dạng hình ảnh OCR trong .NET với Asp 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. ### [OCROperation with List in OCR Image Recognition](./ocr-operation-with-list/) Mở khóa tiềm năng của Aspose.OCR cho .NET. Thực hiện nhận dạng hình ảnh OCR với danh sách một cách dễ dàng. Tăng năng suất và việc trích xuất dữ liệu trong các ứng dụng của bạn. +### [Cách tắt OCR trong C# – Hướng dẫn Offline Aspose OCR](./how-to-disable-ocr-in-c-offline-aspose-ocr-guide/) +Hướng dẫn tắt chức năng OCR trong ứng dụng C# khi làm việc offline với Aspose OCR. ### Các trường hợp sử dụng phổ biến - **Extract text images** từ hóa đơn đã quét để tự động kế toán. @@ -102,4 +104,4 @@ A: Có, đối tượng `OcrResult` cung cấp các giá trị confidence mà b {{< /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-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md b/ocr/vietnamese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..ed41216bd --- /dev/null +++ b/ocr/vietnamese/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-04-11 +description: Tìm hiểu cách tắt OCR trong Aspose OCR cho C# để chạy offline, trích + xuất văn bản từ hình ảnh mà không cần internet và tải hình ảnh đúng cách cho OCR. +draft: false +keywords: +- how to disable OCR +- extract text from image +- load image for OCR +- offline OCR C# +- Aspose OCR resources +language: vi +og_description: Cách tắt OCR trong Aspose OCR cho C# và chạy offline, trích xuất văn + bản từ hình ảnh mà không cần internet, và tải hình ảnh cho OCR một cách dễ dàng. +og_title: Cách vô hiệu hoá OCR trong C# – Hướng dẫn OCR offline của Aspose +tags: +- C# +- OCR +- Aspose +- Offline Processing +title: Cách tắt OCR trong C# – Hướng dẫn OCR Offline của Aspose +url: /vi/net/ocr-configuration/how-to-disable-ocr-in-c-offline-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Vô Hiệu Hóa OCR trong C# – Hướng Dẫn Aspose OCR Offline + +Bạn đã bao giờ tự hỏi **cách vô hiệu hóa OCR** khi cần một giải pháp thực sự offline chưa? Có thể bạn đang xây dựng một ứng dụng desktop bảo mật không thể dựa vào kết nối mạng, hoặc bạn chỉ muốn tránh các tải xuống không mong muốn. Dù sao, tin tốt là Aspose OCR cho phép bạn tắt việc tự động tải tài nguyên, chỉ định một thư mục cục bộ, và giữ mọi thứ trên‑premises. Trong tutorial này, bạn cũng sẽ thấy cách **trích xuất văn bản từ hình ảnh** và **tải hình ảnh cho OCR** một cách chính xác mà không gặp trục trặc. + +Chúng ta sẽ đi qua một ví dụ hoàn chỉnh, sẵn sàng chạy, thể hiện mọi bước—từ khởi tạo engine đến in ra văn bản tiếng Nhật đã nhận dạng. Không có tài liệu bên ngoài, không có phép màu ẩn; chỉ có mã C# thuần túy mà bạn có thể đưa vào dự án ngay hôm nay. Khi hoàn thành, bạn sẽ hiểu tại sao việc tắt tính năng tự động tải xuống quan trọng, cách đặt đường dẫn tài nguyên, và những cạm bẫy cần tránh. + +## Yêu cầu trước + +- .NET 6.0 (hoặc bất kỳ phiên bản .NET gần đây nào) đã được cài đặt trên máy của bạn. +- Gói NuGet Aspose.OCR for .NET (`Install-Package Aspose.OCR`). +- Một thư mục đã chứa các tài nguyên ngôn ngữ bạn cần (ví dụ: mô hình tiếng Nhật). +- Một tệp hình ảnh (`japan_doc.png`) mà bạn muốn chạy OCR. + +Nếu bạn chưa có các gói ngôn ngữ, hãy tải chúng từ cổng thông tin Aspose một lần, giải nén vào thư mục như `AsposeOCRResources`, và bạn đã sẵn sàng. Không có tải xuống nào khác sẽ xảy ra sau khi bạn đã tắt tính năng tự động tải xuống. + +![Cách vô hiệu hóa OCR offline](/images/how-to-disable-ocr.png "hình minh họa cách vô hiệu hóa OCR") + +## Bước 1 – Tạo Instance của OCR Engine + +Điều đầu tiên bạn làm là khởi tạo `OcrEngine`. Hãy nghĩ đối tượng này như bộ não sẽ đọc hình ảnh của bạn. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class OfflineDemo +{ + static void Main() + { + // Step 1: Create an OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Tại sao điều này quan trọng:** Không có engine, bạn không thể cấu hình bất cứ thứ gì. Đối tượng chứa tất cả các cài đặt, bao gồm cả cờ quan trọng cho biết thư viện có được phép truy cập internet hay không. + +## Bước 2 – Vô Hiệu Hóa Tự Động Tải Tài Nguyên + +Mặc định, Aspose OCR sẽ cố gắng tải các tệp ngôn ngữ còn thiếu ngay lập tức. Để giữ mọi thứ offline, chuyển công tắc `AutoDownloadResources` thành `false`. + +```csharp + // Step 2: Disable automatic resource download to work offline + ocrEngine.Settings.AutoDownloadResources = false; +``` + +> **Mẹo chuyên nghiệp:** Tắt tính năng này không chỉ bảo đảm tính riêng tư mà còn tăng tốc lần nhận dạng đầu tiên vì engine sẽ không lãng phí thời gian kiểm tra cập nhật. + +## Bước 3 – Chỉ Định Thư Mục Tài Nguyên Cục Bộ + +Bây giờ hãy cho engine biết nơi lưu các gói ngôn ngữ đã tải trước. Đây là đường dẫn bạn đã thiết lập trong phần yêu cầu trước. + +```csharp + // Step 3: Point the engine to the folder containing pre‑downloaded resources + ocrEngine.Settings.ResourcesPath = @"YOUR_DIRECTORY/AsposeOCRResources"; +``` + +> **Có thể xảy ra lỗi gì?** Nếu đường dẫn sai hoặc tệp ngôn ngữ cần thiết thiếu, engine sẽ ném ra `ResourceNotFoundException`. Hãy kiểm tra lại chính tả thư mục và chắc chắn mô hình tiếng Nhật (`jpn.traineddata`) có trong đó. + +## Bước 4 – Chọn Mô Hình Ngôn Ngữ Cục Bộ + +Chọn ngôn ngữ mà bạn thực sự có trên đĩa. Trong ví dụ của chúng ta, chúng ta dùng tiếng Nhật, nhưng bạn có thể thay `Language.Japanese` bằng bất kỳ ngôn ngữ nào khác mà bạn đã tải về. + +```csharp + // Step 4: Select the language model that is available locally + ocrEngine.Settings.Language = Language.Japanese; +``` + +> **Trường hợp đặc biệt:** Một số ngôn ngữ yêu cầu từ điển bổ sung (ví dụ: tiếng Trung). Đảm bảo các tệp phụ trợ cũng nằm trong cùng thư mục tài nguyên. + +## Bước 5 – Tải Hình Ảnh cho OCR + +Đây là nơi chúng ta **tải hình ảnh cho OCR**. Phương thức `ImageStream.FromFile` đọc tệp vào một stream mà Aspose có thể xử lý. + +```csharp + // Step 5: Load the image you want to recognize + ImageStream image = ImageStream.FromFile(@"YOUR_DIRECTORY/japan_doc.png"); +``` + +> **Mẹo:** Các định dạng được hỗ trợ bao gồm PNG, JPEG, BMP và TIFF. Nếu bạn cần xử lý PDF, hãy chuyển mỗi trang thành hình ảnh trước. + +## Bước 6 – Thực Hiện Quá Trình Nhận Dạng + +Bây giờ engine thực sự đọc các pixel và cố gắng chuyển chúng thành văn bản. + +```csharp + // Step 6: Run the OCR process + OcrResult ocrResult = ocrEngine.Recognize(image); +``` + +> **Tại sao bước này có thể chậm:** OCR tiêu tốn nhiều CPU, đặc biệt với hình ảnh độ phân giải cao. Nếu hiệu năng là mối quan tâm, hãy cân nhắc giảm kích thước hình ảnh trước khi nhận dạng. + +## Bước 7 – Xuất Văn Bản Đã Trích Xuất + +Cuối cùng, chúng ta **trích xuất văn bản từ hình ảnh** và in ra console. + +```csharp + // Step 7: Output the recognized text + Console.WriteLine(ocrResult.Text); + } +} +``` + +Chạy chương trình sẽ hiển thị các ký tự tiếng Nhật có trong `japan_doc.png`. Nếu mọi thứ được cấu hình đúng, bạn sẽ thấy một khối văn bản Unicode sạch sẽ trên console. + +### Kết Quả Dự Kiến + +``` +これはサンプルの日本語テキストです。 +``` + +(Kết quả thực tế của bạn sẽ phụ thuộc vào nội dung của hình ảnh.) + +## Các Cạm Bẫy Thường Gặp & Cách Tránh + +| Vấn đề | Nguyên nhân | Giải pháp | +|--------|-------------|-----------| +| **Thiếu tệp ngôn ngữ** | `AutoDownloadResources` bị đặt `false`, nên engine không thể tải nó. | Kiểm tra `ResourcesPath` trỏ đúng tới thư mục chứa `jpn.traineddata`. | +| **Đường dẫn hình ảnh sai** | `ImageStream.FromFile` ném `FileNotFoundException`. | Sử dụng đường dẫn tuyệt đối hoặc đảm bảo thư mục làm việc được đặt đúng. | +| **Định dạng hình ảnh không được hỗ trợ** | Aspose chỉ đọc một số định dạng nhất định. | Chuyển đổi hình ảnh sang PNG hoặc JPEG trước khi gọi `FromFile`. | +| **Hết bộ nhớ khi xử lý hình ảnh lớn** | OCR tải toàn bộ hình ảnh vào bộ nhớ. | Thu nhỏ hoặc chia hình ảnh thành các khối, hoặc tăng giới hạn bộ nhớ cho tiến trình. | + +## Mở Rộng Ví Dụ + +- **Xử lý hàng loạt:** Lặp qua một thư mục chứa nhiều hình ảnh, gọi cùng một đoạn mã nhận dạng, và ghi mỗi kết quả vào một tệp `.txt` riêng. +- **Ngôn ngữ khác:** Thay `Language.Japanese` bằng `Language.English` (hoặc bất kỳ ngôn ngữ nào khác) sau khi đặt các tệp tài nguyên tương ứng. +- **Tiền xử lý tùy chỉnh:** Sử dụng Aspose.Imaging để chỉnh sửa độ nghiêng hoặc tăng độ tương phản trước OCR nhằm cải thiện độ chính xác. + +## Kết Luận + +Bây giờ bạn đã biết **cách vô hiệu hóa OCR** trong Aspose OCR cho C# và chạy hoàn toàn offline. Bằng cách đặt `AutoDownloadResources` thành `false`, chỉ định engine tới thư mục tài nguyên cục bộ, và **tải hình ảnh cho OCR** đúng cách, bạn có thể **trích xuất văn bản từ hình ảnh** mà không cần kết nối internet. Cách tiếp cận này lý tưởng cho môi trường bảo mật, pipeline CI, hoặc bất kỳ kịch bản nào mà truy cập mạng bị hạn chế. + +Sẵn sàng cho bước tiếp theo? Hãy thử xử lý toàn bộ thư mục các PDF đã quét, thử nghiệm với các gói ngôn ngữ khác nhau, hoặc tích hợp kết quả OCR vào cơ sở dữ liệu có khả năng tìm kiếm. Cấu hình offline bạn vừa xây dựng hôm nay là nền tảng vững chắc cho bất kỳ quy trình xử lý tài liệu on‑premises nào. + +Chúc lập trình vui vẻ, và đừng ngại để lại bình luận nếu gặp khó khă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/vietnamese/net/ocr-optimization/_index.md b/ocr/vietnamese/net/ocr-optimization/_index.md index e65f42655..d24098ad4 100644 --- a/ocr/vietnamese/net/ocr-optimization/_index.md +++ b/ocr/vietnamese/net/ocr-optimization/_index.md @@ -74,6 +74,8 @@ Khám phá Aspose.OCR for .NET. Tăng cường độ chính xác OCR với các Cải thiện độ chính xác OCR với Aspose.OCR for .NET. Sửa lỗi chính tả, tùy chỉnh từ điển và đạt được nhận dạng văn bản không lỗi một cách dễ dàng. ### [Save Multipage Result as Document in OCR Image Recognition](./save-multipage-result-as-document/) Mở khóa tiềm năng của Aspose.OCR for .NET. Lưu dễ dàng kết quả OCR đa trang dưới dạng tài liệu với hướng dẫn chi tiết từng bước này. +### [Cách cải thiện độ chính xác OCR trong C# với Aspose OCR](./how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/) +Tìm hiểu các kỹ thuật và bộ lọc để nâng cao độ chính xác OCR trong C# bằng Aspose OCR. ## Câu hỏi thường gặp @@ -90,7 +92,7 @@ A: Không có giới hạn cứng; hiệu suất phụ thuộc vào hệ thống A: Chắc chắn. API không phụ thuộc vào nền tảng và hoạt động tốt trên Azure Functions, AWS Lambda (thông qua .NET Core) hoặc bất kỳ môi trường đám mây nào khác. **Hỏi: Có những lựa chọn cấp phép nào cho các dự án thương mại?** -A: Cung cấp giấy phép vĩnh viễn và giấy phép thuê bao. Bạn có thể lựa chọn mô hình phù hợp nhất với việc phát triển và ngân sách của mình. +A: Cung cấp giấy phép vĩnh viễn và giấy phép thuê bao. bạn có thể lựa chọn mô hình phù hợp nhất với việc phát triển và ngân sách của mình. --- diff --git a/ocr/vietnamese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md b/ocr/vietnamese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md new file mode 100644 index 000000000..2e29fdd05 --- /dev/null +++ b/ocr/vietnamese/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-04-11 +description: Tìm hiểu cách cải thiện OCR trong C# bằng cách nhận dạng văn bản từ JPG, + điều chỉnh độ nghiêng ảnh và loại bỏ nhiễu bằng Aspose OCR. +draft: false +keywords: +- how to improve OCR +- recognize text from jpg +- extract text from image +- how to deskew image +- how to remove noise +language: vi +og_description: Khám phá cách cải thiện OCR bằng việc nhận dạng văn bản từ JPG, chỉnh + nghiêng ảnh và loại bỏ nhiễu—hướng dẫn C# toàn diện. +og_title: Cách cải thiện độ chính xác OCR trong C# với Aspose OCR +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Cách cải thiện độ chính xác OCR trong C# với Aspose OCR +url: /vi/net/ocr-optimization/how-to-improve-ocr-accuracy-in-c-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách cải thiện độ chính xác OCR trong C# với Aspose OCR + +Bạn đã bao giờ tự hỏi **cách cải thiện OCR** khi các bản quét của bạn trông giống như tác phẩm nghệ thuật trừu tượng hơn là văn bản có thể đọc được chưa? Bạn không phải là người duy nhất. Trong nhiều dự án thực tế—như hoá đơn, biên lai, hoặc ghi chú viết tay—các ảnh nguồn thường bị nghiêng, hạt, hoặc chỉ đơn giản là nhiễu. Tin tốt? Aspose OCR cung cấp cho bạn một vài công cụ tiền xử lý có thể biến hỗn độn đó thành các ký tự sạch, có thể đọc được bằng máy. Trong hướng dẫn này, chúng tôi sẽ đi qua một ví dụ hoàn chỉnh, có thể chạy được, cho thấy **cách cải thiện OCR** bằng **việc nhận dạng văn bản từ JPG**, chỉnh nghiêng ảnh, và loại bỏ nhiễu không mong muốn. + +> *Mẹo chuyên nghiệp:* Nếu bạn bỏ qua bước tiền xử lý, khả năng cao bạn sẽ nhận được đầu ra rối rắm giống như một câu đố chữ thập lục. Hãy tránh điều đó. + +![Cách cải thiện OCR với tiền xử lý Aspose OCR](https://example.com/ocr-preprocess.png "cách cải thiện OCR với Aspose OCR") + +## Những gì bạn sẽ học + +Trong vài phút tới bạn sẽ thấy: + +1. Cách thiết lập engine Aspose OCR để đạt độ chính xác tối ưu. +2. Mã chính xác cần thiết để **nhận dạng văn bản từ JPG**. +3. Tại sao việc bật *AutoDeskew* và *RemoveNoise* quan trọng và cách điều chỉnh chúng. +4. Cách **trích xuất văn bản từ hình ảnh** mà không cần viết bộ lọc tùy chỉnh. +5. Các lỗi thường gặp (thiếu tệp, định dạng không hỗ trợ) và cách khắc phục nhanh. + +Kết thúc, bạn sẽ có một ứng dụng console C# duy nhất có thể nhận bất kỳ JPG nào, làm sạch nó, và xuất ra chuỗi đã trích xuất—sẵn sàng cho quá trình xử lý hoặc lưu trữ tiếp theo. + +## Yêu cầu trước + +- .NET 6.0 SDK hoặc phiên bản mới hơn (ví dụ sử dụng câu lệnh cấp cao cho ngắn gọn). +- Gói NuGet Aspose.OCR (`dotnet add package Aspose.OCR`). +- Một ảnh JPG mẫu (có tên `input.jpg`) đặt trong cùng thư mục với tệp thực thi. +- Kiến thức cơ bản về C#—không yêu cầu các khái niệm nâng cao. + +Nếu bạn đã có dự án, chỉ cần chèn mã vào; nếu không, tạo một ứng dụng console mới: + +```bash +dotnet new console -n OcrDemo +cd OcrDemo +dotnet add package Aspose.OCR +``` + +Bây giờ chúng ta hãy đi sâu vào mã. + +## Cách cải thiện OCR: Tổng quan về Cài đặt Tiền xử lý + +Trọng tâm của **cách cải thiện OCR** nằm trong đối tượng `PreprocessSettings`. Hãy nghĩ nó như một trình chỉnh sửa ảnh mini chạy *trước* khi engine nhận dạng ký tự thực sự được kích hoạt. Dưới đây là danh sách nhanh các cờ (flags) có tác động lớn nhất: + +| Setting | What it does | Typical use case | +|------------------------|---------------------------------------------------------|------------------| +| `AutoDeskew` | Áp dụng thuật toán de‑skew dựa trên deep‑learning. | Các trang quét hơi nghiêng. | +| `AdaptiveThreshold` | Tăng độ tương phản trong ảnh thiếu sáng hoặc mờ nhạt. | Biên lai cũ với mực bị phai. | +| `RemoveNoise` | Chạy bộ lọc Gaussian‑blur để giảm bớt các điểm nhiễu. | Ảnh chụp bằng đèn flash điện thoại. | +| `NoiseRemovalStrength`| Kiểm soát mức độ (1 = thấp, 3 = cao). | Tinh chỉnh dựa trên mức độ hạt của nguồn ảnh. | + +Bật các tùy chọn này thực chất là “bí quyết” để **cải thiện OCR** trên các đầu vào không hoàn hảo. + +## Nhận dạng văn bản từ JPG với Aspose OCR + +Dưới đây là chương trình đầy đủ, sẵn sàng chạy. Mỗi dòng được chú thích để bạn có thể thấy *tại sao* mỗi phần tồn tại, không chỉ *cái gì* nó làm. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class PreprocessDemo +{ + static void Main() + { + // ------------------------------------------------------------ + // Step 1: Create an OCR engine instance. + // ------------------------------------------------------------ + OcrEngine ocrEngine = new OcrEngine(); + + // ------------------------------------------------------------ + // Step 2: Fine‑tune preprocessing to improve accuracy. + // ------------------------------------------------------------ + ocrEngine.Settings.Preprocess = new PreprocessSettings + { + AutoDeskew = true, // How to deskew image automatically. + AdaptiveThreshold = true, // Improves contrast for better recognition. + RemoveNoise = true, // How to remove noise before OCR. + NoiseRemovalStrength = 2 // Medium strength; adjust 1‑3 as needed. + }; + + // ------------------------------------------------------------ + // Step 3: Load the JPG image you want to process. + // ------------------------------------------------------------ + // If the file is missing, Aspose will throw a FileNotFoundException. + // Wrap it in a try/catch if you need graceful fallback. + ImageStream image; + try + { + image = ImageStream.FromFile("input.jpg"); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading image: {ex.Message}"); + return; + } + + // ------------------------------------------------------------ + // Step 4: Run the OCR engine on the preprocessed image. + // ------------------------------------------------------------ + OcrResult ocrResult = ocrEngine.Recognize(image); + + // ------------------------------------------------------------ + // Step 5: Display the extracted text. + // ------------------------------------------------------------ + Console.WriteLine("=== Extracted Text ==="); + Console.WriteLine(ocrResult.Text); + } +} +``` + +### Kết quả mong đợi + +Nếu `input.jpg` chứa cụm từ “Invoice #12345 – Total: $256.78”, console sẽ in ra: + +``` +=== Extracted Text === +Invoice #12345 – Total: $256.78 +``` + +Chú ý cách đầu ra sạch sẽ, với dấu gạch ngang và ký hiệu đô la được giữ nguyên—đúng như bạn mong đợi khi **trích xuất văn bản từ hình ảnh**. + +## Cách chỉnh nghiêng ảnh bằng Cài đặt Tiền xử lý + +Tại sao việc chỉnh nghiêng lại quan trọng? Ngay cả góc nghiêng 2 độ cũng có thể làm rối quá trình phân đoạn ký tự, dẫn đến nhận dạng sai. Cờ `AutoDeskew` chạy một mạng nơ-ron tích chập phía sau để phát hiện góc chiếm ưu và xoay ảnh trở lại vị trí chuẩn. + +Nếu bạn cần kiểm soát nhiều hơn, bạn có thể đặt góc thủ công: + +```csharp +ocrEngine.Settings.Preprocess = new PreprocessSettings +{ + AutoDeskew = false, // Turn off automatic detection. + // Manually specify a rotation angle (in degrees): + DeskewAngle = -1.8 // Positive = clockwise, negative = counter‑clockwise. +}; +``` + +> **Khi nào nên dùng chỉnh nghiêng thủ công:** Nếu bạn biết camera luôn nghiêng ảnh một góc cố định (ví dụ, máy quét gắn cố định), việc mã hoá góc sẽ tiết kiệm một chút thời gian xử lý. + +## Cách loại bỏ nhiễu để trích xuất sạch hơn + +Nhiễu xuất hiện dưới dạng các điểm ngẫu nhiên hoặc hạt, đặc biệt trong ảnh thiếu sáng. Cờ `RemoveNoise` áp dụng bộ lọc song phía (bilateral) làm mịn nền trong khi giữ lại các cạnh (các ký tự thực tế). Thuộc tính `NoiseRemovalStrength` cho phép bạn điều chỉnh mức độ mạnh: + +| Strength | Effect | +|----------|--------| +| 1 | Làm mịn nhẹ—tốt cho ảnh hơi hạt. | +| 2 | Cân bằng—phù hợp với hầu hết các ảnh chụp bằng smartphone. | +| 3 | Làm mịn mạnh—dùng khi ảnh cực kỳ nhiễu, nhưng chú ý không làm mờ các nét mảnh. | + +Nếu bạn gặp trường hợp phông chữ nhỏ trở nên không đọc được sau khi làm mịn mạnh, chỉ cần giảm mức độ hoặc tắt bộ lọc hoàn toàn. + +## Trích xuất văn bản từ hình ảnh: Ngoài JPG + +Mặc dù demo của chúng tôi tập trung vào JPG, Aspose OCR hỗ trợ PNG, BMP, TIFF và thậm chí các trang PDF. Để **trích xuất văn bản từ hình ảnh** ở các định dạng khác JPG, chỉ cần thay đổi phần mở rộng tệp trong `ImageStream.FromFile`. Đối với TIFF đa trang, bạn có thể lặp qua từng trang: + +```csharp +for (int i = 0; i < tiffPageCount; i++) +{ + ImageStream page = ImageStream.FromFile($"input_{i}.tiff"); + OcrResult result = ocrEngine.Recognize(page); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +Đoạn mã này cho thấy cách bạn có thể mở rộng quy trình **cải thiện OCR** tương tự để xử lý hàng loạt tài liệu quét. + +## Những lỗi thường gặp & Cách khắc phục + +| Symptom | Likely Cause | Quick Fix | +|---------|--------------|-----------| +| Blank output | Image is completely white after preprocessing (over‑aggressive threshold) | Reduce `NoiseRemovalStrength` or set `AdaptiveThreshold = false`. | +| Garbled characters | Wrong language model (default is English) | Set `ocrEngine.Settings.Language = Language.English;` or load a custom language pack. | +| Crash on large files | Out‑of‑memory due to high‑resolution image | Downscale with `ocrEngine.Settings.ImageResizeFactor = 0.5;` before recognition. | +| No output for rotated scans | `AutoDeskew` disabled inadvertently | Enable `AutoDeskew = true` or supply correct `DeskewAngle`. | + +| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục nhanh | +|------------|--------------------|----------------------| +| Kết quả trống | Ảnh hoàn toàn trắng sau tiền xử lý (ngưỡng quá mạnh) | Giảm `NoiseRemovalStrength` hoặc đặt `AdaptiveThreshold = false`. | +| Ký tự rối | Mô hình ngôn ngữ sai (mặc định là tiếng Anh) | Đặt `ocrEngine.Settings.Language = Language.English;` hoặc tải gói ngôn ngữ tùy chỉnh. | +| Ứng dụng bị sập khi xử lý tệp lớn | Thiếu bộ nhớ do ảnh độ phân giải cao | Giảm kích thước với `ocrEngine.Settings.ImageResizeFactor = 0.5;` trước khi nhận dạng. | +| Không có đầu ra cho ảnh đã quay | `AutoDeskew` vô tình bị tắt | Bật `AutoDeskew = true` hoặc cung cấp `DeskewAngle` đúng. | + +Ghi nhớ những điều này sẽ giúp bạn tiết kiệm giờ đồng hồ debug khi cố gắng **cải thiện OCR** trong các quy trình sản xuất. + +## Bonus: Tinh chỉnh để cân bằng tốc độ và độ chính xác + +Nếu bạn xử lý hàng ngàn biên lai mỗi ngày, bạn có thể ưu tiên tốc độ. Tắt `AdaptiveThreshold` và đặt `NoiseRemovalStrength = 1`. Ngược lại, đối với tài liệu pháp lý mà một ký tự bị bỏ lỡ có thể gây tốn kém, hãy bật tất cả các cờ và cân nhắc tăng `NoiseRemovalStrength` lên 3. + +## Tổng kết + +Chúng tôi đã bao quát toàn bộ hành trình **cải thiện OCR** trong C# bằng Aspose OCR: từ việc tạo engine, cấu hình tiền xử lý (nền tảng của *cách chỉnh nghiêng ảnh* và *cách loại bỏ nhiễu*), tải JPG, nhận dạng văn bản, và xử lý các trường hợp đặc biệt. Mã nguồn tự chứa, chạy ngay mà không cần cấu hình thêm, và minh họa các bước chính xác bạn cần để **nhận dạng văn bản từ jpg** và **trích xuất văn bản từ hình ảnh**. + +### Tiếp theo là gì? + +- Thử nghiệm các định dạng ảnh khác (PNG, TIFF) để xem cách các cài đặt hoạt động. +- Tích hợp đầu ra OCR vào cơ sở dữ liệu hoặ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 diff --git a/ocr/vietnamese/net/text-recognition/_index.md b/ocr/vietnamese/net/text-recognition/_index.md index 205befdea..c3b5335c3 100644 --- a/ocr/vietnamese/net/text-recognition/_index.md +++ b/ocr/vietnamese/net/text-recognition/_index.md @@ -55,9 +55,20 @@ 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. +### [Trích xuất văn bản từ hình ảnh trong C# – Hướng dẫn OCR toàn diện](./extract-text-from-image-in-c-complete-ocr-guide/) +Hướng dẫn chi tiết 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. +### [Trích xuất văn bản từ TIFF bằng Batch OCR trong C# – Hướng dẫn toàn diện](./extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/) +Hướng dẫn chi tiết cách sử dụng Aspose.OCR để trích xuất văn bản từ tệp TIFF bằng chế độ Batch OCR trong C#, nhanh chóng và hiệu quả. +### [Tạo PDF có thể tìm kiếm trong C# – Hướng dẫn toàn diện](./create-searchable-pdf-in-c-complete-guide/) +Hướng dẫn chi tiết cách sử dụng Aspose.OCR trong C# để tạo PDF có thể tìm kiếm, giúp người dùng dễ dàng tra cứu nội dung. +### [Nhận dạng văn bản từ PNG trong C# – Hướng dẫn OCR toàn diện & Kiểm tra chính tả](./recognize-text-from-png-in-c-full-ocr-spell-check-guide/) +Hướng dẫn chi tiết cách sử dụng Aspose.OCR trong C# để nhận dạng văn bản từ tệp PNG và thực hiện kiểm tra chính tả một cách hiệu quả. +### [Chuyển đổi hình ảnh sang JSON – Hướng dẫn OCR C# cho biên lai](./convert-image-to-json-c-ocr-tutorial-for-receipts/) +Biến đổi hình ảnh biên lai thành JSON nhanh chóng bằng Aspose.OCR trong 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/vietnamese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md b/ocr/vietnamese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md new file mode 100644 index 000000000..93dff2c0e --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-04-11 +description: Chuyển đổi hình ảnh sang JSON bằng Aspose OCR Cloud trong C#. Tìm hiểu + cách nhận dạng văn bản, trích xuất văn bản từ hình ảnh và xử lý biên lai bằng OCR + trong vài phút. +draft: false +keywords: +- convert image to json +- how to recognize text +- extract text from image +- c# ocr tutorial +- process receipt with ocr +language: vi +og_description: Chuyển đổi hình ảnh sang JSON với Aspose OCR Cloud trong C#. Hướng + dẫn này cho thấy cách nhận dạng văn bản, trích xuất văn bản từ hình ảnh và xử lý + biên lai bằng OCR. +og_title: Chuyển đổi hình ảnh sang JSON – Hướng dẫn OCR C# cho biên lai +tags: +- OCR +- C# +- Aspose +- JSON +title: Chuyển đổi hình ảnh sang JSON – Hướng dẫn OCR C# cho biên lai +url: /vi/net/text-recognition/convert-image-to-json-c-ocr-tutorial-for-receipts/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển Đổi Hình Ảnh Sang JSON – Hướng Dẫn OCR C# cho Biên Lai + +Bạn đã bao giờ cần **chuyển đổi hình ảnh sang JSON** nhưng không biết bắt đầu từ đâu? Trong hướng dẫn này, chúng tôi sẽ dẫn bạn qua một tutorial OCR C# toàn diện, từ việc chụp ảnh biên lai, nhận dạng văn bản, cho tới việc xuất ra một payload JSON gọn gàng. + +Nếu bạn từng thắc mắc *cách nhận dạng văn bản* trong tài liệu đã quét, hoặc đang tìm cách nhanh chóng **trích xuất văn bản từ hình ảnh**, bạn đã đến đúng nơi. Khi đọc xong bài viết này, bạn sẽ có thể **xử lý biên lai với OCR** và đưa kết quả trực tiếp vào các API downstream của mình. + +## Những Điều Cần Chuẩn Bị + +- .NET 6 SDK hoặc mới hơn (code cũng hoạt động với .NET Core) +- Khóa API Aspose Cloud – bạn có thể lấy bản dùng thử miễn phí từ cổng Aspose +- Một hình ảnh biên lai mẫu (`receipt.jpg`) lưu trữ cục bộ +- IDE yêu thích của bạn (Visual Studio, VS Code, Rider – bất kỳ cái nào cũng được) + +Không cần thêm bất kỳ gói NuGet nào ngoài client chính thức `Aspose.OCR.Cloud`. Nếu bạn đã cài SDK, bạn đã sẵn sàng. + +## Bước 1 – Chuyển Đổi Hình Ảnh Sang JSON: Thiết Lập Client OCR + +Đầu tiên, chúng ta cần một thể hiện của `CloudOcrClient`. Đối tượng này xử lý mọi giao tiếp với dịch vụ OCR của Aspose và sẽ trả về kết quả ở định dạng JSON. + +```csharp +using Aspose.OCR.Cloud; +using System; +using System.Threading.Tasks; + +class CloudDemo +{ + static async Task Main() + { + // 👉 Replace with your real API key – keep it secret! + var ocrClient = new CloudOcrClient("YOUR_API_KEY"); + + // The path to the receipt you want to process + string imagePath = @"YOUR_DIRECTORY/receipt.jpg"; + + // Send the image for recognition (English language in this example) + var ocrResultJson = await ocrClient.RecognizeAsync(imagePath, Language.English); + + // Show the raw JSON response + Console.WriteLine(ocrResultJson); + } +} +``` + +**Tại sao điều này quan trọng:** Khởi tạo client là cầu nối giữa mã C# của bạn và engine OCR đám mây. Phương thức `RecognizeAsync` thực hiện công việc nặng – tải lên hình ảnh, chạy engine OCR, và trả về một chuỗi JSON chứa văn bản đã nhận dạng, điểm tin cậy, và tọa độ bounding‑box. + +> **Mẹo chuyên nghiệp:** Lưu khóa API trong biến môi trường hoặc trình quản lý bí mật thay vì hard‑code trực tiếp. Như vậy bạn sẽ tránh được rò rỉ vô tình. + +## Bước 2 – Cách Nhận Dạng Văn Bản Từ Biên Lai + +Khi client đã sẵn sàng, hãy khám phá *cách* thực hiện nhận dạng văn bản. Aspose OCR hỗ trợ nhiều ngôn ngữ, nhưng đối với hầu hết các biên lai, tiếng Anh vẫn hoạt động tốt. Nếu bạn cần ngôn ngữ khác, chỉ cần thay `Language.English` bằng giá trị enum phù hợp. + +```csharp +// Example: Recognize a Spanish receipt +var spanishResult = await ocrClient.RecognizeAsync(imagePath, Language.Spanish); +Console.WriteLine(spanishResult); +``` + +**Đằng sau màn hình đang xảy ra gì?** Dịch vụ chạy một mô hình deep‑learning để phát hiện ký tự, nhóm chúng thành từ, rồi ghép thành dòng. JSON trả về trông gần như sau: + +```json +{ + "text": "Total $12.34\nDate 04/10/2026\n...", + "confidence": 0.97, + "regions": [ + { "boundingBox": "10,20,200,30", "text": "Total $12.34" }, + { "boundingBox": "10,60,200,30", "text": "Date 04/10/2026" } + ] +} +``` + +Bạn có thể phân tích JSON này bằng `System.Text.Json` hoặc `Newtonsoft.Json` để lấy ra các trường bạn quan tâm. + +## Bước 3 – Trích Xuất Văn Bản Từ Hình Ảnh và Tự Tạo JSON Thủ Công (Tùy Chọn) + +Đôi khi bạn không muốn dùng JSON thô mà Aspose cung cấp; có thể bạn cần một cấu trúc tùy chỉnh cho dịch vụ downstream. Dưới đây là một ví dụ nhanh để deserialize phản hồi và đóng gói lại thành một đối tượng sạch hơn. + +```csharp +using System.Text.Json; + +// Define a lightweight model for the data you actually need +public class ReceiptData +{ + public string Total { get; set; } + public string Date { get; set; } +} + +// Helper method to parse the Aspose JSON +static ReceiptData ParseReceipt(string rawJson) +{ + using JsonDocument doc = JsonDocument.Parse(rawJson); + string text = doc.RootElement.GetProperty("text").GetString(); + + // Very naive parsing – just for demo purposes + var lines = text.Split('\n', StringSplitOptions.RemoveEmptyEntries); + var data = new ReceiptData(); + + foreach (var line in lines) + { + if (line.Contains("Total")) + data.Total = line.Split(' ')[1]; + else if (line.Contains("Date")) + data.Date = line.Split(' ')[1]; + } + + return data; +} + +// Inside Main after getting ocrResultJson +var receipt = ParseReceipt(ocrResultJson); +string finalJson = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true }); +Console.WriteLine("Custom JSON output:"); +Console.WriteLine(finalJson); +``` + +**Tại sao phải định dạng lại?** Nhiều API yêu cầu một schema cụ thể (ví dụ, `{ "total": "12.34", "date": "2026-04-10" }`). Bằng cách chỉ trích xuất các trường cần thiết, bạn giữ payload nhẹ và tránh rò rỉ siêu dữ liệu OCR không cần thiết. + +## Bước 4 – Kiểm Tra Tutorial OCR C# Với Một Biên Lai Mẫu + +Chạy chương trình từ terminal của bạn: + +```bash +dotnet run +``` + +Bạn sẽ thấy hai khối đầu ra: + +1. JSON thô trả về bởi Aspose (kết quả **convert image to json** trực tiếp từ đám mây). +2. JSON tùy chỉnh mà bạn đã tạo ở bước trước. + +Kết quả mẫu thường trông như sau: + +``` +{ + "text":"Total $12.34\nDate 04/10/2026\n...", + "confidence":0.97, + ... +} +Custom JSON output: +{ + "Total": "$12.34", + "Date": "04/10/2026" +} +``` + +Nếu bạn nhận được lỗi như *401 Unauthorized*, hãy kiểm tra lại khóa API có hợp lệ và đường dẫn hình ảnh có đúng không. + +## Các Trường Hợp Đặc Biệt & Những Sai Lầm Thường Gặp + +| Tình huống | Điều Cần Lưu Ý | Giải Pháp Đề Xuất | +|-----------|------------------|-------------------| +| **Biên lai độ phân giải thấp** | Độ tin cậy OCR giảm dưới 0.8 | Tiền xử lý ảnh (tăng DPI, làm nét) trước khi gửi | +| **Ký tự không phải tiếng Anh** | Enum ngôn ngữ sai | Dùng `Language.AutoDetect` hoặc chỉ định ngôn ngữ đúng | +| **Xử lý hàng loạt biên lai** | Lỗi rate‑limit | Thực hiện exponential back‑off hoặc yêu cầu quota cao hơn từ Aspose | +| **Thiếu trường dữ liệu** | Trình phân tích tùy chỉnh trả về `null` | Thêm logic dự phòng hoặc regex để trích xuất mạnh mẽ hơn | + +## Tổng Quan Trực Quan + +![Sơ đồ mô tả luồng từ tệp hình ảnh → client OCR → phản hồi JSON → phân tích tùy chỉnh → đầu ra JSON cuối cùng](https://example.com/ocr-flow-diagram.png "convert image to json") + +*Văn bản thay thế:* *sơ đồ luồng chuyển đổi hình ảnh sang JSON minh họa các bước trong tutorial này.* + +## Tóm Tắt + +Chúng tôi đã chỉ cho bạn cách **chuyển đổi hình ảnh sang JSON** bằng Aspose OCR Cloud, giải thích *cách nhận dạng văn bản* trong biên lai, trình bày các cách **trích xuất văn bản từ hình ảnh**, và gói mọi thứ trong một **tutorial OCR C#** sạch sẽ mà bạn có thể đưa vào bất kỳ dự án .NET nào. + +Các điểm chính cần nhớ: + +- Thiết lập `CloudOcrClient` với khóa API của bạn. +- Gọi `RecognizeAsync` để nhận payload JSON trực tiếp từ dịch vụ. +- Tùy chọn, tái cấu trúc payload để phù hợp với hợp đồng dữ liệu của bạn. + +## Bước Tiếp Theo? + +- **Xử lý batch:** Lặp qua một thư mục các biên lai và tổng hợp kết quả thành một mảng JSON duy nhất. +- **Phân tích nâng cao:** Dùng biểu thức chính quy hoặc mô hình NLP nhỏ để lấy ra các mục hàng, thuế, và giảm giá. +- **Tích hợp:** Đẩy JSON cuối cùng vào cơ sở dữ liệu, hàng đợi tin nhắn, hoặc Azure Function để tự động hoá thêm. + +Hãy thử nghiệm với các định dạng ảnh khác nhau (PNG, TIFF) hoặc thử luồng **process receipt with OCR** trên ảnh chụp bằng điện thoại. Khi đã có cách **chuyển đổi hình ảnh sang JSON** đáng tin cậy, khả năng của bạn sẽ không còn giới hạn. + +Có câu hỏi hay gặp khó khăn? Để lại bình luận bên dưới, 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/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md b/ocr/vietnamese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md new file mode 100644 index 000000000..f2f90f94f --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/create-searchable-pdf-in-c-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-04-11 +description: Tạo PDF có thể tìm kiếm từ hình ảnh một cách nhanh chóng. Học cách tạo + PDF từ hình ảnh, nhúng PDF hình ảnh, chuyển đổi TIF sang PDF và sử dụng OCR để tạo + PDF bằng C# với Aspose. +draft: false +keywords: +- create searchable pdf +- generate pdf from image +- embed image pdf +- convert tif to pdf +- ocr to pdf c# +language: vi +og_description: Tạo PDF có thể tìm kiếm ngay lập tức. Hướng dẫn này chỉ cách tạo PDF + từ hình ảnh, nhúng PDF hình ảnh, chuyển đổi TIF sang PDF và sử dụng OCR để tạo PDF + bằng C#. +og_title: Tạo PDF có thể tìm kiếm trong C# – Hướng dẫn từng bước +tags: +- C# +- OCR +- PDF generation +title: Tạo PDF có thể tìm kiếm trong C# – Hướng dẫn toàn diện +url: /vi/net/text-recognition/create-searchable-pdf-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo PDF có thể tìm kiếm trong C# – Hướng dẫn đầy đủ + +Bạn đã bao giờ cần **tạo PDF có thể tìm kiếm** từ một tài liệu đã quét nhưng không biết bắt đầu từ đâu? Bạn không đơn độc; nhiều nhà phát triển gặp cùng một khó khăn khi làm việc với các tệp TIFF và OCR. Trong hướng dẫn này, chúng tôi sẽ trình bày một giải pháp thực tế cho phép bạn **generate PDF from image**, nhúng ảnh gốc để đạt độ tìm kiếm hoàn hảo, và kết thúc bằng một quy trình **OCR to PDF C#** sạch sẽ. + +Chúng tôi sẽ bao phủ mọi thứ từ việc cài đặt thư viện Aspose.OCR đến xử lý các trường hợp đặc biệt như TIFF đa trang. Khi hoàn thành, bạn sẽ có một chương trình sẵn sàng chạy, chuyển `input.tif` thành một `output.pdf` hoàn toàn có thể tìm kiếm. Không có dịch vụ bên ngoài, không có phép thuật ẩn—chỉ là mã C# thuần túy mà bạn có thể chèn vào bất kỳ dự án .NET nào. + +## Những gì bạn cần + +- .NET 6.0 hoặc mới hơn (mã hoạt động trên .NET Framework 4.7+ cũng được) +- Visual Studio 2022 (hoặc bất kỳ trình chỉnh sửa nào bạn thích) +- Giấy phép Aspose.OCR hợp lệ hoặc khóa dùng thử miễn phí (gói NuGet hoạt động mà không cần khóa để đánh giá) +- Một ảnh TIFF mẫu (`input.tif`) đặt trong thư mục bạn có thể tham chiếu + +> **Mẹo chuyên nghiệp:** Giữ các tệp hình ảnh dưới 10 MB để tránh tăng đột biến bộ nhớ khi xử lý các lô lớn. + +## Bước 1: Cài đặt Aspose.OCR và Thiết lập Dự án + +Đầu tiên, thêm gói NuGet Aspose.OCR vào dự án của bạn. Mở Package Manager Console và chạy: + +```powershell +Install-Package Aspose.OCR +``` + +Nếu bạn thích giao diện người dùng, nhấp chuột phải vào **Dependencies → Manage NuGet Packages**, tìm kiếm *Aspose.OCR*, và nhấn **Install**. + +Tại sao bước này quan trọng: Aspose.OCR bao gồm một engine OCR hiệu suất cao và một công cụ xuất PDF tích hợp, vì vậy bạn không cần các thư viện riêng cho việc xử lý hình ảnh hay tạo PDF. + +### Cấu trúc Dự án đầy đủ + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // All logic lives in the helper methods below + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + var engine = CreateOcrEngine(); + var img = LoadImage(imagePath); + var options = ConfigurePdfOptions(); + + ExportToSearchablePdf(engine, img, pdfPath, options); + } + + // Helper methods are defined after Main() + // ... + } +} +``` + +**Lưu ý:** Thay thế `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế trên máy của bạn. + +## Bước 2: Tải ảnh – Nền tảng *Generate PDF from Image* + +Việc tải tệp nguồn là một bước nhỏ nhưng quan trọng. Aspose.OCR yêu cầu một `ImageStream`, cho phép trừu tượng hoá I/O tệp và hỗ trợ nhiều định dạng (TIFF, PNG, JPEG, v.v.). + +```csharp +static ImageStream LoadImage(string path) +{ + // Validate the file exists early to give a clear error message + if (!System.IO.File.Exists(path)) + throw new System.IO.FileNotFoundException($"Image not found: {path}"); + + // ImageStream.FromFile reads the file into a stream that Aspose can process + return ImageStream.FromFile(path); +} +``` + +**Tại sao không chỉ truyền đường dẫn?** +`ImageStream` wrapper xử lý bộ đệm nội bộ và đảm bảo engine OCR hoạt động với các TIFF đa trang lớn mà không cần tải toàn bộ tệp vào bộ nhớ cùng một lúc. + +## Bước 3: Cấu hình Xuất PDF – *Embed Image PDF* để Độ tìm kiếm Hoàn hảo + +Khi bạn xuất kết quả OCR sang PDF, bạn có hai lựa chọn: chỉ nhúng văn bản đã trích xuất, hoặc nhúng ảnh gốc cùng với lớp văn bản ẩn. Nhúng ảnh giữ nguyên độ trung thực hình ảnh của bản quét và cho phép người dùng chọn hoặc sao chép văn bản sau này. + +```csharp +static PdfExportOptions ConfigurePdfOptions() +{ + // Setting EmbedOriginalImage = true creates a searchable PDF that still looks like the scan + return new PdfExportOptions + { + EmbedOriginalImage = true, + // Optional: you can control PDF compression here if needed + // ImageCompression = PdfImageCompression.Auto + }; +} +``` + +**Trường hợp đặc biệt:** Nếu bạn đặt `EmbedOriginalImage` thành `false`, PDF tạo ra sẽ nhỏ hơn nhưng sẽ mất ảnh gốc—hữu ích cho các kho lưu trữ chỉ có văn bản. + +## Bước 4: Xuất – *OCR to PDF C#* trong một lời gọi + +Aspose.OCR làm cho công việc nặng trở nên chỉ một dòng lệnh. Phương thức `ExportToPdf` thực hiện OCR, xây dựng lớp văn bản ẩn, và ghi tệp cuối cùng. + +```csharp +static void ExportToSearchablePdf(OcrEngine engine, ImageStream image, string pdfPath, PdfExportOptions options) +{ + // The engine can be reused for multiple files; here we keep it simple + engine.ExportToPdf(image, pdfPath, options); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); +} +``` + +### Kết quả Dự kiến + +Running the program prints: + +``` +Searchable PDF created successfully at: YOUR_DIRECTORY\output.pdf +``` + +Mở `output.pdf` bằng bất kỳ trình xem nào (Adobe Reader, Edge, v.v.) và thử chọn văn bản—bạn sẽ thấy ảnh gốc phía dưới, xác nhận thao tác **create searchable pdf** đã thành công. + +## Bước 5: Xác minh PDF – Kiểm tra Nhanh Bạn Có Thể Tự Động Hóa + +Mặc dù kiểm tra thủ công là ổn cho một tệp duy nhất, bạn có thể muốn khẳng định PDF chứa lớp văn bản một cách lập trình. Aspose.PDF (thư viện chị em) có thể đọc tài liệu và trích xuất văn bản: + +```csharp +// Optional verification using Aspose.PDF (add via NuGet if you need it) +using Aspose.Pdf; + +static void VerifyPdfContainsText(string pdfPath) +{ + var pdf = new Document(pdfPath); + var extracted = pdf.Pages[1].ExtractText(); + + if (string.IsNullOrWhiteSpace(extracted)) + Console.WriteLine("Warning: No searchable text found!"); + else + Console.WriteLine("Verification passed – PDF is searchable."); +} +``` + +Thêm lời gọi `VerifyPdfContainsText(pdfPath);` sau khi xuất nếu bạn muốn một kiểm tra tự động. + +## Những Cạm Bẫy Thường Gặp & Cách Tránh + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|-------|-------------|----------------| +| **Thiếu bộ nhớ khi xử lý TIFF lớn** | Việc tải toàn bộ tệp một lúc vượt quá RAM. | Sử dụng `ImageStream.FromFile` (như đã minh họa) và xử lý các trang từng cái một nếu bạn có tệp đa trang. | +| **Thiếu giấy phép dẫn đến watermark** | Chế độ đánh giá sẽ thêm watermark hiển thị trên mỗi trang. | Áp dụng giấy phép Aspose.OCR của bạn sớm: `License license = new License(); license.SetLicense("Aspose.OCR.lic");` | +| **Dấu phân cách đường dẫn không đúng trên Linux** | Dấu `\` được mã hoá cứng sẽ gây lỗi trên hệ điều hành không phải Windows. | Sử dụng `Path.Combine` hoặc raw string literals với `/`. | +| **Văn bản không thể tìm kiếm** | `EmbedOriginalImage` được đặt thành `false` hoặc OCR bị tắt. | Đảm bảo `PdfExportOptions.EmbedOriginalImage = true` và engine OCR được khởi tạo đúng. | + +## Bonus: Chuyển đổi TIF sang PDF mà không cần OCR (Khi không cần văn bản) + +Nếu bạn chỉ cần **chuyển đổi TIF sang PDF** mà không có lớp văn bản ẩn, bạn có thể bỏ qua hoàn toàn bước OCR: + +```csharp +static void ConvertTifToPdf(string tifPath, string pdfPath) +{ + var img = ImageStream.FromFile(tifPath); + var options = new PdfExportOptions { EmbedOriginalImage = true }; + // No OCR engine – just direct export + new OcrEngine().ExportToPdf(img, pdfPath, options); +} +``` + +Mẹo này hữu ích cho việc lưu trữ tài liệu đã quét mà không cần khả năng tìm kiếm. + +## Ví dụ Hoạt động Đầy đủ (Sẵn sàng Sao chép‑Dán) + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Export; +using Aspose.Pdf; // Optional, only for verification +using System.IO; + +namespace SearchablePdfDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Define input & output paths + var imagePath = @"YOUR_DIRECTORY\input.tif"; + var pdfPath = @"YOUR_DIRECTORY\output.pdf"; + + // 2️⃣ Initialize OCR engine (license optional for trial) + var engine = new OcrEngine(); + + // 3️⃣ Load the TIFF image + var image = LoadImage(imagePath); + + // 4️⃣ Set PDF options – we embed the original scan + var pdfOptions = new PdfExportOptions { EmbedOriginalImage = true }; + + // 5️⃣ Export to a searchable PDF + engine.ExportToPdf(image, pdfPath, pdfOptions); + Console.WriteLine($"Searchable PDF created successfully at: {pdfPath}"); + + // 6️⃣ Optional verification that text is searchable + VerifyPdfContainsText(pdfPath); + } + + static ImageStream LoadImage(string path) + { + if (!File.Exists(path)) + throw new FileNotFoundException($"Image not found: {path}"); + return ImageStream.FromFile(path); + } + + static void VerifyPdfContainsText(string pdfPath) + { + var pdf = new Document(pdfPath); + var text = pdf.Pages[1].ExtractText(); + Console.WriteLine(string.IsNullOrWhiteSpace(text) + ? "Warning: No searchable text detected." + : "Verification passed – PDF is searchable."); + } + } +} +``` + +Chạy chương trình, mở `output.pdf`, và bạn sẽ thấy một bản sao trung thực của TIFF gốc với lớp văn bản ẩn, có thể chọn—đúng như ý nghĩa của **create searchable pdf** trong thực tế. + +## Kết luận + +Chúng tôi vừa trình bày một quy trình **create searchable pdf** hoàn chỉnh trong C#. Bắt đầu từ một TIFF thô, chúng tôi **generate pdf from image**, chọn **embed image pdf** để giữ độ trung thực hình ảnh, và minh họa toàn bộ pipeline **ocr to pdf c#** bằng Aspose.OCR. + +Bạn có thể tự do điều chỉnh `PdfExportOptions` (nén, phiên bản PDF, v.v.) hoặc nối nhiều ảnh lại với nhau để xử lý hàng loạt. Tiếp theo, bạn có thể khám phá việc thêm bảo vệ bằng mật khẩu, chữ ký số, hoặc thậm chí hợp nhất nhiều PDF có thể tìm kiếm thành một tài liệu chính. + +Có câu hỏi nào về việc mở rộng quy mô này lên hàng ngàn tệp hoặc tích hợp vào API ASP.NET không? Để lại bình luận bên dưới hoặc nhắn tin cho tôi trên GitHub—chúc lập trình vui! + +![Ví dụ PDF có thể tìm kiếm](/images/searchable-pdf.png "Ví dụ PDF có thể tìm kiếm") + +{{< /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/extract-text-from-image-in-c-complete-ocr-guide/_index.md b/ocr/vietnamese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md new file mode 100644 index 000000000..da930dda2 --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-04-11 +description: Trích xuất văn bản từ hình ảnh bằng Aspose OCR trong C#. Tìm hiểu cách + tải hình ảnh cho OCR và nhận dạng văn bản từ các tệp TIFF với hỗ trợ GPU. +draft: false +keywords: +- extract text from image +- load image for OCR +- recognize text from TIFF +- Aspose OCR C# +- GPU OCR processing +- high‑resolution OCR +language: vi +og_description: Trích xuất văn bản từ hình ảnh bằng Aspose OCR trong C#. Hướng dẫn + này cho thấy cách tải hình ảnh để OCR và nhận dạng văn bản từ tệp TIFF bằng tốc + độ tăng tốc GPU. +og_title: Trích xuất văn bản từ hình ảnh trong C# – Hướng dẫn OCR đầy đủ +tags: +- OCR +- C# +- Aspose +- GPU +title: Trích xuất văn bản từ hình ảnh trong C# – Hướng dẫn OCR đầy đủ +url: /vi/net/text-recognition/extract-text-from-image-in-c-complete-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Trích xuất văn bản từ hình ảnh trong C# – Hướng dẫn OCR toàn diện + +Bạn đã bao giờ cần **trích xuất văn bản từ hình ảnh** nhưng không chắc thư viện nào có thể xử lý một tệp TIFF khổng lồ mà không bị treo? Bạn không phải là người duy nhất. Trong nhiều dự án thực tế—như số hoá hoá đơn hoặc lưu trữ sách đã quét—khả năng tải hình ảnh cho OCR và sau đó nhận dạng văn bản từ TIFF nhanh chóng trở thành tính năng quyết định. + +Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn một giải pháp thực tế thực hiện đúng như vậy bằng cách sử dụng Aspose OCR cho .NET. Khi kết thúc, bạn sẽ có một ứng dụng console C# có thể chạy được, tải một bản quét độ phân giải cao, khởi động xử lý tăng tốc GPU (với chế độ dự phòng mượt mà), và xuất ra kết quả văn bản thuần. Không có phần nào thiếu, không có “xem tài liệu” dẫn đến bế tắc. + +## Những gì bạn cần + +- **.NET 6 hoặc mới hơn** (code biên dịch với bất kỳ SDK gần đây nào) +- **Aspose.OCR for .NET** gói NuGet + `dotnet add package Aspose.OCR` +- Một **tệp TIFF lớn** hoặc bất kỳ định dạng hình ảnh nào bạn muốn OCR + (ví dụ sử dụng `large_scan.tif`) +- (Tùy chọn) GPU hỗ trợ CUDA 11+ – nếu bạn không có, thư viện sẽ tự động chuyển sang chế độ CPU. + +Chỉ vậy thôi. Hãy bắt đầu. + +![Trích xuất văn bản từ hình ảnh bằng Aspose OCR trong C#](image-placeholder.png "Trích xuất văn bản từ hình ảnh bằng Aspose OCR trong C#") + +## Bước 1: Trích xuất văn bản từ hình ảnh – Khởi tạo Engine OCR + +Trước khi bất kỳ hình ảnh nào có thể được xử lý, bạn cần một thể hiện `OcrEngine`. Engine này chứa tất cả các cài đặt kiểm soát cách nhận dạng diễn ra. + +```csharp +using System; +using Aspose.OCR; +using Aspose.OCR.Settings; + +class Program +{ + static void Main() + { + // Initialise the OCR engine and request GPU processing. + // ProcessingMode.Auto tells Aspose to fall back to CPU if a GPU isn’t detected. + var ocrEngine = new OcrEngine + { + Settings = { ProcessingMode = ProcessingMode.Gpu } + }; + + // Optional: cap GPU memory usage to avoid OOM on shared machines. + ocrEngine.Settings.GpuMemoryLimit = 1024; // MB +``` + +**Tại sao điều này quan trọng:** +`ProcessingMode.Gpu` có thể giảm vài giây thời gian nhận dạng trên card hiện đại, nhưng việc đặt `ProcessingMode.Auto` (hoặc để mặc định) an toàn hơn cho môi trường có thể không có GPU. Giới hạn `GpuMemoryLimit` là một mẹo thực tế—nếu không có, một hình ảnh khổng lồ có thể chiếm toàn bộ VRAM và làm sập các ứng dụng khác. + +## Bước 2: Tải hình ảnh cho OCR – Đưa TIFF vào bộ nhớ + +Bây giờ engine đã sẵn sàng, chúng ta cần cung cấp cho nó hình ảnh muốn phân tích. Aspose cung cấp `ImageStream.FromFile` giúp trừu tượng hoá việc xử lý định dạng. + +```csharp + // Load the high‑resolution TIFF you want to OCR. + // Replace the path with the location of your own file. + var image = ImageStream.FromFile(@"YOUR_DIRECTORY/large_scan.tif"); +``` + +**Đi gì đang diễn ra bên trong?** +`ImageStream.FromFile` đọc tệp vào một stream và tự động phát hiện định dạng hình ảnh (TIFF, PNG, JPEG, v.v.). Nếu bạn đang làm việc với TIFF đa trang, Aspose sẽ coi mỗi trang là một khung riêng; bạn có thể lặp lại chúng sau này nếu cần. + +## Bước 3: Nhận dạng văn bản từ TIFF – Chạy Engine OCR + +Khi hình ảnh đã được tải, công việc nặng bắt đầu. Phương thức `Recognize` trả về một đối tượng `OcrResult` chứa văn bản đã trích xuất và một vài trường metadata hữu ích. + +```csharp + // Perform the OCR operation. + var ocrResult = ocrEngine.Recognize(image); +``` + +**Tại sao chỉ gọi `Recognize` một lần?** +Vì engine lưu vào bộ nhớ đệm các cấu trúc nội bộ sau lần chạy đầu tiên, một lần gọi đủ cho hầu hết các kịch bản. Nếu bạn cần xử lý nhiều trang, hãy tái sử dụng cùng một thể hiện `OcrEngine`—điều này tránh chi phí khởi tạo lại ngữ cảnh GPU. + +## Bước 4: Hiển thị kết quả – Show văn bản đã trích xuất + +Cuối cùng, chúng ta xuất chuỗi đã nhận dạng ra console. Trong một ứng dụng thực tế, bạn có thể ghi nó vào cơ sở dữ liệu hoặc tệp. + +```csharp + // Show the extracted plain text. + Console.WriteLine(ocrResult.Text); + } +} +``` + +**Kết quả mong đợi:** +Nếu `large_scan.tif` chứa một hoá đơn đã in, bạn sẽ thấy gì đó như: + +``` +Invoice #12345 +Date: 2024‑03‑15 +Total: $1,234.56 +... +``` + +Bố cục chính xác phụ thuộc vào hình ảnh nguồn, nhưng điểm quan trọng là bạn hiện đã có kết quả **trích xuất văn bản từ hình ảnh** sẵn sàng cho các bước xử lý tiếp theo. + +## Bước 5: Khắc phục sự cố & Các trường hợp đặc biệt + +### GPU không được phát hiện? + +Nếu bạn chạy mẫu trên máy không có GPU tương thích, engine sẽ tự động chuyển sang CPU khi bạn dùng `ProcessingMode.Auto`. Để buộc chế độ CPU một cách rõ ràng, thay thế dòng trước bằng: + +```csharp +ocrEngine.Settings.ProcessingMode = ProcessingMode.Cpu; +``` + +### TIFF tiêu tốn nhiều bộ nhớ + +Các bản quét rất lớn (ví dụ, 10 000 × 10 000 px) có thể vẫn vượt quá giới hạn 1 GB GPU mà chúng ta đặt. Trong trường hợp đó, hoặc tăng `GpuMemoryLimit` (nếu có VRAM dư) hoặc giảm kích thước hình ảnh trước khi đưa vào engine: + +```csharp +var resized = image.Resize(4000, 4000); // keep aspect ratio as needed +var ocrResult = ocrEngine.Recognize(resized); +``` + +### Tài liệu đa trang + +Nếu TIFF của bạn chứa nhiều trang, lặp qua chúng: + +```csharp +for (int i = 0; i < image.PageCount; i++) +{ + var pageStream = image.GetPage(i); + var result = ocrEngine.Recognize(pageStream); + Console.WriteLine($"--- Page {i + 1} ---"); + Console.WriteLine(result.Text); +} +``` + +### Hỗ trợ ngôn ngữ & phông chữ + +Aspose OCR tự động phát hiện các script dựa trên Latin, nhưng đối với Cyrillic, Arabic, hoặc phông chữ tùy chỉnh, bạn có thể cần cung cấp một gói ngôn ngữ: + +```csharp +ocrEngine.Settings.Language = Language.Russian; // example +``` + +## Mẹo chuyên nghiệp & Thực hành tốt nhất + +- **Tái sử dụng engine**: Tạo một `OcrEngine` mới cho mỗi hình ảnh sẽ làm tăng độ trễ đáng chú ý. +- **Xử lý hàng loạt**: Khi xử lý hàng chục TIFF, hãy xếp chúng vào hàng đợi và xử lý bằng các luồng song song—chỉ cần lưu ý đến tranh chấp bộ nhớ GPU. +- **Xác thực đầu ra**: OCR không hoàn hảo; chạy kiểm tra chính tả đơn giản hoặc xác thực regex trên `ocrResult.Text` để phát hiện các nhận dạng sai rõ ràng. +- **Ghi lại hiệu năng**: Đo thời gian `Stopwatch` trước và sau `Recognize` để quyết định liệu tăng tốc GPU có đáng giá so với việc thiết lập thêm trong môi trường của bạn hay không. + +## Kết luận + +Bây giờ bạn đã có một ví dụ hoàn chỉnh, từ đầu đến cuối mà **trích xuất văn bản từ hình ảnh** bằng Aspose OCR trong C#. Bằng cách tải hình ảnh cho OCR, gọi engine để nhận dạng văn bản từ TIFF, và xử lý các kịch bản GPU vs. CPU, tutorial này cung cấp cho bạn nền tảng sẵn sàng cho sản xuất mà bạn có thể điều chỉnh cho hoá đơn, hộ chiếu, hoặc bất kỳ tài liệu quét nào. + +Tiếp theo gì? Hãy thử thay thế TIFF bằng PDF đa trang, thử nghiệm các gói ngôn ngữ tùy chỉnh, hoặc đưa đầu ra vào pipeline xử lý ngôn ngữ tự nhiên để trích xuất dữ liệu tự động. Không gì là không thể—chúc bạn lập trình vui! + +{{< /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/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md b/ocr/vietnamese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md new file mode 100644 index 000000000..7e7291520 --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-04-11 +description: Trích xuất văn bản từ các tệp TIFF bằng xử lý hàng loạt Aspose OCR trong + C#. Tìm hiểu cách xử lý OCR hàng loạt một cách hiệu quả và nhận phản hồi tiến độ + theo thời gian thực. +draft: false +keywords: +- extract text from tiff +- process batch ocr +- OCR batch processing +- Aspose OCR C# +- TIFF image OCR +language: vi +og_description: Trích xuất văn bản từ các tệp TIFF bằng xử lý OCR hàng loạt của Aspose + trong C#. Hướng dẫn này trình bày chi tiết từng bước cách thực hiện OCR hàng loạt + và đọc tiến độ. +og_title: Trích xuất văn bản từ TIFF bằng OCR hàng loạt trong C# – Hướng dẫn chi tiết +tags: +- OCR +- C# +- Aspose +- Image Processing +title: Trích xuất văn bản từ TIFF bằng OCR hàng loạt trong C# – Hướng dẫn chi tiết +url: /vi/net/text-recognition/extract-text-from-tiff-with-batch-ocr-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Trích xuất văn bản từ TIFF – Hướng dẫn đầy đủ Batch OCR + +Bạn đã bao giờ cần **trích xuất văn bản từ TIFF** nhưng lại gặp khó khăn ở phần xử lý hàng loạt? Bạn không phải là người duy nhất. Trong nhiều dự án tự động hoá tài liệu, việc xử lý hàng chục ảnh TIF độ phân giải cao có thể nhanh chóng trở thành nút thắt—đặc biệt khi bạn muốn nhận phản hồi tiến độ theo thời gian thực. + +Tin tốt? Với Aspose OCR bạn có thể **process batch OCR** chỉ trong vài dòng code, nhận các sự kiện tiến độ theo thời gian thực, và xuất văn bản đã nhận dạng cho mỗi ảnh. Trong hướng dẫn này, chúng tôi sẽ đi qua một ứng dụng console C# đã sẵn sàng chạy thực hiện đúng như vậy. + +Chúng tôi sẽ bao phủ mọi thứ bạn cần biết: các gói cần thiết, lý do mỗi dòng quan trọng, các trường hợp đặc biệt như file bị thiếu, và cách xác minh kết quả. Khi kết thúc, bạn sẽ có thể đưa mẫu vào giải pháp của mình và bắt đầu trích xuất văn bản từ ảnh TIFF ngay lập tức. + +## Những gì bạn cần + +- **.NET 6 hoặc mới hơn** (code cũng biên dịch được với .NET Core) +- **Aspose.OCR for .NET** gói NuGet – `Install-Package Aspose.OCR` +- Một thư mục chứa một vài ảnh **TIFF** bạn muốn đọc (bản demo sử dụng `img1.tif`, `img2.tif`, `img3.tif`) +- Bất kỳ IDE nào bạn thích – Visual Studio, Rider, hoặc VS Code đều được + +Không cần cấu hình bổ sung; thư viện đi kèm với engine OCR riêng, vì vậy bạn không cần cài đặt các binary gốc bên ngoài. + +--- + +## Bước 1 – Tạo Instance của OCR Engine + +Điều đầu tiên bạn làm là khởi tạo một `OcrEngine`. Hãy nghĩ nó như bộ não sẽ phân tích từng pixel và chuyển chúng thành ký tự. + +```csharp +using Aspose.OCR; + +// Step 1: Initialise the OCR engine +OcrEngine ocrEngine = new OcrEngine(); +``` + +> **Tại sao điều này quan trọng:** +> Engine chứa các mô hình ngôn ngữ và cài đặt nội bộ (ví dụ, DPI, ngôn ngữ). Tạo một lần và tái sử dụng cho một batch hiệu quả hơn rất nhiều so với việc khởi tạo engine mới cho mỗi ảnh. + +--- + +## Bước 2 – Kết nối Sự kiện Tiến độ Thời gian Thực + +Nếu bạn đang xử lý hàng chục file TIFF, một chỉ báo tiến độ có thể giúp bạn tránh lo lắng ứng dụng có bị treo hay không. + +```csharp +using Aspose.OCR.Events; + +// Step 2: Subscribe to progress updates +ocrEngine.ProgressChanged += Ocr_ProgressChanged; + +// Event handler definition (placed later in the file) +``` + +`Sự kiện`ProgressChanged` được kích hoạt sau khi mỗi ảnh hoàn thành, cung cấp cho bạn `Current`, `Total`, và `Percentage`. Đây là vòng phản hồi **process batch OCR** mà hầu hết các nhà phát triển quên triển khai. + +--- + +## Bước 3 – Xây dựng Danh sách các Image Stream + +Aspose.OCR làm việc với các đối tượng `ImageStream`. Cách dễ nhất là tải mỗi TIFF từ đĩa. + +```csharp +using Aspose.OCR; +using System.Collections.Generic; + +// Step 3: Prepare the batch of TIFF images +List imageFiles = new List +{ + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") +}; +``` + +> **Mẹo:** +> Nếu bạn có một thư mục động, thay thế danh sách được mã hoá cứng bằng `Directory.GetFiles(path, "*.tif")` và `Select(ImageStream.FromFile)` – như vậy bạn thực sự **process batch OCR** mà không cần cập nhật thủ công. + +--- + +## Bước 4 – Chạy Quy trình Batch OCR + +Bây giờ công việc nặng nề diễn ra. `ProcessBatch` trả về một danh sách chỉ đọc các đối tượng `OcrResult`, mỗi đối tượng chứa văn bản đã trích xuất và điểm tin cậy. + +```csharp +// Step 4: Execute batch OCR and collect results +IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); +``` + +> **Tại sao điều này hiệu quả:** +> Engine tái sử dụng cùng một mô hình ngôn ngữ cho tất cả các ảnh, giảm đáng kể việc tiêu tốn bộ nhớ so với các cuộc gọi từng ảnh riêng lẻ. + +--- + +## Bước 5 – Hiển thị hoặc Lưu Văn bản Đã Nhận dạng + +Cuối cùng, lặp qua các kết quả. Trong dự án thực tế bạn có thể ghi chúng vào cơ sở dữ liệu hoặc file JSON, nhưng trong bản demo này chúng tôi sẽ chỉ in ra console. + +```csharp +// Step 5: Output the recognised text for each TIFF +foreach (var result in ocrResults) +{ + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); +} +``` + +**Kết quả console mong đợi** (được rút gọn để ngắn gọn): + +``` +=== OCR Result === +Invoice #12345 +Date: 03/15/2026 +Total: $1,250.00 + +=== OCR Result === +Meeting Minutes +1. Project kickoff... +``` + +Nếu bất kỳ ảnh nào thất bại, `result.Text` sẽ là chuỗi rỗng, và sự kiện `ProgressChanged` vẫn sẽ báo mục đã được xử lý—do đó bạn có thể ghi log các lỗi riêng biệt. + +--- + +## Trình xử lý Sự kiện Tiến độ (Mã đầy đủ) + +Đặt phương thức này ở bất kỳ vị trí nào trong lớp `BatchDemo`—tốt nhất là sau `Main`. + +```csharp +private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) +{ + // Gives you a live view of how many files have been processed + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); +} +``` + +> **Mẹo chuyên nghiệp:** +> Chuyển hướng đầu ra này tới thanh tiến độ UI nếu bạn đang xây dựng ứng dụng desktop; cùng một sự kiện hoạt động cho WinForms, WPF, hoặc thậm chí thông báo SignalR của ASP.NET Core. + +--- + +## Mẫu đầy đủ, sẵn sàng chạy + +Kết hợp mọi thứ lại, đây là chương trình hoàn chỉnh bạn có thể sao chép và dán vào một dự án console mới. + +```csharp +using System; +using System.Collections.Generic; +using Aspose.OCR; +using Aspose.OCR.Events; + +class BatchDemo +{ + static void Main() + { + // 1️⃣ Initialise OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Subscribe to progress events + ocrEngine.ProgressChanged += Ocr_ProgressChanged; + + // 3️⃣ Load TIFF images into a list + List imageFiles = new List + { + ImageStream.FromFile(@"YOUR_DIRECTORY/img1.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img2.tif"), + ImageStream.FromFile(@"YOUR_DIRECTORY/img3.tif") + }; + + // 4️⃣ Run batch OCR + IReadOnlyList ocrResults = ocrEngine.ProcessBatch(imageFiles); + + // 5️⃣ Print results + foreach (var result in ocrResults) + { + Console.WriteLine("=== OCR Result ==="); + Console.WriteLine(result.Text); + Console.WriteLine(); + } + } + + // Progress event handler + private static void Ocr_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + Console.WriteLine($"Processed {e.Current}/{e.Total} – {e.Percentage}%"); + } +} +``` + +Lưu file dưới tên `Program.cs`, chạy `dotnet add package Aspose.OCR`, thay thế `YOUR_DIRECTORY` bằng đường dẫn thực tế, và nhấn **Ctrl+F5**. Bạn sẽ thấy các số tiến độ tiếp theo là văn bản đã trích xuất cho mỗi TIFF. + +--- + +## Xử lý Các Trường hợp Đặc biệt Thông thường + +| Tình huống | Điều cần chú ý | Giải pháp nhanh | +|-----------|-------------------|-----------| +| **Missing or corrupted TIFF** | `ImageStream.FromFile` throws `FileNotFoundException` or `ArgumentException`. | Bao bọc việc tạo danh sách trong `try/catch` và bỏ qua các file không hợp lệ, ghi log vấn đề. | +| **Very large images ( >10 MP )** | OCR may consume a lot of RAM and slow down. | Giảm DPI trước khi xử lý: `ocrEngine.ImagePreprocessing.Dpi = 300;` | +| **Non‑English text** | Default language model is English. | Đặt `ocrEngine.Language = Language.Spanish;` (hoặc bất kỳ ngôn ngữ hỗ trợ nào). | +| **Need to save results** | Console output isn’t persistent. | Ghi `result.Text` vào file `.txt` bằng `File.WriteAllText`. | + +Xử lý các kịch bản này làm cho giải pháp của bạn vững chắc và cho thấy bạn đã suy nghĩ vượt ra ngoài trường hợp lý tưởng. + +--- + +## Các bước tiếp theo & Chủ đề liên quan + +- **Extract text from PDF** – API tương tự, chỉ cần thay `ImageStream` bằng `PdfDocument`. +- **Parallel batch OCR** – cho khối lượng công việc lớn, khởi tạo nhiều instance `OcrEngine` trên các luồng riêng; nhớ tuân thủ giới hạn giấy phép. +- **Post‑processing** – chạy đầu ra OCR qua bộ kiểm tra chính tả hoặc regex để làm sạch các artefact OCR thường gặp. + +Tất cả các mở rộng này vẫn dựa trên ý tưởng cốt lõi của **process batch OCR** và có thể được thêm dần. + +--- + +## Kết luận + +Chúng tôi vừa trình diễn cách **trích xuất văn bản từ TIFF** một cách hiệu quả bằng **process batch OCR** với Aspose OCR trong C#. Mẫu tạo một engine duy nhất, đăng ký các sự kiện tiến độ, tải danh sách các image stream, chạy batch và in mỗi kết quả. + +Từ đây bạn có thể tích hợp đầu ra vào cơ sở dữ liệu, tạo PDF có thể tìm kiếm, hoặc đưa văn bản vào các pipeline NLP tiếp theo. Không giới hạn—hãy thử nghiệm các cài đặt ngôn ngữ, điều chỉnh DPI và thực thi song song để phù hợp với khối lượng công việc của bạn. + +Có câu hỏi hoặc muốn chia sẻ cách bạn tùy chỉnh batch? Để 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/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md b/ocr/vietnamese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md new file mode 100644 index 000000000..367f3eadb --- /dev/null +++ b/ocr/vietnamese/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-04-11 +description: Học cách nhận dạng văn bản từ file PNG và trích xuất văn bản từ hình + ảnh bằng C# sử dụng Aspose OCR. Bao gồm các bước tải file hình ảnh trong C#, kiểm + tra chính tả và mã nguồn đầy đủ. +draft: false +keywords: +- recognize text from png +- extract text from image c# +- load image file c# +language: vi +og_description: Nhận dạng văn bản từ file PNG một cách dễ dàng với C#. Hãy làm theo + hướng dẫn từng bước này để tải file ảnh bằng C#, trích xuất văn bản từ ảnh bằng + C#, và thực hiện kiểm tra chính tả. +og_title: Nhận dạng văn bản từ PNG trong C# – Hướng dẫn OCR toàn diện +tags: +- OCR +- C# +- Aspose +title: Nhận dạng văn bản từ PNG trong C# – Hướng dẫn toàn diện về OCR và Kiểm tra + chính tả +url: /vi/net/text-recognition/recognize-text-from-png-in-c-full-ocr-spell-check-guide/ +--- + +{{< 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 từ png – Hướng dẫn toàn diện C# OCR & Kiểm tra chính tả + +Bạn đã bao giờ cần **recognize text from png** nhưng không chắc thư viện nào nên chọn? Bạn không đơn độc; nhiều nhà phát triển gặp khó khăn này khi lần đầu tiên xử lý trích xuất dữ liệu từ hình ảnh. Tin tốt? Với Aspose OCR, bạn có thể tải một tệp hình ảnh trong C#, trích xuất văn bản và thậm chí chạy bộ kiểm tra chính tả tích hợp—tất cả chỉ trong vài dòng mã. + +Trong hướng dẫn này, chúng ta sẽ đi qua toàn bộ quy trình: tải PNG, gọi engine OCR, và cuối cùng kiểm tra các từ sai chính tả. Khi kết thúc, bạn sẽ có thể **extract text from image C#** trong các dự án mà không phải tìm kiếm tài liệu rải rác. Không cần kinh nghiệm OCR trước, chỉ cần môi trường phát triển .NET. + +## Những gì bạn cần + +- **.NET 6.0** (hoặc bất kỳ phiên bản .NET gần đây nào) – API hoạt động giống nhau trên .NET Core và Framework. +- **Aspose.OCR for .NET** package NuGet – cài đặt bằng `dotnet add package Aspose.OCR`. +- Một **PNG image** chứa văn bản có thể đọc được (ví dụ, `letter.png` đặt trong thư mục bạn kiểm soát). +- Một trình soạn thảo mã hoặc IDE (Visual Studio, VS Code, Rider—chọn bất kỳ bạn thích). + +Chỉ vậy thôi. Không cần engine OCR bổ sung, không có DLL gốc, chỉ một package quản lý sạch. + +--- + +## Bước 1: Tải tệp ảnh PNG trong C# + +Trước khi engine OCR có thể thực hiện bất kỳ thao tác nào, nó cần một stream trỏ tới hình ảnh. Aspose cung cấp `ImageStream.FromFile`, giúp ẩn đi chi tiết hệ thống tệp. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // ✅ Load the PNG image from disk + var imagePath = @"C:\Images\letter.png"; // <-- adjust to your folder + var image = ImageStream.FromFile(imagePath); +``` + +> **Mẹo:** Nếu hình ảnh của bạn được nhúng dưới dạng tài nguyên hoặc đến từ yêu cầu web, bạn có thể dùng `ImageStream.FromBytes(byte[])` thay thế—không cần chạm vào hệ thống tệp. + +### Tại sao việc tải ảnh lại quan trọng + +Việc tải ảnh đúng cách đảm bảo engine OCR nhận được dữ liệu pixel chính xác như mong đợi. Stream bị hỏng sẽ khiến `Recognize` ném lỗi, và bạn sẽ mất thời gian gỡ lỗi sau này. + +--- + +## Bước 2: Khởi tạo OCR Engine + +Tạo một instance của `OcrEngine` không tốn tài nguyên, nhưng bạn có thể muốn điều chỉnh ngôn ngữ hoặc cài đặt độ chính xác cho các trường hợp sử dụng cụ thể (ví dụ, tài liệu đa ngôn ngữ). Constructor mặc định hoạt động tốt cho văn bản tiếng Anh. + +```csharp + // ✅ Create the OCR engine + var ocrEngine = new OcrEngine(); + + // Optional: set language to English explicitly + // ocrEngine.Language = Language.English; +``` + +### Tại sao cần một instance của engine? + +Engine lưu trữ cấu hình (ngôn ngữ, bộ lọc tiền xử lý, v.v.). Bằng cách tách cấu hình khỏi hình ảnh, bạn có thể tái sử dụng cùng một engine cho nhiều tệp—rất hữu ích cho xử lý hàng loạt. + +--- + +## Bước 3: Nhận dạng Văn bản từ PNG + +Bây giờ phép màu xảy ra. `Recognize` trả về một đối tượng `OcrResult` chứa chuỗi thô, điểm tin cậy và nhiều thông tin khác. + +```csharp + // ✅ Perform OCR on the loaded image + var ocrResult = ocrEngine.Recognize(image); + + // Grab the plain text + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); +``` + +**Kết quả mong đợi** (giả sử `letter.png` chứa “Hello World!”): + +``` +=== OCR Output === +Hello World! +``` + +Nếu hình ảnh chứa nhiều dòng, kết quả sẽ giữ lại các ngắt dòng, giúp việc xử lý tiếp theo trở nên đơn giản. + +### Trường hợp đặc biệt: PNG độ phân giải thấp + +Nếu kết quả OCR bị rối loạn, hãy cân nhắc phóng to hình ảnh hoặc điều chỉnh `ocrEngine.PreprocessingOptions`. Hình ảnh DPI thấp thường mất chi tiết mà engine cần. + +--- + +## Bước 4: Chạy Bộ Kiểm tra Chính tả tích hợp + +Aspose OCR đi kèm với một mô-đun kiểm tra chính tả nhẹ, hoạt động trực tiếp trên kết quả OCR. Bước này giúp bạn phát hiện các nhận dạng sai như “H3llo” thay vì “Hello”. + +```csharp + // ✅ Spell‑check the OCR result + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + { + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Kết quả mẫu** (nếu OCR đọc sai “World” thành “W0rld”): + +``` +Possible misspellings: +W0rld → World, Word, Would +``` + +### Tại sao cần kiểm tra chính tả? + +OCR không bao giờ đạt 100 % hoàn hảo, đặc biệt với nền nhiễu. Một kiểm tra chính tả nhanh có thể lọc bỏ các lỗi rõ ràng trước khi bạn đưa văn bản vào các phân tích hoặc cơ sở dữ liệu tiếp theo. + +--- + +## Bước 5: Tổng hợp lại – Ví dụ Hoạt động Đầy đủ + +Dưới đây là chương trình hoàn chỉnh, sẵn sàng chạy. Sao chép‑dán vào một dự án console mới, điều chỉnh đường dẫn ảnh, và nhấn **F5**. + +```csharp +using System; +using System.Linq; +using Aspose.OCR; + +class SpellCheckDemo +{ + static void Main() + { + // 1️⃣ Load the PNG image + var imagePath = @"C:\Images\letter.png"; // <-- change this path + var image = ImageStream.FromFile(imagePath); + + // 2️⃣ Initialize OCR engine + var ocrEngine = new OcrEngine(); + // ocrEngine.Language = Language.English; // optional + + // 3️⃣ Recognize text + var ocrResult = ocrEngine.Recognize(image); + string recognizedText = ocrResult.Text; + Console.WriteLine("=== OCR Output ==="); + Console.WriteLine(recognizedText); + + // 4️⃣ Spell check + var misspellings = ocrResult.SpellCheck(); + + if (misspellings.Any()) + { + Console.WriteLine("\nPossible misspellings:"); + foreach (var entry in misspellings) + Console.WriteLine($"{entry.Word} → {string.Join(", ", entry.Suggestions)}"); + } + else + { + Console.WriteLine("\nNo spelling issues detected."); + } + } +} +``` + +**Chạy demo** sẽ in ra văn bản OCR kèm theo các đề xuất chính tả. Nó hoạt động với bất kỳ PNG nào chứa văn bản tiếng Anh in rõ ràng. Đối với các ngôn ngữ khác, chỉ cần đặt `ocrEngine.Language` tương ứng. + +--- + +## Câu hỏi Thường gặp & Lưu ý + +| Question | Answer | +|----------|--------| +| *Tôi có thể xử lý các tệp JPEG hoặc BMP không?* | Chắc chắn—`ImageStream.FromFile` chấp nhận bất kỳ định dạng nào được Aspose hỗ trợ (PNG, JPEG, BMP, TIFF). | +| *Nếu hình ảnh ở trong memory stream thì sao?* | Sử dụng `ImageStream.FromBytes(byteArray)` hoặc `ImageStream.FromStream(stream)`. | +| *Bộ kiểm tra chính tả có nhận biết ngôn ngữ không?* | Có, nó tuân theo ngôn ngữ được đặt trên OCR engine. | +| *Làm sao cải thiện độ chính xác trên hình ảnh bị nghiêng?* | Bật `ocrEngine.PreprocessingOptions.Deskew = true;` trước khi gọi `Recognize`. | +| *Tôi có cần giấy phép cho Aspose.OCR không?* | Bản dùng thử miễn phí hoạt động cho tới 100 trang. Đối với môi trường production, cần mua giấy phép để loại bỏ watermark. | + +--- + +## Các bước tiếp theo – Vượt ra ngoài OCR cơ bản + +Bây giờ bạn đã có thể **recognize text from png** và **extract text from image C#**, hãy xem xét các mở rộng sau: + +1. **Xử lý hàng loạt** – Duyệt qua một thư mục chứa các PNG và ghi mỗi kết quả OCR vào một tệp `.txt` riêng. +2. **Tích hợp với Azure Cognitive Services** – Kết hợp Aspose OCR với các API dịch dựa trên đám mây cho các quy trình đa ngôn ngữ. +3. **Trích xuất dữ liệu có cấu trúc** – Sử dụng biểu thức chính quy trên `recognizedText` để lấy ngày, số hóa đơn hoặc địa chỉ. +4. **Tối ưu hiệu năng** – Đối với khối lượng lớn, tái sử dụng một instance `OcrEngine` duy nhất và bật đa luồng. + +Mỗi mục trên dựa trên các bước cốt lõi chúng ta đã đề cập, cho phép bạn biến một hình ảnh đơn giản thành dữ liệu có thể hành động. + +--- + +## Kết luận + +Chúng tôi đã hướng dẫn qua một ví dụ hoàn chỉnh, từ đầu đến cuối, cho thấy cách **recognize text from png** trong C#, **load image file C#** một cách chính xác, và sau đó **extract text from image C#** đồng thời phát hiện lỗi chính tả. Mã nguồn độc lập, giải thích bao phủ cả “cách thực hiện” và “lý do”, và bạn giờ đã có nền tảng vững chắc cho bất kỳ tính năng nào dựa trên OCR. + +Hãy thử nghiệm, điều chỉnh các tùy chọn tiền xử lý, và xem văn bản đã trích xuất của bạn trở nên sạch sẽ như thế nào. Nếu gặp bất kỳ vấn đề nào, hãy để 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